sajuice / app.py
seawolf2357's picture
Update app.py
b3f072f verified
raw
history blame
19.5 kB
import gradio as gr
import requests
from xml.etree import ElementTree
import os
import sys
import json
# ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ OPENAI API ํ‚ค ๋กœ๋“œ
OPENAI_API_KEY = "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"
def exception_handler(exception_type, exception, traceback):
print(f"{exception_type.__name__}: {exception}")
sys.excepthook = exception_handler
sys.tracebacklimit = 0
def get_chinese_hour(birth_hour):
hour = int(birth_hour[:2])
chinese_hours = ['์ž', '์ถ•', '์ธ', '๋ฌ˜', '์ง„', '์‚ฌ', '์˜ค', '๋ฏธ', '์‹ ', '์œ ', '์ˆ ', 'ํ•ด']
return chinese_hours[hour // 2 % 12]
def calculate_siju(birth_hour, lunIljin):
chinese_hour = get_chinese_hour(birth_hour) # ์ƒ์‹œ์— ํ•ด๋‹นํ•˜๋Š” ์ง€์ง€
lunIljin_first = lunIljin[0] # ์ผ์ฃผ์˜ ์ฒซ ๊ธ€์ž
# ์ผ์ฃผ ์ฒซ ๊ธ€์ž์— ๋”ฐ๋ฅธ ์‹œ์ฃผ ๋งคํ•‘
siju_mapping = {
('๊ฐ‘', '์ž'): '๊ฐ‘์ž(็”ฒๅญ)', ('๊ธฐ', '์ž'): '๊ฐ‘์ž(็”ฒๅญ)',
('์„', '์ž'): '๋ณ‘์ž(ไธ™ๅญ)', ('๊ฒฝ', '์ž'): '๋ณ‘์ž(ไธ™ๅญ)',
('๋ณ‘', '์ž'): '๋ฌด์ž(ๆˆŠๅญ)', ('์‹ ', '์ž'): '๋ฌด์ž(ๆˆŠๅญ)',
('์ •', '์ž'): '๊ฒฝ์ž(ๅบšๅญ)', ('์ž„', '์ž'): '๊ฒฝ์ž(ๅบšๅญ)',
('๋ฌด', '์ž'): '์ž„์ž(ๅฃฌๅญ)', ('๊ณ„', '์ž'): '์ž„์ž(ๅฃฌๅญ)',
('๊ฐ‘', '์ถ•'): '์„์ถ•(ไน™ไธ‘)', ('๊ธฐ', '์ถ•'): '์„์ถ•(ไน™ไธ‘)',
('์„', '์ถ•'): '์ •์ถ•(ไธไธ‘)', ('๊ฒฝ', '์ถ•'): '์ •์ถ•(ไธไธ‘)',
('๋ณ‘', '์ถ•'): '๊ธฐ์ถ•(ๅทฑไธ‘)', ('์‹ ', '์ถ•'): '๊ธฐ์ถ•(ๅทฑไธ‘)',
('์ •', '์ถ•'): '์‹ ์ถ•(่พ›ไธ‘)', ('์ž„', '์ถ•'): '์‹ ์ถ•(่พ›ไธ‘)',
('๋ฌด', '์ถ•'): '๊ณ„์ถ•(็™ธไธ‘)', ('๊ณ„', '์ถ•'): '๊ณ„์ถ•(็™ธไธ‘)',
('๊ฐ‘', '์ธ'): '๋ณ‘์ธ(ไธ™ๅฏ…)', ('๊ธฐ', '์ธ'): '๋ณ‘์ธ(ไธ™ๅฏ…)',
('์„', '์ธ'): '๋ฌด์ธ(ๆˆŠๅฏ…)', ('๊ฒฝ', '์ธ'): '๋ฌด์ธ(ๆˆŠๅฏ…)',
('๋ณ‘', '์ธ'): '๊ฒฝ์ธ(ๅบšๅฏ…)', ('์‹ ', '์ธ'): '๊ฒฝ์ธ(ๅบšๅฏ…)',
('์ •', '์ธ'): '์ž„์ธ(ๅฃฌๅฏ…)', ('์ž„', '์ธ'): '์ž„์ธ(ๅฃฌๅฏ…)',
('๋ฌด', '์ธ'): '๊ฐ‘์ธ(็”ฒๅฏ…)', ('๊ณ„', '์ธ'): '๊ฐ‘์ธ(็”ฒๅฏ…)',
('๊ฐ‘', '๋ฌ˜'): '์ •๋ฌ˜(ไธๅฏ)', ('๊ธฐ', '๋ฌ˜'): '์ •๋ฌ˜(ไธๅฏ)',
('์„', '๋ฌ˜'): '๊ธฐ๋ฌ˜(ๅทฑๅฏ)', ('๊ฒฝ', '๋ฌ˜'): '๊ธฐ๋ฌ˜(ๅทฑๅฏ)',
('๋ณ‘', '๋ฌ˜'): '์‹ ๋ฌ˜(่พ›ๅฏ)', ('์‹ ', '๋ฌ˜'): '์‹ ๋ฌ˜(่พ›ๅฏ)',
('์ •', '๋ฌ˜'): '๊ณ„๋ฌ˜(็™ธๅฏ)', ('์ž„', '๋ฌ˜'): '๊ณ„๋ฌ˜(็™ธๅฏ)',
('๋ฌด', '๋ฌ˜'): '์„๋ฌ˜(ไน™ๅฏ)', ('๊ณ„', '๋ฌ˜'): '์„๋ฌ˜(ไน™ๅฏ)',
('๊ฐ‘', '์ง„'): '๋ฌด์ง„(ๆˆŠ่พฐ)', ('๊ธฐ', '์ง„'): '๋ฌด์ง„(ๆˆŠ่พฐ)',
('์„', '์ง„'): '๊ฒฝ์ง„(ๅบš่พฐ)', ('๊ฒฝ', '์ง„'): '๊ฒฝ์ง„(ๅบš่พฐ)',
('๋ณ‘', '์ง„'): '์ž„์ง„(ๅฃฌ่พฐ)', ('์‹ ', '์ง„'): '์ž„์ง„(ๅฃฌ่พฐ)',
('์ •', '์ง„'): '๊ฐ‘์ง„(็”ฒ่พฐ)', ('์ž„', '์ง„'): '๊ฐ‘์ง„(็”ฒ่พฐ)',
('๋ฌด', '์ง„'): '๋ณ‘์ง„(ไธ™่พฐ)', ('๊ณ„', '์ง„'): '๋ณ‘์ง„(ไธ™่พฐ)',
('๊ฐ‘', '์‚ฌ'): '๊ธฐ์‚ฌ(ๅทฑๅทณ)', ('๊ธฐ', '์‚ฌ'): '๊ธฐ์‚ฌ(ๅทฑๅทณ)',
('์„', '์‚ฌ'): '์‹ ์‚ฌ(่พ›ๅทณ)', ('๊ฒฝ', '์‚ฌ'): '์‹ ์‚ฌ(่พ›ๅทณ)',
('๋ณ‘', '์‚ฌ'): '๊ณ„์‚ฌ(็™ธๅทณ)', ('์‹ ', '์‚ฌ'): '๊ณ„์‚ฌ(็™ธๅทณ)',
('์ •', '์‚ฌ'): '์„์‚ฌ(ไน™ๅทณ)', ('์ž„', '์‚ฌ'): '์„์‚ฌ(ไน™ๅทณ)',
('๋ฌด', '์‚ฌ'): '์ •์‚ฌ(ไธๅทณ)', ('๊ณ„', '์‚ฌ'): '์ •์‚ฌ(ไธๅทณ)',
('๊ฐ‘', '์˜ค'): '๊ฒฝ์˜ค(ๅบšๅˆ)', ('๊ธฐ', '์˜ค'): '๊ฒฝ์˜ค(ๅบšๅˆ)',
('์„', '์˜ค'): '์ž„์˜ค(ๅฃฌๅˆ)', ('๊ฒฝ', '์˜ค'): '์ž„์˜ค(ๅฃฌๅˆ)',
('๋ณ‘', '์˜ค'): '๊ฐ‘์˜ค(็”ฒๅˆ)', ('์‹ ', '์˜ค'): '๊ฐ‘์˜ค(็”ฒๅˆ)',
('์ •', '์˜ค'): '๋ณ‘์˜ค(ไธ™ๅˆ)', ('์ž„', '์˜ค'): '๋ณ‘์˜ค(ไธ™ๅˆ)',
('๋ฌด', '์˜ค'): '๋ฌด์˜ค(ๆˆŠๅˆ)', ('๊ณ„', '์˜ค'): '๋ฌด์˜ค(ๆˆŠๅˆ)',
('๊ฐ‘', '๋ฏธ'): '์ž„๋ฏธ(ๅฃฌๆœช)', ('๊ธฐ', '๋ฏธ'): '์ž„๋ฏธ(ๅฃฌๆœช)',
('์„', '๋ฏธ'): '๊ฐ‘๋ฏธ(็”ฒๆœช)', ('๊ฒฝ', '๋ฏธ'): '๊ฐ‘๋ฏธ(็”ฒๆœช)',
('๋ณ‘', '๋ฏธ'): '๋ณ‘๋ฏธ(ไธ™ๆœช)', ('์‹ ', '๋ฏธ'): '๋ณ‘๋ฏธ(ไธ™ๆœช)',
('์ •', '๋ฏธ'): '๋ฌด๋ฏธ(ๆˆŠๆœช)', ('์ž„', '๋ฏธ'): '๋ฌด๋ฏธ(ๆˆŠๆœช)',
('๋ฌด', '๋ฏธ'): '๊ฒฝ๋ฏธ(ๅบšๆœช)', ('๊ณ„', '๋ฏธ'): '๊ฒฝ๋ฏธ(ๅบšๆœช)',
('๊ฐ‘', '์‹ '): '์ž„์‹ (ๅฃฌ็”ณ)', ('๊ธฐ', '์‹ '): '์ž„์‹ (ๅฃฌ็”ณ)',
('์„', '์‹ '): '๊ฐ‘์‹ (็”ฒ็”ณ)', ('๊ฒฝ', '์‹ '): '๊ฐ‘์‹ (็”ฒ็”ณ)',
('๋ณ‘', '์‹ '): '๋ณ‘์‹ (ไธ™็”ณ)', ('์‹ ', '์‹ '): '๋ณ‘์‹ (ไธ™็”ณ)',
('์ •', '์‹ '): '๋ฌด์‹ (ๆˆŠ็”ณ)', ('์ž„', '์‹ '): '๋ฌด์‹ (ๆˆŠ็”ณ)',
('๋ฌด', '์‹ '): '๊ฒฝ์‹ (ๅบš็”ณ)', ('๊ณ„', '์‹ '): '๊ฒฝ์‹ (ๅบš็”ณ)',
('๊ฐ‘', '์œ '): '๊ณ„์œ (็™ธ้…‰)', ('๊ธฐ', '์œ '): '๊ณ„์œ (็™ธ้…‰)',
('์„', '์œ '): '์„์œ (ไน™้…‰)', ('๊ฒฝ', '์œ '): '์„์œ (ไน™้…‰)',
('๋ณ‘', '์œ '): '์ •์œ (ไธ้…‰)', ('์‹ ', '์œ '): '์ •์œ (ไธ้…‰)',
('์ •', '์œ '): '๊ธฐ์œ (ๅทฑ้…‰)', ('์ž„', '์œ '): '๊ธฐ์œ (ๅทฑ้…‰)',
('๋ฌด', '์œ '): '์‹ ์œ (่พ›้…‰)', ('๊ณ„', '์œ '): '์‹ ์œ (่พ›้…‰)',
('๊ฐ‘', '์ˆ '): '๊ฐ‘์ˆ (็”ฒๆˆŒ) ', ('๊ธฐ', '์ˆ '): '๊ฐ‘์ˆ (็”ฒๆˆŒ)',
('์„', '์ˆ '): '๋ณ‘์ˆ (ไธ™ๆˆŒ) ', ('๊ฒฝ', '์ˆ '): '๋ณ‘์ˆ (ไธ™ๆˆŒ)',
('๋ณ‘', '์ˆ '): '๋ฌด์ˆ (ๆˆŠๆˆŒ) ', ('์‹ ', '์ˆ '): '๋ฌด์ˆ (ๆˆŠๆˆŒ)',
('์ •', '์ˆ '): '๊ฒฝ์ˆ (ๅบšๆˆŒ) ', ('์ž„', '์ˆ '): '๊ฒฝ์ˆ (ๅบšๆˆŒ)',
('๋ฌด', '์ˆ '): '์ž„์ˆ (ๅฃฌๆˆŒ) ', ('๊ณ„', '์ˆ '): '์ž„์ˆ (ๅฃฌๆˆŒ)',
('๊ฐ‘', 'ํ•ด'): '์„ํ•ด(ไน™ไบฅ)', ('๊ธฐ', 'ํ•ด'): '์„ํ•ด(ไน™ไบฅ)',
('์„', 'ํ•ด'): '์ •ํ•ด(ไธไบฅ)', ('๊ฒฝ', 'ํ•ด'): '์ •ํ•ด(ไธไบฅ)',
('๋ณ‘', 'ํ•ด'): '๊ธฐํ•ด(ๅทฑไบฅ)', ('์‹ ', 'ํ•ด'): '๊ธฐํ•ด(ๅทฑไบฅ)',
('์ •', 'ํ•ด'): '์‹ ํ•ด(่พ›ไบฅ)', ('์ž„', 'ํ•ด'): '์‹ ํ•ด(่พ›ไบฅ)',
('๋ฌด', 'ํ•ด'): '๊ณ„ํ•ด(็™ธไบฅ)', ('๊ณ„', 'ํ•ด'): '๊ณ„ํ•ด(็™ธไบฅ)',
}
# ์‹œ์ฃผ ๊ณ„์‚ฐ
siju_key = (lunIljin_first, chinese_hour)
siju = siju_mapping.get(siju_key)
if not siju:
# ์ผ์ฃผ์™€ ์ง€์ง€ ์กฐํ•ฉ์— ๋Œ€ํ•œ ๋งคํ•‘์ด ์—†๋Š” ๊ฒฝ์šฐ์˜ ์ฒ˜๋ฆฌ
siju = f"์ผ์ฃผ '{lunIljin_first}'์™€ ์ง€์ง€ '{chinese_hour}'์— ํ•ด๋‹นํ•˜๋Š” ์‹œ์ฃผ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."
return siju
def get_lunar_info(solYear, solMonth, solDay, solHour):
base_url = "http://apis.data.go.kr/B090041/openapi/service/LrsrCldInfoService/getLunCalInfo"
service_key = "EuBjt%2B2t0KzYt5Ri%2Bzs56oymt9kHJ8uPIOV7m6UMKnOV8cpwj02EiRqMEudX%2F%2FVTKdMnwaLH0igRwY57YUplEQ%3D%3D"
url = f"{base_url}?solYear={solYear}&solMonth={solMonth}&solDay={solDay}&ServiceKey={service_key}"
response = requests.get(url)
if response.status_code == 200:
root = ElementTree.fromstring(response.content)
lunIljin = root.find(".//lunIljin").text if root.find(".//lunIljin") is not None else "์ •๋ณด ์—†์Œ"
lunWolgeon = root.find(".//lunWolgeon").text if root.find(".//lunWolgeon") is not None else "์ •๋ณด ์—†์Œ"
lunSecha = root.find(".//lunSecha").text if root.find(".//lunSecha") is not None else "์ •๋ณด ์—†์Œ"
siju = calculate_siju(solHour, lunIljin)
# ์‚ฌ์ฃผ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ HTML ํ˜•์‹์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
analysis_html = ์‚ฌ์ฃผ_๋ถ„์„(lunSecha, lunWolgeon, lunIljin, siju)
# JSON ๊ฒฐ๊ณผ, ์ผ์ฃผ State, ๊ทธ๋ฆฌ๊ณ  HTML ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
return {
"๋…„์ฃผ": lunSecha,
"์›”์ฃผ": lunWolgeon,
"์ผ์ฃผ": lunIljin,
"์‹œ์ฃผ": siju
}, lunIljin, analysis_html
else:
return {"Error": "API ํ˜ธ์ถœ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค."}, "์ •๋ณด ์—†์Œ", "<p>API ํ˜ธ์ถœ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.</p>"
# ์„ฑ๊ฒฉ๊ณผ ํŠน์ง•์„ ๋ถ„์„ํ•˜๋Š” ํ•จ์ˆ˜ ์ˆ˜์ • (API ํ‚ค ์ธ์ž ์ถ”๊ฐ€)
def analyze_character(lunIljin, OPENAI_API_KEY):
API_URL = "https://api.openai.com/v1/chat/completions"
payload = {
"model": "gpt-4-0125-preview",
"prompt": f"์ผ์ฃผ '{lunIljin}'์— ๋Œ€ํ•œ ์„ฑ๊ฒฉ๊ณผ ํŠน์ง•์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.",
"temperature": 0.7,
"max_tokens": 150,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0
}
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {OPENAI_API_KEY}"
}
response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
return data["choices"][0]["text"]
else:
return f"์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ: {response.status_code}"
# ์‚ฌ์ฃผ ๋ถ„์„ ๋ฐ์ดํ„ฐ ์˜ˆ์‹œ (๊ฐ„์†Œํ™”๋œ ๋ฒ„์ „)
์‚ฌ์ฃผ_๋ฐ์ดํ„ฐ = {
'๊ฐ‘์ž (็”ฒๅญ)' : '์ƒˆ๋กœ์šด ์‹œ์ž‘์˜ ์ƒ์ง•, ๋ฆฌ๋”์‹ญ๊ณผ ๋…๋ฆฝ์„ฑ์ด ํŠน์ง•์ด๋ฉฐ, ํ˜ธ์พŒํ•˜๊ณ  ์„ฑ์‹คํ•œ ํŠน์„ฑ์„ ์ง€๋‹Œ๋‹ค. ',
'์„์ถ• (ไน™ไธ‘)' : '์ธ๋‚ด์‹ฌ์ด ๋งค์šฐ ๊ฐ•ํ•˜๋ฉฐ, ๋ฌผ์งˆ์  ์„ฑ์ทจ๋ฅผ ์ค‘์š”์‹œํ•˜๊ณ  ์ž์ƒํ•œ ๋ฉด๋ชจ๋ฅผ ๊ฐ–์ถ˜ ์‚ฌ๋žŒ์ด๋‹ค. ',
'๋ณ‘์ธ (ไธ™ๅฏ…)' : '์—ด์ •์ ์ด๊ณ  ๋ชจํ—˜์„ ์ฆ๊ธฐ๋ฉฐ, ์ฐฝ์˜๋ ฅ์ด ๋›ฐ์–ด๋‚˜๊ณ  ํ˜์‹ ์ ์ธ ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ง„๋‹ค. ',
'์ •๋ฌ˜ (ไธๅฏ)' : '์˜ˆ์ˆ ์  ๊ฐ๊ฐ์ด ๋›ฐ์–ด๋‚˜๊ณ  ์„ฌ์„ธํ•œ ์„ฑ๊ฒฉ์œผ๋กœ, ๊ด€๊ณ„์—์„œ์˜ ์ถฉ์‹คํ•จ๊ณผ ์• ์ •์ด ๊นŠ๋‹ค. ',
'๋ฌด์ง„ (ๆˆŠ่พฐ)' : '์‹ค์šฉ์ ์ด๋ฉฐ ์•ˆ์ •์ ์ธ ๊ธฐ๋ฐ˜์„ ์ค‘์‹œํ•˜๊ณ , ๊พธ์ค€ํ•œ ๋…ธ๋ ฅ์„ ํ†ตํ•ด ์„ฑ์žฅํ•˜๋Š” ํƒ€์ž…์ด๋‹ค. ',
'๊ธฐ์‚ฌ (ๅทฑๅทณ)' : '์œ ์—ฐ์„ฑ๊ณผ ์ ์‘๋ ฅ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ๋„ ์ž˜ ๋Œ€์ฒ˜ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„๋‹ค. ',
'๊ฒฝ์˜ค (ๅบšๅˆ)' : '์ •์˜์™€ ๋ช…์˜ˆ๋ฅผ ์ค‘์‹œํ•˜๋ฉฐ, ์„ฑ์‹คํ•˜๊ณ  ์ง„์ทจ์ ์ธ ํƒœ๋„๋กœ ์ฃผ๋ณ€์˜ ์กด๊ฒฝ์„ ๋ฐ›๋Š”๋‹ค. ',
'์‹ ๋ฏธ (่พ›ๆœช)' : '์„ธ์‹ฌํ•˜๊ณ  ๊ผผ๊ผผํ•œ ์„ฑ๊ฒฉ์œผ๋กœ ์™„๋ฒฝ์„ ์ถ”๊ตฌํ•˜๋ฉฐ, ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค๋กœ๋ถ€ํ„ฐ ์‹ ๋ขฐ๋ฅผ ์–ป๋Š”๋‹ค. ',
'์ž„์‹  (ๅฃฌ็”ณ)' : '์ง€ํ˜œ์™€ ๊ท ํ˜•์ด ์ž˜ ์กฐํ™”๋œ ์„ฑ๊ฒฉ์œผ๋กœ, ๊นŠ์€ ํ†ต์ฐฐ๋ ฅ๊ณผ ํ•จ๊ป˜ ์ธ์ƒ์„ ์ดํ•ดํ•˜๋Š” ๋Šฅ๋ ฅ์ด ์žˆ๋‹ค. ',
'๊ณ„์œ  (็™ธ้…‰)' : '์™ธ๊ต์ ์ด๊ณ  ์กฐํ™”๋ฅผ ์ค‘์‹œํ•˜๋Š” ์„ฑํ–ฅ์œผ๋กœ, ํƒ€์ธ๊ณผ์˜ ๊ด€๊ณ„์—์„œ ์œ ์—ฐํ•˜๊ณ  ๋‹ค์ •๋‹ค๊ฐํ•˜๋‹ค. ',
'๊ฐ‘์ˆ  (็”ฒๆˆŒ)' : '๋ฏธ์†Œ๋ฅผ ๋ ๋ฉฐ ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ž˜ํ•˜๊ณ , ํƒ€๊ณ ๋‚œ ์˜์—… ๋Šฅ๋ ฅ์œผ๋กœ ์„ฑ๊ณต์„ ์ด๋ˆ๋‹ค. ',
'์„ํ•ด (ไน™ไบฅ)' : '์‹œ์›์‹œ์›ํ•œ ์ธ์ƒ๊ณผ ๋ชจ๋ฒ”์ƒ ๊ฐ™์€ ์Šคํƒ€์ผ๋กœ, ๋Šฅ๋ ฅ๊ณผ ์š•์‹ฌ์„ ๊ฒธ๋น„ํ•œ ์‚ฌ๋žŒ์ด๋‹ค. ',
'๋ณ‘์ž (ไธ™ๅญ)' : 'ํ˜ธ๋ฐฉํ•˜๊ณ  ๊นŒ๋‹ค๋กญ์ง€๋งŒ, ์ผ์„ ํ™•์‹คํžˆ ์ฒ˜๋ฆฌํ•˜๊ณ  ์€๊ทผํ•œ ๋งค๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ',
'์ •์ถ• (ไธไธ‘)' : '์˜ˆ์ˆ ์  ๊ฐ๊ฐ์ด ๋›ฐ์–ด๋‚˜๋ฉฐ ๋”ฐ๋œปํ•˜๊ณ  ๋ฒ ํ’€ ์ค„ ์•„๋Š” ์ธ๊ฐ„๋ฏธ ๋„˜์น˜๋Š” ์‚ฌ๋žŒ์ด๋‹ค. ',
'๋ฌด์ธ (ๆˆŠๅฏ…)' : '๋ชจํ—˜์„ ์ฆ๊ธฐ๊ณ  ์ž์‹ ๊ฐ์ด ๋„˜์น˜๋ฉฐ, ์„ธ์ƒ์„ ๋ฐœ์•„๋ž˜ ๋‘๊ณ  ์‹ถ์–ดํ•˜๋Š” ์•ผ์‹ฌ ์ฐฌ ์‚ฌ๋žŒ์ด๋‹ค. ',
'๊ธฐ๋ฌ˜ (ๅทฑๅฏ)' : '์„ธ์‹ฌํ•˜๊ณ  ์˜ˆ์ˆ ์ ์ธ ๊ธฐ์งˆ์ด ์žˆ์œผ๋ฉฐ, ๊นŠ์€ ์ƒ๊ฐ๊ณผ ํ•จ๊ป˜ ์‚ฌ๋žŒ๋“ค๊ณผ ์กฐํ™”๋กญ๊ฒŒ ์ง€๋‚ธ๋‹ค. ',
'๊ฒฝ์ง„ (ๅบš่พฐ)' : '์•ˆ์ •์ ์ด๊ณ  ํ•ดํ•™์ ์ธ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๋ฉฐ, ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค๊ณผ์˜ ์กฐํ™”๋ฅผ ์ค‘์‹œํ•œ๋‹ค. ',
'์‹ ์‚ฌ (่พ›ๅทณ)' : '๋ฉ‹๊ณผ ๋งค๋ ฅ์„ ์‚ถ์˜ ์ค‘์‹ฌ์— ๋‘๋ฉฐ, ๊ฐ•ํ•œ ์‚ฌํšŒ์  ๋Šฅ๋ ฅ์„ ์ง€๋‹Œ ์‚ฌ๋žŒ์ด๋‹ค. ',
'์ž„์˜ค (ๅฃฌๅˆ)' : '์ง€์  ๋Šฅ๋ ฅ์ด ๋›ฐ์–ด๋‚˜๊ณ  ์‹ฌ์˜คํ•œ ์ƒ๊ฐ์„ ํ•˜๋Š”, ๊นŠ์ด ์žˆ๋Š” ์ธ๋ฌผ์ด๋‹ค. ',
'๊ณ„๋ฏธ (็™ธๆœช)' : '์ž์‹ ๊ณผ ํƒ€์ธ์—๊ฒŒ ์นœ์ ˆํ•˜๊ณ  ๊ท€์—ฌ์šด ๋ฉด๋ชจ๋ฅผ ์ง€๋‹Œ ์‚ฌ๋žŒ์œผ๋กœ, ์‚ฌํšŒ์  ์ƒํ˜ธ์ž‘์šฉ์—์„œ ๋”ฐ์Šคํ•จ๊ณผ ๋ฐฐ๋ ค๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ์ž์‹ ์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ž˜ ๋งž์ถฐ์ฃผ๋ฉฐ, ํ™”ํ•ฉ์„ ์ค‘์š”์‹œํ•œ๋‹ค. ',
'๊ฐ‘์‹  (็”ฒ็”ณ)' : '๋‚ด๋ฉด์ด ๋ณ€ํ™”๋ฌด์Œํ•˜๋‚˜ ๊ฒ‰์œผ๋กœ๋Š” ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š๊ณ , ๊ฐ•์ธํ•œ ๋ฉด๋ชจ๋กœ ์–ด๋ ค์›€์„ ๊ทน๋ณตํ•œ๋‹ค.',
'์„์œ  (ไน™้…‰)' : 'ํƒ€์ธ์˜ ๋น„๋ฐ€์„ ์ž˜ ์ง€์ผœ์ฃผ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์œผ๋กœ, ์ง‘์ค‘๋ ฅ๊ณผ ์ƒํ™œ๋ ฅ์ด ๊ฐ•ํ•˜๋‹ค. ',
'๋ณ‘์ˆ  (ไธ™ๆˆŒ)' : '๊ด€๋Œ€ํ•˜๋ฉด์„œ๋„ ์„ธ์„ธํ•œ ๋ถ€๋ถ„์— ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒํ™œ๋ ฅ์ด ๊ฐ•ํ•˜๊ณ  ํ˜„๋ช…ํ•˜๋‹ค. ',
'์ •ํ•ด (ไธไบฅ)' : 'ํฌ์šฉ๋ ฅ์ด ๋›ฐ์–ด๋‚˜๊ณ  ์‚ถ์— ๋Œ€ํ•œ ์• ์ฐฉ์ด ๊ฐ•ํ•˜๋ฉฐ, ์ง„์‹ฌ์œผ๋กœ ์ฃผ๋ณ€์„ ์ฑ™๊ธด๋‹ค. ',
'๋ฌด์ž (ๆˆŠๅญ)' : '์‹ ๋น„๋กœ์šด ๋ถ„์œ„๊ธฐ์™€ ์žฌ๋ฌผ์„ ์ค‘์‹œํ•˜๋Š” ์„ฑํ–ฅ์ด ์žˆ์œผ๋ฉฐ, ์†๋‚ด๋ฅผ ์ž˜ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š๋Š”๋‹ค. ',
'๊ธฐ์ถ• (ๅทฑไธ‘)' : '๊ฐ•์ธํ•œ ๋‚ด๋ฉด์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์ž์‹ ๋งŒ์˜ ๊ธธ์„ ๊ฑธ์–ด๊ฐ€๋Š” ํ™•๊ณ ํ•œ ์‹ ๋…์„ ์ง€๋‹Œ๋‹ค. ',
'๊ฒฝ์ธ (ๅบšๅฏ…)' : 'ํฐ ํฌ๋ถ€์™€ ๊ตญ์ œ์ ์ธ ํ™œ๋™์„ ์ถ”๊ตฌํ•˜๋ฉฐ, ์‚ฌ์—…์—์„œ ํฐ ์„ฑ๊ณต์„ ๊ฟˆ๊พธ๋Š” ์‚ฌ๋žŒ์ด๋‹ค. ',
'์‹ ๋ฌ˜ (่พ›ๅฏ)' : '๊น๊นํ•˜๊ณ  ๋‚ ์นด๋กœ์šธ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งˆ์Œ์ด ์ฐฉํ•œ ์‚ฌ๋žŒ์ด๋‹ค. ',
'์ž„์ง„ (ๅฃฌ่พฐ)' : '์ธ๋‚ด์‹ฌ์ด ๊ฐ•ํ•˜๊ณ , ํ•œ ๋ฒˆ ๋งˆ์Œ๋จน์€ ์ผ์€ ๋๊นŒ์ง€ ๋ฐ€๊ณ  ๋‚˜๊ฐ€๋Š” ๊ฐ•์ธํ•œ ์˜์ง€์˜ ์‚ฌ๋žŒ์ด๋‹ค. ',
'๊ณ„์‚ฌ (็™ธๅทณ)' : '์ ์ ˆํ•œ ํƒ€์ด๋ฐ๊ณผ ์ƒํ™ฉ ํŒ๋‹จ๋ ฅ์œผ๋กœ ๋ˆˆ์— ๋„๋Š” ์„ฑ์ทจ๋ฅผ ์ด๋ฃจ๋Š” ์‚ฌ๋žŒ์ด๋‹ค. ๋˜‘๋˜‘ํ•˜๊ณ  ์ƒํ™ฉ์— ๋งž๋Š” ์ตœ์„ ์˜ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ค„ ์•Œ๋ฉฐ, ์‚ถ์—์„œ์˜ ์—ฌ๋Ÿฌ ๊ธฐํšŒ๋ฅผ ์ž˜ ์‚ด๋ฆฐ๋‹ค. ',
'๊ฐ‘์˜ค (็”ฒๅˆ)' : '์กฐ๊ธˆ ์กฐ๊ธ‰ํ•˜๊ณ  ์‹ค์ˆ˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‚ญ๋งŒ์ ์ด๊ณ  ์พŒํ™œํ•˜์—ฌ ์ฃผ๋ณ€์„ ๋ฐ๊ฒŒ ๋งŒ๋“ ๋‹ค.',
'์„๋ฏธ (ไน™ๆœช)' : '์• ์ •์ด ๋งŽ๊ณ  ๋ˆ๊ธฐ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋ช…ํ™•ํ•œ ์ฃผ๊ด€๊ณผ ํ•จ๊ป˜ ์‚ฌ๋ฌผ์˜ ์ด์น˜๋ฅผ ์ž˜ ํŒŒ์•…ํ•œ๋‹ค. ',
'๋ณ‘์‹  (ไธ™็”ณ)' : '์„ธ๋ จ๋˜๊ณ  ๋ง›๊ณผ ๋ฉ‹์„ ์ถ”๊ตฌํ•˜๋ฉฐ, ์‚ฌ๊ต์ ์ด๋ฉด์„œ๋„ ๋‚ด๋ฉด์˜ ๊ฐˆ๋“ฑ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด๋‹ค. ',
'์ •์œ  (ไธ้…‰)' : '๊ฐ๊ฐ์ ์ด๊ณ  ์žฌ์น˜ ์žˆ๋Š” ์„ฑ๊ฒฉ์œผ๋กœ, ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ฆ๊ฑฐ์›€์„ ์ฃผ๋Š” ์‚ฌ๋žŒ์ด๋‹ค. ',
'๋ฌด์ˆ  (ๆˆŠๆˆŒ)' : '์‹ค์†์„ ์ค‘์‹œํ•˜๊ณ  ์†Œ๋ฐ•ํ•œ ์‚ถ์„ ์ถ”๊ตฌํ•˜๋ฉฐ, ๋‹ด๋ฐฑํ•œ ๋งค๋ ฅ์„ ๊ฐ€์ง„ ์‹ค๋ฆฌ์ฃผ์˜์ž์ด๋‹ค. ',
'๊ธฐํ•ด (ๅทฑไบฅ)' : '์˜จํ™”ํ•˜๊ณ  ๋ช…๋ž‘ํ•˜๋ฉฐ, ์˜์ง€๊ฐ€ ๊ตณ๊ฑดํ•˜๋‚˜ ๋•Œ๋กœ๋Š” ๋ง์„ค์ด๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค. ',
'๊ฒฝ์ž (ๅบšๅญ)' : '์ฐจ๋ถ„ํ•˜๊ณ  ๊ฒฐ๋‹จ๋ ฅ์ด ์žˆ๋Š” ๋ฐ˜๋ฉด, ์ผ์˜ ์žฅ๋‹จ์ ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ํŒ๋‹จํ•˜๋Š” ์‚ฌ๋žŒ์ด๋‹ค. ',
'์‹ ์ถ• (่พ›ไธ‘)' : '๊ฒธ์†ํ•จ๊ณผ ํ•จ๊ป˜ ํƒ€์ธ์„ ์ž˜ ํŒ๋‹จํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„, ์ธ๊ฐ„ ๊ด€๊ณ„์—์„œ์˜ ์กฐ์œจ์ž์ด๋‹ค. ',
'์ž„์ธ (ๅฃฌๅฏ…)' : '์•ˆ์ •๊ฐ์„ ์ถ”๊ตฌํ•˜๋ฉฐ, ์ฆ๊ฑฐ์›€๊ณผ ์žฌ๋ฏธ๋ฅผ ์ค‘์š”์‹œํ•˜๋Š” ํŽธ์•ˆํ•œ ์„ฑ๊ฒฉ์˜ ์†Œ์œ ์ž์ด๋‹ค. ',
'๊ณ„๋ฌ˜ (็™ธๅฏ)' : '์นœ์ ˆํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ž˜ ๋งž์ถฐ์ฃผ๋Š” ์„ฑ๊ฒฉ์œผ๋กœ, ๋Œ€๋‹จํžˆ ์ฐฉํ•˜๊ณ  ์ƒ๋Œ€๋ฐฉ์„ ํŽธ์•ˆํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋Šฅ๋ ฅ์ด ์žˆ๋‹ค. ๊ทธ์˜ ์กด์žฌ๋งŒ์œผ๋กœ๋„ ์ฃผ๋ณ€์— ๊ธ์ •์ ์ธ ๋ถ„์œ„๊ธฐ๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค. ',
'๊ฐ‘์ง„ (็”ฒ่พฐ)' : 'ํ˜ธ์พŒํ•œ ์„ฑ๊ฒฉ ์„ฑ์‹คํ•˜๋ฉด์„œ ์• ๊ต๋Š” ์—†๋Š” ๋ฌด๋š๋šํ•œ ์ƒ๋‚จ์ž ์ƒ์—ฌ์ž ',
'์„์‚ฌ (ไน™ๅทณ)' : '์‚ฌ๋žŒ์„ ๋Œ์–ด๋‹น๊ธฐ๋Š” ๋งค๋ ฅ์ด ๋„˜์น˜๊ณ , ์–ด๋””์„œ๋‚˜ ๋ฐ์€ ์—๋„ˆ์ง€๋ฅผ ๋ฐœ์‚ฐํ•œ๋‹ค. ๋‹ค์žฌ๋‹ค๋Šฅํ•˜๊ณ  ์œ ์—ฐํ•œ ์‚ฌ๊ณ ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ƒˆ๋กœ์šด ๋งŒ๋‚จ๊ณผ ๊ฒฝํ—˜์—์„œ ์ฆ๊ฑฐ์›€์„ ์ฐพ๋Š”๋‹ค. ',
'๋ณ‘์˜ค (ไธ™ๅˆ)' : '์—ด์ •์ ์ด๊ณ  ์ €๋Œ์ ์ธ ์„ฑ๊ฒฉ์œผ๋กœ ์ฃผ๋ณ€์„ ์ด๋„๋Š” ๋ฆฌ๋”์‹ญ๊ณผ ์†”์„ ์ˆ˜๋ฒ”ํ•˜๋Š” ํƒœ๋„๋ฅผ ์ง€๋‹Œ๋‹ค. ',
'์ •๋ฏธ (ไธๆœช)' : '๋ถ€๋“œ๋Ÿฝ๊ณ  ์ž์ƒํ•˜๋ฉฐ ์—ด์ •์ ์ธ ์„ฑ๊ฒฉ์œผ๋กœ, ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ ์ž˜ ์–ด์šธ๋ฆฐ๋‹ค. ',
'๋ฌด์‹  (ๆˆŠ็”ณ)' : '๋”ฐ๋œปํ•œ์‚ฌ๋žŒ์„ ๋Œ์–ด๋‹น๊ธฐ๋Š” ๋งค๋ ฅ์ด ๋„˜์น˜๊ณ , ์–ด๋””์„œ๋‚˜ ๋ฐ์€ ์—๋„ˆ์ง€๋ฅผ ๋ฐœ์‚ฐํ•œ๋‹ค. ๋‹ค์žฌ๋‹ค๋Šฅํ•˜๊ณ  ์œ ์—ฐํ•œ ์‚ฌ๊ณ ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ƒˆ๋กœ์šด ๋งŒ๋‚จ๊ณผ ๊ฒฝํ—˜์—์„œ ์ฆ๊ฑฐ์›€์„ ์ฐพ๋Š”๋‹ค. ๋งˆ์Œ๊ณผ ์„ฌ์„ธํ•œ ๊ฐ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋„“์€ ํฌ์šฉ๋ ฅ์œผ๋กœ ์ฃผ๋ณ€์„ ๊ฐ์‹ผ๋‹ค. ',
'๊ธฐ์œ  (ๅทฑ้…‰)' : '๋Œ€๋‹ดํ•˜๊ณ  ์‚ถ์— ๋Œ€ํ•œ ์—ด์ •์ด ๋„˜์น˜์ง€๋งŒ, ๋•Œ๋กœ๋Š” ์šฐ์œ ๋ถ€๋‹จํ•œ ๋ชจ์Šต์„ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค. ',
'๊ฒฝ์ˆ  (ๅบšๆˆŒ)' : '๋ƒ‰์ •ํ•˜๊ณ  ์‹ ์‚ฌ์ ์ธ ํƒœ๋„๋กœ ํƒ€์ธ์„ ๋•๋Š” ๊ฒƒ์„ ์ฆ๊ธฐ๋ฉฐ, ๋•Œ๋กœ๋Š” ๊นŒํƒˆ์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ๋‹ค. ',
'์‹ ํ•ด (่พ›ไบฅ)' : '์ž์กด์‹ฌ์ด ๊ฐ•ํ•˜๊ณ  ๋ช…ํ™•ํ•œ ์ทจํ–ฅ์„ ๊ฐ€์ง€๋ฉฐ, ๋‚ญ๋งŒ์ ์ธ ๊ฐ์„ฑ์„ ์†Œ์œ ํ•œ ์‚ฌ๋žŒ์ด๋‹ค. ',
'์ž„์ž (ๅฃฌๅญ)' : '์กฐ์šฉํ•˜์ง€๋งŒ, ๋งค๋ ฅ์ ์ด๊ณ  ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฐ•ํ•œ ๋ฉด๋ชจ๋ฅผ ๋“œ๋Ÿฌ๋‚ด๋Š” ์‹ ๋น„ํ•œ ์ธ๋ฌผ์ด๋‹ค. ',
'๊ณ„์ถ• (็™ธไธ‘)' : '๊ฒ‰๋ณด๊ธฐ์—” ์ฐจ๋ถ„ํ•˜์ง€๋งŒ ๋‚ด๋ฉด์—๋Š” ๊ฐ•ํ•œ ์˜์ง€์™€ ์‹ ๋…์„ ์ง€๋‹Œ ์‚ฌ๋žŒ์œผ๋กœ, ์ •๋ง ์‚ฌ๋žŒ์ด ์ข‹๋‹ค๋Š” ๋Š๋‚Œ์„ ์ฃผ๋Š” ๋”ฐ๋œปํ•จ๊ณผ ๊ท ํ˜• ์žกํžŒ ์„ฑ๊ฒฉ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฏฟ์Œ์ง์Šค๋Ÿฌ์šด ์กด์žฌ๋‹ค. ',
'๊ฐ‘์ธ (็”ฒๅฏ…)' : '๋ง์ˆ˜๊ฐ€ ์ ๊ณ  ํ’ˆ์œ„๊ฐ€ ์žˆ๋Š”๋ฐ ์นœํ•œ ์‚ฌ๋žŒ๋งŒ ์นœํ•œ ์‚ฌ๋žŒ',
'์„๋ฌ˜ (ไน™ๅฏ)' : '๋‚ด๋ฉด์˜ ๊ฐ•์ธํ•จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ถ€๋“œ๋Ÿฌ์šด ์‚ฌ๊ต์„ฑ์œผ๋กœ ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค๊ณผ ์‰ฝ๊ฒŒ ์–ด์šธ๋ฆฐ๋‹ค. ์ง์„ ์ ์ธ ์†Œํ†ต ๋ฐฉ์‹ ๋’ค์—๋Š” ์Šค๋ฉฐ๋“œ๋Š” ์˜ํ–ฅ๋ ฅ์ด ์žˆ์–ด, ๋งŽ์€ ์ด๋“ค์—๊ฒŒ ๊ธ์ •์ ์ธ ์—๋„ˆ์ง€๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ',
'๋ณ‘์ง„ (ไธ™่พฐ)' : '๊น”๋”ํ•˜๊ณ  ๋‹จ์ •ํ•œ ์™ธ๋ชจ์— ๋„๋•์ ์ด๋ฉฐ, ์ƒํ™ฉ์„ ๊ต๋ฌ˜ํ•˜๊ฒŒ ์กฐ์ •ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง„๋‹ค. ',
'์ •์‚ฌ (ไธๅทณ)' : '๊ฒฝ์Ÿ์„ ์ฆ๊ธฐ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ์••๋„ํ•˜๋ ค๋Š” ๊ฐ•ํ•œ ์˜์ง€์™€ ์‚ฌ๊ต์ ์ธ ๋Šฅ๋ ฅ์„ ๊ฐ€์กŒ๋‹ค. ',
'๋ฌด์˜ค (ๆˆŠๅˆ)' : '๊ฒฐ์ฝ” ๊ตดํ•˜์ง€ ์•Š๋Š” ์ •์‹ ๋ ฅ๊ณผ ์‚ฌ์—…์—์„œ์˜ ์„ฑ๊ณต์„ ๊ฟˆ๊พธ๋Š”, ์•ผ๋ง ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋‹ค. ',
'๊ธฐ๋ฏธ (ๅทฑๆœช)' : '๋ด‰์‚ฌ์ •์‹ ์ด ํˆฌ์ฒ ํ•˜๊ณ  ๊ณต๋™์ฒด ์˜์‹์ด ๊ฐ•ํ•˜๋ฉฐ, ๊ณต์ต์„ ์œ„ํ•ด ์ ๊ทน์ ์œผ๋กœ ๊ธฐ์—ฌํ•œ๋‹ค. ',
'๊ฒฝ์‹  (ๅบš็”ณ)' : 'ํ™œ๋™์ ์ด๊ณ  ๋ฐ–์œผ๋กœ์˜ ํ™œ๋™์„ ์ฆ๊ธฐ๋ฉฐ, ์ƒˆ๋กœ์šด ๊ฒƒ์— ๋„์ „ํ•˜๋Š” ๊ฒƒ์„ ๋‘๋ ค์›Œํ•˜์ง€ ์•Š๋Š”๋‹ค. ',
'์‹ ์œ  (่พ›้…‰)' : '๊ณ ์ƒํ•˜๊ณ  ํƒ€์ธ์„ ์œ„ํ•˜๋Š” ๋งˆ์Œ์ด ๊ฐ•ํ•˜์ง€๋งŒ, ๊ฐ์ •์ด ๊ฒฉํ•ด์งˆ ๋•Œ๋Š” ์ƒ๋‹นํžˆ ๋ฌด์„œ์šธ ์ˆ˜ ์žˆ๋‹ค. ',
'์ž„์ˆ  (ๅฃฌๆˆŒ)' : '๊ณ ์ง‘์ด ์žˆ์ง€๋งŒ ๊ฐ€์กฑ๊ณผ ํƒ€์ธ์„ ์œ„ํ•ด ํ—Œ์‹ ์ ์œผ๋กœ ๋…ธ๋ ฅํ•˜๋Š” ๊ฐ•ํ•œ ๋ฉด๋ชจ๋ฅผ ์ง€๋‹Œ๋‹ค. ',
'๊ณ„ํ•ด (็™ธไบฅ)' : '๊ทธ์ € ๋น ์ ธ๋“ค๊ฒŒ ๋งŒ๋“œ๋Š” ๊นŠ์€ ๋‚ด๋ฉด์˜ ๋งค๋ ฅ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์œผ๋กœ, ์˜์™ธ์˜ ๊นŠ์€ ์ƒ๊ฐ๊ณผ ๊ฐ์„ฑ์„ ์ง€๋‹ˆ๊ณ  ์žˆ๋‹ค. ์ž์‹ ๋งŒ์˜ ์„ธ๊ณ„๊ฐ€ ํ’๋ถ€ํ•ด ํƒ€์ธ๊ณผ์˜ ๊ต๋ฅ˜์—์„œ๋„ ๋…ํŠนํ•œ ๊ด€์ ์„ ์ œ๊ณตํ•œ๋‹ค. ',
}
def ์‚ฌ์ฃผ_๋ถ„์„(๋…„์ฃผ, ์›”์ฃผ, ์ผ์ฃผ, ์‹œ์ฃผ):
# ๊ฐ ์ฃผ์— ๋Œ€ํ•œ ์„ค๋ช…์„ HTML ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜
html_result = f"""
<div>
<h4>์‚ฌ์ฃผ ๋ถ„์„ ๊ฒฐ๊ณผ</h4>
<p><b>๋…„์ฃผ ์š”์•ฝ:</b> {๋…„์ฃผ} - {์‚ฌ์ฃผ_๋ฐ์ดํ„ฐ.get(๋…„์ฃผ, '์ •๋ณด ์—†์Œ')}</p>
<p><b>์›”์ฃผ ์š”์•ฝ:</b> {์›”์ฃผ} - {์‚ฌ์ฃผ_๋ฐ์ดํ„ฐ.get(์›”์ฃผ, '์ •๋ณด ์—†์Œ')}</p>
<p><b>์ผ์ฃผ ์š”์•ฝ:</b> {์ผ์ฃผ} - {์‚ฌ์ฃผ_๋ฐ์ดํ„ฐ.get(์ผ์ฃผ, '์ •๋ณด ์—†์Œ')}</p>
<p><b>์‹œ์ฃผ ์š”์•ฝ:</b> {์‹œ์ฃผ} - {์‚ฌ์ฃผ_๋ฐ์ดํ„ฐ.get(์‹œ์ฃผ, '์ •๋ณด ์—†์Œ')}</p>
</div>
"""
return html_result
with gr.Blocks() as demo:
with gr.Tab("AI ์‚ฌ์ฃผ ์šด์„ธ ๋ถ„์„"):
solYear = gr.Textbox(label="์ƒ๋…„(์˜ˆ: 1990)")
solMonth = gr.Textbox(label="์ƒ์›”(์˜ˆ: 01)")
solDay = gr.Textbox(label="์ƒ์ผ(์˜ˆ: 31)")
solHour = gr.Textbox(label="์ƒ์‹œ(์˜ˆ์‹œ: 1030)", placeholder="์‹œ๊ฐ„์„ 24์‹œ๊ฐ„ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•˜์„ธ์š” (์˜ˆ: 2230)")
output1 = gr.JSON(label="๊ฒฐ๊ณผ")
analysis_result = gr.HTML() # ์‚ฌ์ฃผ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•  HTML ์ปดํฌ๋„ŒํŠธ ๋จผ์ € ์„ ์–ธ
# ์ผ์ฃผ๋ฅผ ์ €์žฅํ•  State ์ถ”๊ฐ€
lunIljin_state = gr.State()
get_lunar_info_btn = gr.Button("๋ถ„์„ํ•˜๊ธฐ")
# ๋ฒ„ํŠผ ํด๋ฆญ ์ด๋ฒคํŠธ ์„ค์ •, outputs ์ˆœ์„œ์— ๋งž๊ฒŒ ์ˆ˜์ •
get_lunar_info_btn.click(
fn=get_lunar_info,
inputs=[solYear, solMonth, solDay, solHour],
outputs=[output1, lunIljin_state, analysis_result]
)
with gr.Tab("๋‚˜์˜ ์„ฑ๊ฒฉ๊ณผ ํŠน์ง• ๋ถ„์„"):
OPENAI_API_KEY_input = gr.Textbox(label="OpenAI API ํ‚ค", placeholder="์—ฌ๊ธฐ์— OpenAI API ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”")
character_output = gr.Textbox(label="์„ฑ๊ฒฉ๊ณผ ํŠน์ง•")
analyze_button = gr.Button("๋ถ„์„ํ•˜๊ธฐ")
# analyze_character ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ lunIljin_state์™€ OPENAI_API_KEY_input๋ฅผ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ
analyze_button.click(fn=analyze_character, inputs=[lunIljin_state, OPENAI_API_KEY_input], outputs=character_output)
demo.launch()