Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -9,83 +9,85 @@ import json
|
|
9 |
def exception_handler(exception_type, exception, traceback):
|
10 |
print(f"{exception_type.__name__}: {exception}")
|
11 |
|
|
|
12 |
sys.excepthook = exception_handler
|
13 |
sys.tracebacklimit = 0
|
14 |
|
|
|
15 |
def get_chinese_hour(birth_hour):
|
16 |
hour = int(birth_hour[:2])
|
17 |
chinese_hours = ['์', '์ถ', '์ธ', '๋ฌ', '์ง', '์ฌ', '์ค', '๋ฏธ', '์ ', '์ ', '์ ', 'ํด']
|
18 |
return chinese_hours[hour // 2 % 12]
|
19 |
|
|
|
20 |
def calculate_siju(birth_hour, lunIljin):
|
21 |
chinese_hour = get_chinese_hour(birth_hour) # ์์์ ํด๋นํ๋ ์ง์ง
|
22 |
lunIljin_first = lunIljin[0] # ์ผ์ฃผ์ ์ฒซ ๊ธ์
|
23 |
-
|
24 |
# ์ผ์ฃผ ์ฒซ ๊ธ์์ ๋ฐ๋ฅธ ์์ฃผ ๋งคํ
|
25 |
siju_mapping = {
|
26 |
-
|
27 |
-
('๊ฐ', '์'): '๊ฐ์(็ฒๅญ)', ('๊ธฐ', '์'): '๊ฐ์(็ฒๅญ)',
|
28 |
-
('์', '์'): '๋ณ์(ไธๅญ)', ('๊ฒฝ', '์'): '๋ณ์(ไธๅญ)',
|
29 |
-
('๋ณ', '์'): '๋ฌด์(ๆๅญ)', ('์ ', '์'): '๋ฌด์(ๆๅญ)',
|
30 |
-
('์ ', '์'): '๊ฒฝ์(ๅบๅญ)', ('์', '์'): '๊ฒฝ์(ๅบๅญ)',
|
31 |
-
('๋ฌด', '์'): '์์(ๅฃฌๅญ)', ('๊ณ', '์'): '์์(ๅฃฌๅญ)',
|
32 |
-
('๊ฐ', '์ถ'): '์์ถ(ไนไธ)', ('๊ธฐ', '์ถ'): '์์ถ(ไนไธ)',
|
33 |
-
('์', '์ถ'): '์ ์ถ(ไธไธ)', ('๊ฒฝ', '์ถ'): '์ ์ถ(ไธไธ)',
|
34 |
-
('๋ณ', '์ถ'): '๊ธฐ์ถ(ๅทฑไธ)', ('์ ', '์ถ'): '๊ธฐ์ถ(ๅทฑไธ)',
|
35 |
-
('์ ', '์ถ'): '์ ์ถ(่พไธ)', ('์', '์ถ'): '์ ์ถ(่พไธ)',
|
36 |
-
('๋ฌด', '์ถ'): '๊ณ์ถ(็ธไธ)', ('๊ณ', '์ถ'): '๊ณ์ถ(็ธไธ)',
|
37 |
-
('๊ฐ', '์ธ'): '๋ณ์ธ(ไธๅฏ
)', ('๊ธฐ', '์ธ'): '๋ณ์ธ(ไธๅฏ
)',
|
38 |
-
('์', '์ธ'): '๋ฌด์ธ(ๆๅฏ
)', ('๊ฒฝ', '์ธ'): '๋ฌด์ธ(ๆๅฏ
)',
|
39 |
-
('๋ณ', '์ธ'): '๊ฒฝ์ธ(ๅบๅฏ
)', ('์ ', '์ธ'): '๊ฒฝ์ธ(ๅบๅฏ
)',
|
40 |
-
('์ ', '์ธ'): '์์ธ(ๅฃฌๅฏ
)', ('์', '์ธ'): '์์ธ(ๅฃฌๅฏ
)',
|
41 |
-
('๋ฌด', '์ธ'): '๊ฐ์ธ(็ฒๅฏ
)', ('๊ณ', '์ธ'): '๊ฐ์ธ(็ฒๅฏ
)',
|
42 |
-
('๊ฐ', '๋ฌ'): '์ ๋ฌ(ไธๅฏ)', ('๊ธฐ', '๋ฌ'): '์ ๋ฌ(ไธๅฏ)',
|
43 |
-
('์', '๋ฌ'): '๊ธฐ๋ฌ(ๅทฑๅฏ)', ('๊ฒฝ', '๋ฌ'): '๊ธฐ๋ฌ(ๅทฑๅฏ)',
|
44 |
-
('๋ณ', '๋ฌ'): '์ ๋ฌ(่พๅฏ)', ('์ ', '๋ฌ'): '์ ๋ฌ(่พๅฏ)',
|
45 |
-
('์ ', '๋ฌ'): '๊ณ๋ฌ(็ธๅฏ)', ('์', '๋ฌ'): '๊ณ๋ฌ(็ธๅฏ)',
|
46 |
-
('๋ฌด', '๋ฌ'): '์๋ฌ(ไนๅฏ)', ('๊ณ', '๋ฌ'): '์๋ฌ(ไนๅฏ)',
|
47 |
-
('๊ฐ', '์ง'): '๋ฌด์ง(ๆ่พฐ)', ('๊ธฐ', '์ง'): '๋ฌด์ง(ๆ่พฐ)',
|
48 |
-
('์', '์ง'): '๊ฒฝ์ง(ๅบ่พฐ)', ('๊ฒฝ', '์ง'): '๊ฒฝ์ง(ๅบ่พฐ)',
|
49 |
-
('๋ณ', '์ง'): '์์ง(ๅฃฌ่พฐ)', ('์ ', '์ง'): '์์ง(ๅฃฌ่พฐ)',
|
50 |
-
('์ ', '์ง'): '๊ฐ์ง(็ฒ่พฐ)', ('์', '์ง'): '๊ฐ์ง(็ฒ่พฐ)',
|
51 |
-
('๋ฌด', '์ง'): '๋ณ์ง(ไธ่พฐ)', ('๊ณ', '์ง'): '๋ณ์ง(ไธ่พฐ)',
|
52 |
-
('๊ฐ', '์ฌ'): '๊ธฐ์ฌ(ๅทฑๅทณ)', ('๊ธฐ', '์ฌ'): '๊ธฐ์ฌ(ๅทฑๅทณ)',
|
53 |
-
('์', '์ฌ'): '์ ์ฌ(่พๅทณ)', ('๊ฒฝ', '์ฌ'): '์ ์ฌ(่พๅทณ)',
|
54 |
-
('๋ณ', '์ฌ'): '๊ณ์ฌ(็ธๅทณ)', ('์ ', '์ฌ'): '๊ณ์ฌ(็ธๅทณ)',
|
55 |
-
('์ ', '์ฌ'): '์์ฌ(ไนๅทณ)', ('์', '์ฌ'): '์์ฌ(ไนๅทณ)',
|
56 |
-
('๋ฌด', '์ฌ'): '์ ์ฌ(ไธๅทณ)', ('๊ณ', '์ฌ'): '์ ์ฌ(ไธๅทณ)',
|
57 |
-
('๊ฐ', '์ค'): '๊ฒฝ์ค(ๅบๅ)', ('๊ธฐ', '์ค'): '๊ฒฝ์ค(ๅบๅ)',
|
58 |
-
('์', '์ค'): '์์ค(ๅฃฌๅ)', ('๊ฒฝ', '์ค'): '์์ค(ๅฃฌๅ)',
|
59 |
-
('๋ณ', '์ค'): '๊ฐ์ค(็ฒๅ)', ('์ ', '์ค'): '๊ฐ์ค(็ฒๅ)',
|
60 |
-
('์ ', '์ค'): '๋ณ์ค(ไธๅ)', ('์', '์ค'): '๋ณ์ค(ไธๅ)',
|
61 |
-
('๋ฌด', '์ค'): '๋ฌด์ค(ๆๅ)', ('๊ณ', '์ค'): '๋ฌด์ค(ๆๅ)',
|
62 |
-
('๊ฐ', '๋ฏธ'): '์๋ฏธ(ๅฃฌๆช)', ('๊ธฐ', '๋ฏธ'): '์๋ฏธ(ๅฃฌๆช)',
|
63 |
-
('์', '๋ฏธ'): '๊ฐ๋ฏธ(็ฒๆช)', ('๊ฒฝ', '๋ฏธ'): '๊ฐ๋ฏธ(็ฒๆช)',
|
64 |
-
('๋ณ', '๋ฏธ'): '๋ณ๋ฏธ(ไธๆช)', ('์ ', '๋ฏธ'): '๋ณ๋ฏธ(ไธๆช)',
|
65 |
-
('์ ', '๋ฏธ'): '๋ฌด๋ฏธ(ๆๆช)', ('์', '๋ฏธ'): '๋ฌด๋ฏธ(ๆๆช)',
|
66 |
-
('๋ฌด', '๋ฏธ'): '๊ฒฝ๋ฏธ(ๅบๆช)', ('๊ณ', '๋ฏธ'): '๊ฒฝ๋ฏธ(ๅบๆช)',
|
67 |
-
('๊ฐ', '์ '): '์์ (ๅฃฌ็ณ)', ('๊ธฐ', '์ '): '์์ (ๅฃฌ็ณ)',
|
68 |
-
('์', '์ '): '๊ฐ์ (็ฒ็ณ)', ('๊ฒฝ', '์ '): '๊ฐ์ (็ฒ็ณ)',
|
69 |
-
('๋ณ', '์ '): '๋ณ์ (ไธ็ณ)', ('์ ', '์ '): '๋ณ์ (ไธ็ณ)',
|
70 |
-
('์ ', '์ '): '๋ฌด์ (ๆ็ณ)', ('์', '์ '): '๋ฌด์ (ๆ็ณ)',
|
71 |
-
('๋ฌด', '์ '): '๊ฒฝ์ (ๅบ็ณ)', ('๊ณ', '์ '): '๊ฒฝ์ (ๅบ็ณ)',
|
72 |
-
('๊ฐ', '์ '): '๊ณ์ (็ธ้
)', ('๊ธฐ', '์ '): '๊ณ์ (็ธ้
)',
|
73 |
-
('์', '์ '): '์์ (ไน้
)', ('๊ฒฝ', '์ '): '์์ (ไน้
)',
|
74 |
-
('๋ณ', '์ '): '์ ์ (ไธ้
)', ('์ ', '์ '): '์ ์ (ไธ้
)',
|
75 |
-
('์ ', '์ '): '๊ธฐ์ (ๅทฑ้
)', ('์', '์ '): '๊ธฐ์ (ๅทฑ้
)',
|
76 |
-
('๋ฌด', '์ '): '์ ์ (่พ้
)', ('๊ณ', '์ '): '์ ์ (่พ้
)',
|
77 |
-
('๊ฐ', '์ '): '๊ฐ์ (็ฒๆ) ', ('๊ธฐ', '์ '): '๊ฐ์ (็ฒๆ)',
|
78 |
-
('์', '์ '): '๋ณ์ (ไธๆ) ', ('๊ฒฝ', '์ '): '๋ณ์ (ไธๆ)',
|
79 |
-
('๋ณ', '์ '): '๋ฌด์ (ๆๆ) ', ('์ ', '์ '): '๋ฌด์ (ๆๆ)',
|
80 |
-
('์ ', '์ '): '๊ฒฝ์ (ๅบๆ) ', ('์', '์ '): '๊ฒฝ์ (ๅบๆ)',
|
81 |
-
('๋ฌด', '์ '): '์์ (ๅฃฌๆ) ', ('๊ณ', '์ '): '์์ (ๅฃฌๆ)',
|
82 |
-
('๊ฐ', 'ํด'): '์ํด(ไนไบฅ)', ('๊ธฐ', 'ํด'): '์ํด(ไนไบฅ)',
|
83 |
-
('์', 'ํด'): '์ ํด(ไธไบฅ)', ('๊ฒฝ', 'ํด'): '์ ํด(ไธไบฅ)',
|
84 |
-
('๋ณ', 'ํด'): '๊ธฐํด(ๅทฑไบฅ)', ('์ ', 'ํด'): '๊ธฐํด(ๅทฑไบฅ)',
|
85 |
-
('์ ', 'ํด'): '์ ํด(่พไบฅ)', ('์', 'ํด'): '์ ํด(่พไบฅ)',
|
86 |
-
('๋ฌด', 'ํด'): '๊ณํด(็ธไบฅ)', ('๊ณ', 'ํด'): '๊ณํด(็ธไบฅ)',
|
87 |
-
}
|
88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
# ์์ฃผ ๊ณ์ฐ
|
91 |
siju_key = (lunIljin_first, chinese_hour)
|
@@ -94,37 +96,57 @@ def calculate_siju(birth_hour, lunIljin):
|
|
94 |
# ์ผ์ฃผ์ ์ง์ง ์กฐํฉ์ ๋ํ ๋งคํ์ด ์๋ ๊ฒฝ์ฐ์ ์ฒ๋ฆฌ
|
95 |
siju = f"์ผ์ฃผ '{lunIljin_first}'์ ์ง์ง '{chinese_hour}'์ ํด๋นํ๋ ์์ฃผ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค."
|
96 |
|
97 |
-
return siju
|
|
|
98 |
|
99 |
def get_lunar_info(solYear, solMonth, solDay, solHour):
|
100 |
base_url = "http://apis.data.go.kr/B090041/openapi/service/LrsrCldInfoService/getLunCalInfo"
|
101 |
service_key = "EuBjt%2B2t0KzYt5Ri%2Bzs56oymt9kHJ8uPIOV7m6UMKnOV8cpwj02EiRqMEudX%2F%2FVTKdMnwaLH0igRwY57YUplEQ%3D%3D"
|
102 |
url = f"{base_url}?solYear={solYear}&solMonth={solMonth}&solDay={solDay}&ServiceKey={service_key}"
|
103 |
-
|
104 |
-
|
105 |
response = requests.get(url)
|
106 |
if response.status_code == 200:
|
107 |
root = ElementTree.fromstring(response.content)
|
108 |
-
|
109 |
lunIljin = root.find(".//lunIljin").text if root.find(".//lunIljin") is not None else "์ ๋ณด ์์"
|
110 |
lunWolgeon = root.find(".//lunWolgeon").text if root.find(".//lunWolgeon") is not None else "์ ๋ณด ์์"
|
111 |
lunSecha = root.find(".//lunSecha").text if root.find(".//lunSecha") is not None else "์ ๋ณด ์์"
|
112 |
-
|
113 |
siju = calculate_siju(solHour, lunIljin)
|
114 |
-
|
115 |
# ์ฌ์ฃผ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ HTML ํ์์ผ๋ก ์์ฑํฉ๋๋ค.
|
116 |
analysis_html = ์ฌ์ฃผ_๋ถ์(lunSecha, lunWolgeon, lunIljin, siju)
|
117 |
-
|
118 |
# JSON ๊ฒฐ๊ณผ, ์ผ์ฃผ State, ๊ทธ๋ฆฌ๊ณ HTML ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
|
119 |
return {
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
else:
|
126 |
return {"Error": "API ํธ์ถ์ ์คํจํ์ต๋๋ค."}, "์ ๋ณด ์์", "<p>API ํธ์ถ์ ์คํจํ์ต๋๋ค.</p>"
|
127 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
# B ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ ํจ์ ์ถ๊ฐ
|
129 |
def get_famous_people(lunIljin):
|
130 |
famous_people = {
|
@@ -142,10 +164,14 @@ def get_famous_people(lunIljin):
|
|
142 |
"์๋ฌ": "๋ฌธ๊ทผ์, ๊ธฐ์ฐ์ค, ํ์ฌ, ์ผํ๋, ๊ท์ง[์๋ฏน์ค], ํจ์ , ์ฅ๊ธฐ์ฉ, ์ง์ฑ, ์ด๊ทผ, ์กฐ์ฉํ, ๋ฆฌ์, ๋ฃจํ, ํ์นดํ์ ๋ฃจ๋ฏธ์ฝ[์ด๋์ผ์ค]",
|
143 |
"๋ณ์ธ": "์ฅํ์น, ์์๊ตฌ, ๋ฐ์ง์[ํ๋ฏธ๋], ๋ผ๋๋ฎค์ง์, ๊นํ์จ, ์ดํ๊ธฐ, ๋ฒ๋ฒ์งํธ, ํ๋ฆฌ, ์ค์์, ๊ฐํ์ฑ, ๋ฐฑ์ข
์, ์๋ผํค ํ๋กํ์ฝ[์ฃ ์ฃ ์ ๊ธฐ๋ฌํ ๋ชจํ], ๋ ์ค์ ์ด[์ ํ๋ฒ], ํํ๋ฌ",
|
144 |
"๋ณ์": "์ ์ธํ, ํ์น์ฐ[๋ฃจํธ,๋์], ์ฃผ์ฐ์ฌ, ํ๋ฆญ์ค[์คํค์ฆ], ์งํธ, ๋ฐฑ์ง์, ๊น๋ณ๋ง, ์ด๋
ธ์ฐ์ ๋ค์ผํ์ฝ[์ฌ๋จ๋ฉํฌ], ํฉ์์กฐ, ํ์",
|
|
|
|
|
145 |
}
|
146 |
-
|
|
|
147 |
|
148 |
-
|
|
|
149 |
API_URL = "https://api.openai.com/v1/chat/completions"
|
150 |
payload = {
|
151 |
"model": "gpt-4-0125-preview", # ๋ชจ๋ธ ์ด๋ฆ ํ์ธ ํ์
|
@@ -170,70 +196,97 @@ def analyze_character(lunIljin, OPENAI_API_KEY):
|
|
170 |
# ์ค๋ฅ ๋ฉ์์ง ๊ฐ์
|
171 |
return f"์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ํ ์ฝ๋: {response.status_code}, ๋ฉ์์ง: {response.json().get('error', {}).get('message', 'Unknown error')}", ""
|
172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
|
174 |
# ์ฌ์ฃผ ๋ถ์ ๋ฐ์ดํฐ ์์ (๊ฐ์ํ๋ ๋ฒ์ )
|
175 |
์ฌ์ฃผ_๋ฐ์ดํฐ = {
|
176 |
-
'๊ฐ์(็ฒๅญ)'
|
177 |
-
'์์ถ(ไนไธ)'
|
178 |
-
'๋ณ์ธ(ไธๅฏ
)'
|
179 |
-
'์ ๋ฌ(ไธๅฏ)'
|
180 |
-
'๋ฌด์ง(ๆ่พฐ)'
|
181 |
-
'๊ธฐ์ฌ(ๅทฑๅทณ)'
|
182 |
-
'๊ฒฝ์ค(ๅบๅ)'
|
183 |
-
'์ ๋ฏธ(่พๆช)'
|
184 |
-
'์์ (ๅฃฌ็ณ)'
|
185 |
-
'๊ณ์ (็ธ้
)'
|
186 |
-
'๊ฐ์ (็ฒๆ)'
|
187 |
-
'์ํด(ไนไบฅ)'
|
188 |
-
'๋ณ์(ไธๅญ)'
|
189 |
-
'์ ์ถ(ไธไธ)'
|
190 |
-
'๋ฌด์ธ(ๆๅฏ
)'
|
191 |
-
'๊ธฐ๋ฌ(ๅทฑๅฏ)'
|
192 |
-
'๊ฒฝ์ง(ๅบ่พฐ)'
|
193 |
-
'์ ์ฌ(่พๅทณ)'
|
194 |
-
'์์ค(ๅฃฌๅ)'
|
195 |
-
'๊ณ๋ฏธ(็ธๆช)'
|
196 |
-
'๊ฐ์ (็ฒ็ณ)'
|
197 |
-
'์์ (ไน้
)'
|
198 |
-
'๋ณ์ (ไธๆ)'
|
199 |
-
'์ ํด(ไธไบฅ)'
|
200 |
-
'๋ฌด์(ๆๅญ)'
|
201 |
-
'๊ธฐ์ถ(ๅทฑไธ)'
|
202 |
-
'๊ฒฝ์ธ(ๅบๅฏ
)'
|
203 |
-
'์ ๋ฌ(่พๅฏ)'
|
204 |
-
'์์ง(ๅฃฌ่พฐ)'
|
205 |
-
'๊ณ์ฌ(็ธๅทณ)'
|
206 |
-
'๊ฐ์ค(็ฒๅ)'
|
207 |
-
'์๋ฏธ(ไนๆช)'
|
208 |
-
'๋ณ์ (ไธ็ณ)'
|
209 |
-
'์ ์ (ไธ้
)'
|
210 |
-
'๋ฌด์ (ๆๆ)'
|
211 |
-
'๊ธฐํด(ๅทฑไบฅ)'
|
212 |
-
'๊ฒฝ์(ๅบๅญ)'
|
213 |
-
'์ ์ถ(่พไธ)'
|
214 |
-
'์์ธ(ๅฃฌๅฏ
)'
|
215 |
-
'๊ณ๋ฌ(็ธๅฏ)'
|
216 |
-
'๊ฐ์ง(็ฒ่พฐ)'
|
217 |
-
'์์ฌ(ไนๅทณ)'
|
218 |
-
'๋ณ์ค(ไธๅ)'
|
219 |
-
'์ ๋ฏธ(ไธๆช)'
|
220 |
-
'๋ฌด์ (ๆ็ณ)'
|
221 |
-
'๊ธฐ์ (ๅทฑ้
)'
|
222 |
-
'๊ฒฝ์ (ๅบๆ)'
|
223 |
-
'์ ํด(่พไบฅ)'
|
224 |
-
'์์(ๅฃฌๅญ)'
|
225 |
-
'๊ณ์ถ(็ธไธ)'
|
226 |
-
'๊ฐ์ธ(็ฒๅฏ
)'
|
227 |
-
'์๋ฌ(ไนๅฏ)'
|
228 |
-
'๋ณ์ง(ไธ่พฐ)'
|
229 |
-
'์ ์ฌ(ไธๅทณ)'
|
230 |
-
'๋ฌด์ค(ๆๅ)'
|
231 |
-
'๊ธฐ๋ฏธ(ๅทฑๆช)'
|
232 |
-
'๊ฒฝ์ (ๅบ็ณ)'
|
233 |
-
'์ ์ (่พ้
)'
|
234 |
-
'์์ (ๅฃฌๆ)'
|
235 |
-
'๊ณํด(็ธไบฅ)'
|
236 |
-
|
|
|
237 |
|
238 |
def ์ฌ์ฃผ_๋ถ์(๋
์ฃผ, ์์ฃผ, ์ผ์ฃผ, ์์ฃผ):
|
239 |
# ๊ฐ ์ฃผ์ ๋ํ ์ค๋ช
์ HTML ํ์์ผ๋ก ๋ฐํ
|
@@ -250,6 +303,11 @@ def ์ฌ์ฃผ_๋ถ์(๋
์ฃผ, ์์ฃผ, ์ผ์ฃผ, ์์ฃผ):
|
|
250 |
|
251 |
|
252 |
with gr.Blocks() as demo:
|
|
|
|
|
|
|
|
|
|
|
253 |
with gr.Tab("AI ์ฌ์ฃผ ์ด์ธ ๋ถ์"):
|
254 |
solYear = gr.Textbox(label="์๋
(์: 1990)")
|
255 |
solMonth = gr.Textbox(label="์์(์: 01)")
|
@@ -261,20 +319,42 @@ with gr.Blocks() as demo:
|
|
261 |
get_lunar_info_btn = gr.Button("๋ถ์ํ๊ธฐ")
|
262 |
|
263 |
get_lunar_info_btn.click(
|
264 |
-
fn=get_lunar_info,
|
265 |
-
inputs=[solYear, solMonth, solDay, solHour],
|
266 |
outputs=[output1, lunIljin_state, analysis_result]
|
267 |
)
|
268 |
-
|
269 |
with gr.Tab("๋์ ์ฑ๊ฒฉ๊ณผ ํน์ง ๋ถ์"):
|
270 |
OPENAI_API_KEY_input = gr.Textbox(label="OpenAI API ํค", placeholder="์ฌ๊ธฐ์ OpenAI API ํค๋ฅผ ์
๋ ฅํ์ธ์")
|
|
|
271 |
character_output = gr.Textbox(label="์ฑ๊ฒฉ๊ณผ ํน์ง")
|
272 |
-
|
273 |
celebrity_output = gr.Textbox(label="๏ฟฝ๏ฟฝ๏ฟฝ๋ช
์ธ ์ด๋ฆ")
|
274 |
-
|
275 |
analyze_button = gr.Button("๋ถ์ํ๊ธฐ")
|
276 |
-
analyze_button.click(fn=analyze_character, inputs=[lunIljin_state, OPENAI_API_KEY_input],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
277 |
|
278 |
-
|
|
|
|
|
|
|
|
|
279 |
|
280 |
demo.launch()
|
|
|
9 |
def exception_handler(exception_type, exception, traceback):
|
10 |
print(f"{exception_type.__name__}: {exception}")
|
11 |
|
12 |
+
|
13 |
sys.excepthook = exception_handler
|
14 |
sys.tracebacklimit = 0
|
15 |
|
16 |
+
|
17 |
def get_chinese_hour(birth_hour):
|
18 |
hour = int(birth_hour[:2])
|
19 |
chinese_hours = ['์', '์ถ', '์ธ', '๋ฌ', '์ง', '์ฌ', '์ค', '๋ฏธ', '์ ', '์ ', '์ ', 'ํด']
|
20 |
return chinese_hours[hour // 2 % 12]
|
21 |
|
22 |
+
|
23 |
def calculate_siju(birth_hour, lunIljin):
|
24 |
chinese_hour = get_chinese_hour(birth_hour) # ์์์ ํด๋นํ๋ ์ง์ง
|
25 |
lunIljin_first = lunIljin[0] # ์ผ์ฃผ์ ์ฒซ ๊ธ์
|
26 |
+
|
27 |
# ์ผ์ฃผ ์ฒซ ๊ธ์์ ๋ฐ๋ฅธ ์์ฃผ ๋งคํ
|
28 |
siju_mapping = {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
+
('๊ฐ', '์'): '๊ฐ์(็ฒๅญ)', ('๊ธฐ', '์'): '๊ฐ์(็ฒๅญ)',
|
31 |
+
('์', '์'): '๋ณ์(ไธๅญ)', ('๊ฒฝ', '์'): '๋ณ์(ไธๅญ)',
|
32 |
+
('๋ณ', '์'): '๋ฌด์(ๆๅญ)', ('์ ', '์'): '๋ฌด์(ๆๅญ)',
|
33 |
+
('์ ', '์'): '๊ฒฝ์(ๅบๅญ)', ('์', '์'): '๊ฒฝ์(ๅบๅญ)',
|
34 |
+
('๋ฌด', '์'): '์์(ๅฃฌๅญ)', ('๊ณ', '์'): '์์(ๅฃฌๅญ)',
|
35 |
+
('๊ฐ', '์ถ'): '์์ถ(ไนไธ)', ('๊ธฐ', '์ถ'): '์์ถ(ไนไธ)',
|
36 |
+
('์', '์ถ'): '์ ์ถ(ไธไธ)', ('๊ฒฝ', '์ถ'): '์ ์ถ(ไธไธ)',
|
37 |
+
('๋ณ', '์ถ'): '๊ธฐ์ถ(ๅทฑไธ)', ('์ ', '์ถ'): '๊ธฐ์ถ(ๅทฑไธ)',
|
38 |
+
('์ ', '์ถ'): '์ ์ถ(่พไธ)', ('์', '์ถ'): '์ ์ถ(่พไธ)',
|
39 |
+
('๋ฌด', '์ถ'): '๊ณ์ถ(็ธไธ)', ('๊ณ', '์ถ'): '๊ณ์ถ(็ธไธ)',
|
40 |
+
('๊ฐ', '์ธ'): '๋ณ์ธ(ไธๅฏ
)', ('๊ธฐ', '์ธ'): '๋ณ์ธ(ไธๅฏ
)',
|
41 |
+
('์', '์ธ'): '๋ฌด์ธ(ๆๅฏ
)', ('๊ฒฝ', '์ธ'): '๋ฌด์ธ(ๆๅฏ
)',
|
42 |
+
('๋ณ', '์ธ'): '๊ฒฝ์ธ(ๅบๅฏ
)', ('์ ', '์ธ'): '๊ฒฝ์ธ(ๅบๅฏ
)',
|
43 |
+
('์ ', '์ธ'): '์์ธ(ๅฃฌๅฏ
)', ('์', '์ธ'): '์์ธ(ๅฃฌๅฏ
)',
|
44 |
+
('๋ฌด', '์ธ'): '๊ฐ์ธ(็ฒๅฏ
)', ('๊ณ', '์ธ'): '๊ฐ์ธ(็ฒๅฏ
)',
|
45 |
+
('๊ฐ', '๋ฌ'): '์ ๋ฌ(ไธๅฏ)', ('๊ธฐ', '๋ฌ'): '์ ๋ฌ(ไธๅฏ)',
|
46 |
+
('์', '๋ฌ'): '๊ธฐ๋ฌ(ๅทฑๅฏ)', ('๊ฒฝ', '๋ฌ'): '๊ธฐ๋ฌ(ๅทฑๅฏ)',
|
47 |
+
('๋ณ', '๋ฌ'): '์ ๋ฌ(่พๅฏ)', ('์ ', '๋ฌ'): '์ ๋ฌ(่พๅฏ)',
|
48 |
+
('์ ', '๋ฌ'): '๊ณ๋ฌ(็ธๅฏ)', ('์', '๋ฌ'): '๊ณ๋ฌ(็ธๅฏ)',
|
49 |
+
('๋ฌด', '๋ฌ'): '์๋ฌ(ไนๅฏ)', ('๊ณ', '๋ฌ'): '์๋ฌ(ไนๅฏ)',
|
50 |
+
('๊ฐ', '์ง'): '๋ฌด์ง(ๆ่พฐ)', ('๊ธฐ', '์ง'): '๋ฌด์ง(ๆ่พฐ)',
|
51 |
+
('์', '์ง'): '๊ฒฝ์ง(ๅบ่พฐ)', ('๊ฒฝ', '์ง'): '๊ฒฝ์ง(ๅบ่พฐ)',
|
52 |
+
('๋ณ', '์ง'): '์์ง(ๅฃฌ่พฐ)', ('์ ', '์ง'): '์์ง(ๅฃฌ่พฐ)',
|
53 |
+
('์ ', '์ง'): '๊ฐ์ง(็ฒ่พฐ)', ('์', '์ง'): '๊ฐ์ง(็ฒ่พฐ)',
|
54 |
+
('๋ฌด', '์ง'): '๋ณ์ง(ไธ่พฐ)', ('๊ณ', '์ง'): '๋ณ์ง(ไธ่พฐ)',
|
55 |
+
('๊ฐ', '์ฌ'): '๊ธฐ์ฌ(ๅทฑๅทณ)', ('๊ธฐ', '์ฌ'): '๊ธฐ์ฌ(ๅทฑๅทณ)',
|
56 |
+
('์', '์ฌ'): '์ ์ฌ(่พๅทณ)', ('๊ฒฝ', '์ฌ'): '์ ์ฌ(่พๅทณ)',
|
57 |
+
('๋ณ', '์ฌ'): '๊ณ์ฌ(็ธๅทณ)', ('์ ', '์ฌ'): '๊ณ์ฌ(็ธๅทณ)',
|
58 |
+
('์ ', '์ฌ'): '์์ฌ(ไนๅทณ)', ('์', '์ฌ'): '์์ฌ(ไนๅทณ)',
|
59 |
+
('๋ฌด', '์ฌ'): '์ ์ฌ(ไธๅทณ)', ('๊ณ', '์ฌ'): '์ ์ฌ(ไธๅทณ)',
|
60 |
+
('๊ฐ', '์ค'): '๊ฒฝ์ค(ๅบๅ)', ('๊ธฐ', '์ค'): '๊ฒฝ์ค(ๅบๅ)',
|
61 |
+
('์', '์ค'): '์์ค(ๅฃฌๅ)', ('๊ฒฝ', '์ค'): '์์ค(ๅฃฌๅ)',
|
62 |
+
('๋ณ', '์ค'): '๊ฐ์ค(็ฒๅ)', ('์ ', '์ค'): '๊ฐ์ค(็ฒๅ)',
|
63 |
+
('์ ', '์ค'): '๋ณ์ค(ไธๅ)', ('์', '์ค'): '๋ณ์ค(ไธๅ)',
|
64 |
+
('๋ฌด', '์ค'): '๋ฌด์ค(ๆๅ)', ('๊ณ', '์ค'): '๋ฌด์ค(ๆๅ)',
|
65 |
+
('๊ฐ', '๋ฏธ'): '์๋ฏธ(ๅฃฌๆช)', ('๊ธฐ', '๋ฏธ'): '์๋ฏธ(ๅฃฌๆช)',
|
66 |
+
('์', '๋ฏธ'): '๊ฐ๋ฏธ(็ฒๆช)', ('๊ฒฝ', '๋ฏธ'): '๊ฐ๋ฏธ(็ฒๆช)',
|
67 |
+
('๋ณ', '๋ฏธ'): '๋ณ๋ฏธ(ไธๆช)', ('์ ', '๋ฏธ'): '๋ณ๋ฏธ(ไธๆช)',
|
68 |
+
('์ ', '๋ฏธ'): '๋ฌด๋ฏธ(ๆๆช)', ('์', '๋ฏธ'): '๋ฌด๋ฏธ(ๆๆช)',
|
69 |
+
('๋ฌด', '๋ฏธ'): '๊ฒฝ๋ฏธ(ๅบๆช)', ('๊ณ', '๋ฏธ'): '๊ฒฝ๋ฏธ(ๅบๆช)',
|
70 |
+
('๊ฐ', '์ '): '์์ (ๅฃฌ็ณ)', ('๊ธฐ', '์ '): '์์ (ๅฃฌ็ณ)',
|
71 |
+
('์', '์ '): '๊ฐ์ (็ฒ็ณ)', ('๊ฒฝ', '์ '): '๊ฐ์ (็ฒ็ณ)',
|
72 |
+
('๋ณ', '์ '): '๋ณ์ (ไธ็ณ)', ('์ ', '์ '): '๋ณ์ (ไธ็ณ)',
|
73 |
+
('์ ', '์ '): '๋ฌด์ (ๆ็ณ)', ('์', '์ '): '๋ฌด์ (ๆ็ณ)',
|
74 |
+
('๋ฌด', '์ '): '๊ฒฝ์ (ๅบ็ณ)', ('๊ณ', '์ '): '๊ฒฝ์ (ๅบ็ณ)',
|
75 |
+
('๊ฐ', '์ '): '๊ณ์ (็ธ้
)', ('๊ธฐ', '์ '): '๊ณ์ (็ธ้
)',
|
76 |
+
('์', '์ '): '์์ (ไน้
)', ('๊ฒฝ', '์ '): '์์ (ไน้
)',
|
77 |
+
('๋ณ', '์ '): '์ ์ (ไธ้
)', ('์ ', '์ '): '์ ์ (ไธ้
)',
|
78 |
+
('์ ', '์ '): '๊ธฐ์ (ๅทฑ้
)', ('์', '์ '): '๊ธฐ์ (ๅทฑ้
)',
|
79 |
+
('๋ฌด', '์ '): '์ ์ (่พ้
)', ('๊ณ', '์ '): '์ ์ (่พ้
)',
|
80 |
+
('๊ฐ', '์ '): '๊ฐ์ (็ฒๆ) ', ('๊ธฐ', '์ '): '๊ฐ์ (็ฒๆ)',
|
81 |
+
('์', '์ '): '๋ณ์ (ไธๆ) ', ('๊ฒฝ', '์ '): '๋ณ์ (ไธๆ)',
|
82 |
+
('๋ณ', '์ '): '๋ฌด์ (ๆๆ) ', ('์ ', '์ '): '๋ฌด์ (ๆๆ)',
|
83 |
+
('์ ', '์ '): '๊ฒฝ์ (ๅบๆ) ', ('์', '์ '): '๊ฒฝ์ (ๅบๆ)',
|
84 |
+
('๋ฌด', '์ '): '์์ (ๅฃฌๆ) ', ('๊ณ', '์ '): '์์ (ๅฃฌๆ)',
|
85 |
+
('๊ฐ', 'ํด'): '์ํด(ไนไบฅ)', ('๊ธฐ', 'ํด'): '์ํด(ไนไบฅ)',
|
86 |
+
('์', 'ํด'): '์ ํด(ไธไบฅ)', ('๊ฒฝ', 'ํด'): '์ ํด(ไธไบฅ)',
|
87 |
+
('๋ณ', 'ํด'): '๊ธฐํด(ๅทฑไบฅ)', ('์ ', 'ํด'): '๊ธฐํด(ๅทฑไบฅ)',
|
88 |
+
('์ ', 'ํด'): '์ ํด(่พไบฅ)', ('์', 'ํด'): '์ ํด(่พไบฅ)',
|
89 |
+
('๋ฌด', 'ํด'): '๊ณํด(็ธไบฅ)', ('๊ณ', 'ํด'): '๊ณํด(็ธไบฅ)',
|
90 |
+
}
|
91 |
|
92 |
# ์์ฃผ ๊ณ์ฐ
|
93 |
siju_key = (lunIljin_first, chinese_hour)
|
|
|
96 |
# ์ผ์ฃผ์ ์ง์ง ์กฐํฉ์ ๋ํ ๋งคํ์ด ์๋ ๊ฒฝ์ฐ์ ์ฒ๋ฆฌ
|
97 |
siju = f"์ผ์ฃผ '{lunIljin_first}'์ ์ง์ง '{chinese_hour}'์ ํด๋นํ๋ ์์ฃผ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค."
|
98 |
|
99 |
+
return siju
|
100 |
+
|
101 |
|
102 |
def get_lunar_info(solYear, solMonth, solDay, solHour):
|
103 |
base_url = "http://apis.data.go.kr/B090041/openapi/service/LrsrCldInfoService/getLunCalInfo"
|
104 |
service_key = "EuBjt%2B2t0KzYt5Ri%2Bzs56oymt9kHJ8uPIOV7m6UMKnOV8cpwj02EiRqMEudX%2F%2FVTKdMnwaLH0igRwY57YUplEQ%3D%3D"
|
105 |
url = f"{base_url}?solYear={solYear}&solMonth={solMonth}&solDay={solDay}&ServiceKey={service_key}"
|
106 |
+
|
|
|
107 |
response = requests.get(url)
|
108 |
if response.status_code == 200:
|
109 |
root = ElementTree.fromstring(response.content)
|
110 |
+
|
111 |
lunIljin = root.find(".//lunIljin").text if root.find(".//lunIljin") is not None else "์ ๋ณด ์์"
|
112 |
lunWolgeon = root.find(".//lunWolgeon").text if root.find(".//lunWolgeon") is not None else "์ ๋ณด ์์"
|
113 |
lunSecha = root.find(".//lunSecha").text if root.find(".//lunSecha") is not None else "์ ๋ณด ์์"
|
114 |
+
|
115 |
siju = calculate_siju(solHour, lunIljin)
|
116 |
+
|
117 |
# ์ฌ์ฃผ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ HTML ํ์์ผ๋ก ์์ฑํฉ๋๋ค.
|
118 |
analysis_html = ์ฌ์ฃผ_๋ถ์(lunSecha, lunWolgeon, lunIljin, siju)
|
119 |
+
|
120 |
# JSON ๊ฒฐ๊ณผ, ์ผ์ฃผ State, ๊ทธ๋ฆฌ๊ณ HTML ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
|
121 |
return {
|
122 |
+
"๋
์ฃผ": lunSecha,
|
123 |
+
"์์ฃผ": lunWolgeon,
|
124 |
+
"์ผ์ฃผ": lunIljin,
|
125 |
+
"์์ฃผ": siju
|
126 |
+
}, lunIljin, analysis_html
|
127 |
else:
|
128 |
return {"Error": "API ํธ์ถ์ ์คํจํ์ต๋๋ค."}, "์ ๋ณด ์์", "<p>API ํธ์ถ์ ์คํจํ์ต๋๋ค.</p>"
|
129 |
|
130 |
+
def get_lunar_info_for_two_people(solYear, solMonth, solDay, solHour, solYear2, solMonth2, solDay2, solHour2):
|
131 |
+
print(solYear, solMonth, solDay, solHour, solYear2, solMonth2, solDay2, solHour2)
|
132 |
+
|
133 |
+
rst1 = get_lunar_info(solYear, solMonth, solDay, solHour)
|
134 |
+
rst2 = get_lunar_info(solYear2, solMonth2, solDay2, solHour2)
|
135 |
+
|
136 |
+
print(rst1[0], rst1[1], rst1[2], rst2[0], rst2[1], rst2[2])
|
137 |
+
|
138 |
+
#๊ถํฉ
|
139 |
+
# ๋ ์ฌ๋์ ๊ถํฉ ๋ถ์
|
140 |
+
compatibility = analyze_character_two(rst1[1], rst2[1])
|
141 |
+
|
142 |
+
return rst1[0], rst1[1], rst1[2], rst2[0], rst2[1], rst2[2], compatibility
|
143 |
+
|
144 |
+
|
145 |
+
|
146 |
+
|
147 |
+
|
148 |
+
|
149 |
+
|
150 |
# B ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ ํจ์ ์ถ๊ฐ
|
151 |
def get_famous_people(lunIljin):
|
152 |
famous_people = {
|
|
|
164 |
"์๋ฌ": "๋ฌธ๊ทผ์, ๊ธฐ์ฐ์ค, ํ์ฌ, ์ผํ๋, ๊ท์ง[์๋ฏน์ค], ํจ์ , ์ฅ๊ธฐ์ฉ, ์ง์ฑ, ์ด๊ทผ, ์กฐ์ฉํ, ๋ฆฌ์, ๋ฃจํ, ํ์นดํ์ ๋ฃจ๋ฏธ์ฝ[์ด๋์ผ์ค]",
|
165 |
"๋ณ์ธ": "์ฅํ์น, ์์๊ตฌ, ๋ฐ์ง์[ํ๋ฏธ๋], ๋ผ๋๋ฎค์ง์, ๊นํ์จ, ์ดํ๊ธฐ, ๋ฒ๋ฒ์งํธ, ํ๋ฆฌ, ์ค์์, ๊ฐํ์ฑ, ๋ฐฑ์ข
์, ์๋ผํค ํ๋กํ์ฝ[์ฃ ์ฃ ์ ๊ธฐ๋ฌํ ๋ชจํ], ๋ ์ค์ ์ด[์ ํ๋ฒ], ํํ๋ฌ",
|
166 |
"๋ณ์": "์ ์ธํ, ํ์น์ฐ[๋ฃจํธ,๋์], ์ฃผ์ฐ์ฌ, ํ๋ฆญ์ค[์คํค์ฆ], ์งํธ, ๋ฐฑ์ง์, ๊น๋ณ๋ง, ์ด๋
ธ์ฐ์ ๋ค์ผํ์ฝ[์ฌ๋จ๋ฉํฌ], ํฉ์์กฐ, ํ์",
|
167 |
+
"๋ฌด์ ": "ํ์ํฌ, ์ด์์ [์ฐ์์ฐ9ํ], ๊ธ๋ ํฌ์ฐ[๋ฐฐ์ฐ], ์ฅ๋์ฐ, ๋ฐ๋ณด์, ์ ์์นด, ์จ์ , ์์ง์, ํ์ฐ์, ๋ฐ์ง๋ฏผ, ๋ฆด๋ณด์ด, ์ผ์ง[์๊ณก๊ฐ], ์ด๋ฏธ๋[๋ฐฐ์ฐ], ์
ฐ์ต์คํผ์ด",
|
168 |
+
"๋ณ์ ": "์์[์คํ
์ด์จ], ๊ณ ์ฐฌ๋น[๋ฐฐ์ฐ], ํค, ์๋จ ์ฝ์, ๊ฐ๋์, ํ๋ธ๋ก, ์ด๋ฏผ์ฐ, ์ค๋จ๊ธฐ[๋์ฑ๊ธ์ฆ2], ํ์ํฌ, ํ๊ฒฝ์, ๊น๊ฑดํฌ, ๋จํํ, ํ ๋ฆฌ์ผ๋ง ์ํค๋ผ[๋๋๊ณค๋ณผ], ์์ธ์ํ์ธ, ๊ณ ํ",
|
169 |
}
|
170 |
+
print(lunIljin)
|
171 |
+
return famous_people.get(lunIljin[:2], "ํด๋น ์ผ์ฃผ์ ๋ํ ์ ๋ช
์ธ ์ ๋ณด๊ฐ ์์ต๋๋ค.")
|
172 |
|
173 |
+
|
174 |
+
def analyze_character(lunIljin, OPENAI_API_KEY="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"):
|
175 |
API_URL = "https://api.openai.com/v1/chat/completions"
|
176 |
payload = {
|
177 |
"model": "gpt-4-0125-preview", # ๋ชจ๋ธ ์ด๋ฆ ํ์ธ ํ์
|
|
|
196 |
# ์ค๋ฅ ๋ฉ์์ง ๊ฐ์
|
197 |
return f"์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ํ ์ฝ๋: {response.status_code}, ๋ฉ์์ง: {response.json().get('error', {}).get('message', 'Unknown error')}", ""
|
198 |
|
199 |
+
def analyze_character_two(lunIljin, lunIljin2, OPENAI_API_KEY="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"):
|
200 |
+
API_URL = "https://api.openai.com/v1/chat/completions"
|
201 |
+
payload = {
|
202 |
+
"model": "gpt-4-0125-preview", # ๋ชจ๋ธ ์ด๋ฆ ํ์ธ ํ์
|
203 |
+
"messages": [{
|
204 |
+
"role": "system",
|
205 |
+
"content": "๋น์ ์ ๋์ฌ๋์ ๊ถํฉ์ ๋ํด ์ค๋ช
ํ๋ ์ฑ๋ด์
๋๋ค."
|
206 |
+
}, {
|
207 |
+
"role": "user",
|
208 |
+
"content": f"๋ค์์ ๋์ฌ๋์ ์ฌ์ฃผ๋ฅผ ๋ณด๊ณ ๊ถํฉ์ด ์ข์์ง ์์ข์์ง ์ฑํฅ์ด ๋ง๋์ง ์๋์ง ์ฌ๋ถ๋ฅผ ์๋ ค์ฃผ๊ณ ์ด๊ฒ์ 100% ๋๋น ๋น์จ๋ ์ถ๊ฐํด์ ํํํด์ฃผ์ธ์ '{lunIljin}', '{lunIljin2}'"
|
209 |
+
|
210 |
+
}],
|
211 |
+
}
|
212 |
+
headers = {
|
213 |
+
"Content-Type": "application/json",
|
214 |
+
"Authorization": f"Bearer {OPENAI_API_KEY}"
|
215 |
+
}
|
216 |
+
response = requests.post(API_URL, headers=headers, json=payload)
|
217 |
+
if response.status_code == 200:
|
218 |
+
data = response.json()
|
219 |
+
# ๋ํํ API ์๋ต์์ ์ ์ ํ ๋ฉ์์ง ์ถ์ถ ๋ฐ ์ ๋ช
์ธ ์ด๋ฆ ๋ฐํ
|
220 |
+
return data["choices"][0]["message"]["content"]
|
221 |
+
else:
|
222 |
+
# ์ค๋ฅ ๋ฉ์์ง ๊ฐ์
|
223 |
+
return f"์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ํ ์ฝ๋: {response.status_code}, ๋ฉ์์ง: {response.json().get('error', {}).get('message', 'Unknown error')}", ""
|
224 |
+
|
225 |
|
226 |
# ์ฌ์ฃผ ๋ถ์ ๋ฐ์ดํฐ ์์ (๊ฐ์ํ๋ ๋ฒ์ )
|
227 |
์ฌ์ฃผ_๋ฐ์ดํฐ = {
|
228 |
+
'๊ฐ์(็ฒๅญ)': '์๋ก์ด ์์์ ์์ง, ๋ฆฌ๋์ญ๊ณผ ๋
๋ฆฝ์ฑ์ด ํน์ง์ด๋ฉฐ, ํธ์พํ๊ณ ์ฑ์คํ ํน์ฑ์ ์ง๋๋ค. ',
|
229 |
+
'์์ถ(ไนไธ)': '์ธ๋ด์ฌ์ด ๋งค์ฐ ๊ฐํ๋ฉฐ, ๋ฌผ๏ฟฝ๏ฟฝ๏ฟฝ์ ์ฑ์ทจ๋ฅผ ์ค์์ํ๊ณ ์์ํ ๋ฉด๋ชจ๋ฅผ ๊ฐ์ถ ์ฌ๋์ด๋ค. ',
|
230 |
+
'๋ณ์ธ(ไธๅฏ
)': '์ด์ ์ ์ด๊ณ ๋ชจํ์ ์ฆ๊ธฐ๋ฉฐ, ์ฐฝ์๋ ฅ์ด ๋ฐ์ด๋๊ณ ํ์ ์ ์ธ ์์ด๋์ด๋ฅผ ๊ฐ์ง๋ค. ',
|
231 |
+
'์ ๋ฌ(ไธๅฏ)': '์์ ์ ๊ฐ๊ฐ์ด ๋ฐ์ด๋๊ณ ์ฌ์ธํ ์ฑ๊ฒฉ์ผ๋ก, ๊ด๊ณ์์์ ์ถฉ์คํจ๊ณผ ์ ์ ์ด ๊น๋ค. ',
|
232 |
+
'๋ฌด์ง(ๆ่พฐ)': '์ค์ฉ์ ์ด๋ฉฐ ์์ ์ ์ธ ๊ธฐ๋ฐ์ ์ค์ํ๊ณ , ๊พธ์คํ ๋
ธ๋ ฅ์ ํตํด ์ฑ์ฅํ๋ ํ์
์ด๋ค. ',
|
233 |
+
'๊ธฐ์ฌ(ๅทฑๅทณ)': '์ ์ฐ์ฑ๊ณผ ์ ์๋ ฅ์ด ๋ฐ์ด๋๋ฉฐ, ๋ค์ํ ์ํฉ์์๋ ์ ๋์ฒํ๋ ๋ฅ๋ ฅ์ ๊ฐ์ง๋ค. ',
|
234 |
+
'๊ฒฝ์ค(ๅบๅ)': '์ ์์ ๋ช
์๋ฅผ ์ค์ํ๋ฉฐ, ์ฑ์คํ๊ณ ์ง์ทจ์ ์ธ ํ๋๋ก ์ฃผ๋ณ์ ์กด๊ฒฝ์ ๋ฐ๋๋ค. ',
|
235 |
+
'์ ๋ฏธ(่พๆช)': '์ธ์ฌํ๊ณ ๊ผผ๊ผผํ ์ฑ๊ฒฉ์ผ๋ก ์๋ฒฝ์ ์ถ๊ตฌํ๋ฉฐ, ์ฃผ๋ณ ์ฌ๋๋ค๋ก๋ถํฐ ์ ๋ขฐ๋ฅผ ์ป๋๋ค. ',
|
236 |
+
'์์ (ๅฃฌ็ณ)': '์งํ์ ๊ท ํ์ด ์ ์กฐํ๋ ์ฑ๊ฒฉ์ผ๋ก, ๊น์ ํต์ฐฐ๋ ฅ๊ณผ ํจ๊ป ์ธ์์ ์ดํดํ๋ ๋ฅ๋ ฅ์ด ์๋ค. ',
|
237 |
+
'๊ณ์ (็ธ้
)': '์ธ๊ต์ ์ด๊ณ ์กฐํ๋ฅผ ์ค์ํ๋ ์ฑํฅ์ผ๋ก, ํ์ธ๊ณผ์ ๊ด๊ณ์์ ์ ์ฐํ๊ณ ๋ค์ ๋ค๊ฐํ๋ค. ',
|
238 |
+
'๊ฐ์ (็ฒๆ)': '๋ฏธ์๋ฅผ ๋ ๋ฉฐ ์ฃผ๋ณ ์ฌ๋๋ค์๊ฒ ์ํ๊ณ , ํ๊ณ ๋ ์์
๋ฅ๋ ฅ์ผ๋ก ์ฑ๊ณต์ ์ด๋๋ค. ',
|
239 |
+
'์ํด(ไนไบฅ)': '์์์์ํ ์ธ์๊ณผ ๋ชจ๋ฒ์ ๊ฐ์ ์คํ์ผ๋ก, ๋ฅ๋ ฅ๊ณผ ์์ฌ์ ๊ฒธ๋นํ ์ฌ๋์ด๋ค. ',
|
240 |
+
'๋ณ์(ไธๅญ)': 'ํธ๋ฐฉํ๊ณ ๊น๋ค๋กญ์ง๋ง, ์ผ์ ํ์คํ ์ฒ๋ฆฌํ๊ณ ์๊ทผํ ๋งค๋ ฅ์ ๊ฐ์ง๊ณ ์๋ค. ',
|
241 |
+
'์ ์ถ(ไธไธ)': '์์ ์ ๊ฐ๊ฐ์ด ๋ฐ์ด๋๋ฉฐ ๋ฐ๋ปํ๊ณ ๋ฒ ํ ์ค ์๋ ์ธ๊ฐ๋ฏธ ๋์น๋ ์ฌ๋์ด๋ค. ',
|
242 |
+
'๋ฌด์ธ(ๆๅฏ
)': '๋ชจํ์ ์ฆ๊ธฐ๊ณ ์์ ๊ฐ์ด ๋์น๋ฉฐ, ์ธ์์ ๋ฐ์๋ ๋๊ณ ์ถ์ดํ๋ ์ผ์ฌ ์ฐฌ ์ฌ๋์ด๋ค. ',
|
243 |
+
'๊ธฐ๋ฌ(ๅทฑๅฏ)': '์ธ์ฌํ๊ณ ์์ ์ ์ธ ๊ธฐ์ง์ด ์์ผ๋ฉฐ, ๊น์ ์๊ฐ๊ณผ ํจ๊ป ์ฌ๋๋ค๊ณผ ์กฐํ๋กญ๊ฒ ์ง๋ธ๋ค. ',
|
244 |
+
'๊ฒฝ์ง(ๅบ่พฐ)': '์์ ์ ์ด๊ณ ํดํ์ ์ธ ์ฑ๊ฒฉ์ ๊ฐ์ง๋ฉฐ, ์ฃผ๋ณ ์ฌ๋๋ค๊ณผ์ ์กฐํ๋ฅผ ์ค์ํ๋ค. ',
|
245 |
+
'์ ์ฌ(่พๅทณ)': '๋ฉ๊ณผ ๋งค๋ ฅ์ ์ถ์ ์ค์ฌ์ ๋๋ฉฐ, ๊ฐํ ์ฌํ์ ๋ฅ๋ ฅ์ ์ง๋ ์ฌ๋์ด๋ค. ',
|
246 |
+
'์์ค(ๅฃฌๅ)': '์ง์ ๋ฅ๋ ฅ์ด ๋ฐ์ด๋๊ณ ์ฌ์คํ ์๊ฐ์ ํ๋, ๊น์ด ์๋ ์ธ๋ฌผ์ด๋ค. ',
|
247 |
+
'๊ณ๋ฏธ(็ธๆช)': '์์ ๊ณผ ํ์ธ์๊ฒ ์น์ ํ๊ณ ๊ท์ฌ์ด ๋ฉด๋ชจ๋ฅผ ์ง๋ ์ฌ๋์ผ๋ก, ์ฌํ์ ์ํธ์์ฉ์์ ๋ฐ์คํจ๊ณผ ๋ฐฐ๋ ค๋ฅผ ๋ณด์ฌ์ค๋ค. ์์ ์ ์ฌ๋๋ค์๊ฒ ์ ๋ง์ถฐ์ฃผ๋ฉฐ, ํํฉ์ ์ค์์ํ๋ค. ',
|
248 |
+
'๊ฐ์ (็ฒ็ณ)': '๋ด๋ฉด์ด ๋ณํ๋ฌด์ํ๋ ๊ฒ์ผ๋ก๋ ๋๋ฌ๋ด์ง ์๊ณ , ๊ฐ์ธํ ๋ฉด๋ชจ๋ก ์ด๋ ค์์ ๊ทน๋ณตํ๋ค.',
|
249 |
+
'์์ (ไน้
)': 'ํ์ธ์ ๋น๋ฐ์ ์ ์ง์ผ์ฃผ๋ ์ ๋ขฐํ ์ ์๋ ์ฌ๋์ผ๋ก, ์ง์ค๋ ฅ๊ณผ ์ํ๋ ฅ์ด ๊ฐํ๋ค. ',
|
250 |
+
'๋ณ์ (ไธๆ)': '๊ด๋ํ๋ฉด์๋ ์ธ์ธํ ๋ถ๋ถ์ ๊น๋ค๋ก์ธ ์ ์์ผ๋ฉฐ, ์ํ๋ ฅ์ด ๊ฐํ๊ณ ํ๋ช
ํ๋ค. ',
|
251 |
+
'์ ํด(ไธไบฅ)': 'ํฌ์ฉ๋ ฅ์ด ๋ฐ์ด๋๊ณ ์ถ์ ๋ํ ์ ์ฐฉ์ด ๊ฐํ๋ฉฐ, ์ง์ฌ์ผ๋ก ์ฃผ๋ณ์ ์ฑ๊ธด๋ค. ',
|
252 |
+
'๋ฌด์(ๆๅญ)': '์ ๋น๋ก์ด ๋ถ์๊ธฐ์ ์ฌ๋ฌผ์ ์ค์ํ๋ ์ฑํฅ์ด ์์ผ๋ฉฐ, ์๋ด๋ฅผ ์ ๋๋ฌ๋ด์ง ์๋๋ค. ',
|
253 |
+
'๊ธฐ์ถ(ๅทฑไธ)': '๊ฐ์ธํ ๋ด๋ฉด์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์์ ๋ง์ ๊ธธ์ ๊ฑธ์ด๊ฐ๋ ํ๊ณ ํ ์ ๋
์ ์ง๋๋ค. ',
|
254 |
+
'๊ฒฝ์ธ(ๅบๅฏ
)': 'ํฐ ํฌ๋ถ์ ๊ตญ์ ์ ์ธ ํ๋์ ์ถ๊ตฌํ๋ฉฐ, ์ฌ์
์์ ํฐ ์ฑ๊ณต์ ๊ฟ๊พธ๋ ์ฌ๋์ด๋ค. ',
|
255 |
+
'์ ๋ฌ(่พๅฏ)': '๊น๊นํ๊ณ ๋ ์นด๋ก์ธ ์ ์์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์์ด ์ฐฉํ ์ฌ๋์ด๋ค. ',
|
256 |
+
'์์ง(ๅฃฌ่พฐ)': '์ธ๋ด์ฌ์ด ๊ฐํ๊ณ , ํ ๋ฒ ๋ง์๋จน์ ์ผ์ ๋๊น์ง ๋ฐ๊ณ ๋๊ฐ๋ ๊ฐ์ธํ ์์ง์ ์ฌ๋์ด๋ค. ',
|
257 |
+
'๊ณ์ฌ(็ธๅทณ)': '์ ์ ํ ํ์ด๋ฐ๊ณผ ์ํฉ ํ๋จ๋ ฅ์ผ๋ก ๋์ ๋๋ ์ฑ์ทจ๋ฅผ ์ด๋ฃจ๋ ์ฌ๋์ด๋ค. ๋๋ํ๊ณ ์ํฉ์ ๋ง๋ ์ต์ ์ ๊ฒฐ์ ์ ๋ด๋ฆด ์ค ์๋ฉฐ, ์ถ์์์ ์ฌ๋ฌ ๊ธฐํ๋ฅผ ์ ์ด๋ฆฐ๋ค. ',
|
258 |
+
'๊ฐ์ค(็ฒๅ)': '์กฐ๊ธ ์กฐ๊ธํ๊ณ ์ค์ํ ์ ์์ง๋ง, ๋ญ๋ง์ ์ด๊ณ ์พํํ์ฌ ์ฃผ๋ณ์ ๋ฐ๊ฒ ๋ง๋ ๋ค.',
|
259 |
+
'์๋ฏธ(ไนๆช)': '์ ์ ์ด ๋ง๊ณ ๋๊ธฐ๊ฐ ์์ผ๋ฉฐ, ๋ช
ํํ ์ฃผ๊ด๊ณผ ํจ๊ป ์ฌ๋ฌผ์ ์ด์น๋ฅผ ์ ํ์
ํ๋ค. ',
|
260 |
+
'๋ณ์ (ไธ็ณ)': '์ธ๋ จ๋๊ณ ๋ง๊ณผ ๋ฉ์ ์ถ๊ตฌํ๋ฉฐ, ์ฌ๊ต์ ์ด๋ฉด์๋ ๋ด๋ฉด์ ๊ฐ๋ฑ์ ๊ฐ์ง ์ฌ๋์ด๋ค. ',
|
261 |
+
'์ ์ (ไธ้
)': '๊ฐ๊ฐ์ ์ด๊ณ ์ฌ์น ์๋ ์ฑ๊ฒฉ์ผ๋ก, ์ฃผ๋ณ ์ฌ๋๋ค์๊ฒ ์ฆ๊ฑฐ์์ ์ฃผ๋ ์ฌ๋์ด๋ค. ',
|
262 |
+
'๋ฌด์ (ๆๆ)': '์ค์์ ์ค์ํ๊ณ ์๋ฐํ ์ถ์ ์ถ๊ตฌํ๋ฉฐ, ๋ด๋ฐฑํ ๋งค๋ ฅ์ ๊ฐ์ง ์ค๋ฆฌ์ฃผ์์์ด๋ค. ',
|
263 |
+
'๊ธฐํด(ๅทฑไบฅ)': '์จํํ๊ณ ๋ช
๋ํ๋ฉฐ, ์์ง๊ฐ ๊ตณ๊ฑดํ๋ ๋๋ก๋ ๋ง์ค์ด๋ ๊ฒฝํฅ์ด ์๋ค. ',
|
264 |
+
'๊ฒฝ์(ๅบๅญ)': '์ฐจ๋ถํ๊ณ ๊ฒฐ๋จ๋ ฅ์ด ์๋ ๋ฐ๋ฉด, ์ผ์ ์ฅ๋จ์ ์ ์ ์คํ๊ฒ ํ๋จํ๋ ์ฌ๋์ด๋ค. ',
|
265 |
+
'์ ์ถ(่พไธ)': '๊ฒธ์๏ฟฝ๏ฟฝ๏ฟฝ๊ณผ ํจ๊ป ํ์ธ์ ์ ํ๋จํ๋ ๋ฅ๋ ฅ์ ๊ฐ์ง, ์ธ๊ฐ ๊ด๊ณ์์์ ์กฐ์จ์์ด๋ค. ',
|
266 |
+
'์์ธ(ๅฃฌๅฏ
)': '์์ ๊ฐ์ ์ถ๊ตฌํ๋ฉฐ, ์ฆ๊ฑฐ์๊ณผ ์ฌ๋ฏธ๋ฅผ ์ค์์ํ๋ ํธ์ํ ์ฑ๊ฒฉ์ ์์ ์์ด๋ค. ',
|
267 |
+
'๊ณ๋ฌ(็ธๅฏ)': '์น์ ํ๊ณ ์ฌ๋๋ค์๊ฒ ์ ๋ง์ถฐ์ฃผ๋ ์ฑ๊ฒฉ์ผ๋ก, ๋๋จํ ์ฐฉํ๊ณ ์๋๋ฐฉ์ ํธ์ํ๊ฒ ๋ง๋๋ ๋ฅ๋ ฅ์ด ์๋ค. ๊ทธ์ ์กด์ฌ๋ง์ผ๋ก๋ ์ฃผ๋ณ์ ๊ธ์ ์ ์ธ ๋ถ์๊ธฐ๋ฅผ ๋ง๋ค์ด๋ธ๋ค. ',
|
268 |
+
'๊ฐ์ง(็ฒ่พฐ)': 'ํธ์พํ ์ฑ๊ฒฉ ์ฑ์คํ๋ฉด์ ์ ๊ต๋ ์๋ ๋ฌด๋๋ํ ์๋จ์ ์์ฌ์ ',
|
269 |
+
'์์ฌ(ไนๅทณ)': '์ฌ๋์ ๋์ด๋น๊ธฐ๋ ๋งค๋ ฅ์ด ๋์น๊ณ , ์ด๋์๋ ๋ฐ์ ์๋์ง๋ฅผ ๋ฐ์ฐํ๋ค. ๋ค์ฌ๋ค๋ฅํ๊ณ ์ ์ฐํ ์ฌ๊ณ ๋ฅผ ๊ฐ์ง๋ฉฐ, ์๋ก์ด ๋ง๋จ๊ณผ ๊ฒฝํ์์ ์ฆ๊ฑฐ์์ ์ฐพ๋๋ค. ',
|
270 |
+
'๋ณ์ค(ไธๅ)': '์ด์ ์ ์ด๊ณ ์ ๋์ ์ธ ์ฑ๊ฒฉ์ผ๋ก ์ฃผ๋ณ์ ์ด๋๋ ๋ฆฌ๋์ญ๊ณผ ์์ ์๋ฒํ๋ ํ๋๋ฅผ ์ง๋๋ค. ',
|
271 |
+
'์ ๋ฏธ(ไธๆช)': '๋ถ๋๋ฝ๊ณ ์์ํ๋ฉฐ ์ด์ ์ ์ธ ์ฑ๊ฒฉ์ผ๋ก, ๋ค์ํ ์ฌ๋๋ค๊ณผ ์ ์ด์ธ๋ฆฐ๋ค. ',
|
272 |
+
'๋ฌด์ (ๆ็ณ)': '๋ฐ๋ปํ์ฌ๋์ ๋์ด๋น๊ธฐ๋ ๋งค๋ ฅ์ด ๋์น๊ณ , ์ด๋์๋ ๋ฐ์ ์๋์ง๋ฅผ ๋ฐ์ฐํ๋ค. ๋ค์ฌ๋ค๋ฅํ๊ณ ์ ์ฐํ ์ฌ๊ณ ๋ฅผ ๊ฐ์ง๋ฉฐ, ์๋ก์ด ๋ง๋จ๊ณผ ๊ฒฝํ์์ ์ฆ๊ฑฐ์์ ์ฐพ๋๋ค. ๋ง์๊ณผ ์ฌ์ธํ ๊ฐ์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋์ ํฌ์ฉ๋ ฅ์ผ๋ก ์ฃผ๋ณ์ ๊ฐ์ผ๋ค. ',
|
273 |
+
'๊ธฐ์ (ๅทฑ้
)': '๋๋ดํ๊ณ ์ถ์ ๋ํ ์ด์ ์ด ๋์น์ง๋ง, ๋๋ก๋ ์ฐ์ ๋ถ๋จํ ๋ชจ์ต์ ๋ณด์ผ ์ ์๋ค. ',
|
274 |
+
'๊ฒฝ์ (ๅบๆ)': '๋์ ํ๊ณ ์ ์ฌ์ ์ธ ํ๋๋ก ํ์ธ์ ๋๋ ๊ฒ์ ์ฆ๊ธฐ๋ฉฐ, ๋๋ก๋ ๊นํ์ค๋ฌ์ธ ์ ์๋ค. ',
|
275 |
+
'์ ํด(่พไบฅ)': '์์กด์ฌ์ด ๊ฐํ๊ณ ๋ช
ํํ ์ทจํฅ์ ๊ฐ์ง๋ฉฐ, ๋ญ๋ง์ ์ธ ๊ฐ์ฑ์ ์์ ํ ์ฌ๋์ด๋ค. ',
|
276 |
+
'์์(ๅฃฌๅญ)': '์กฐ์ฉํ์ง๋ง, ๋งค๋ ฅ์ ์ด๊ณ ์ํฉ์ ๋ฐ๋ผ ๊ฐํ ๋ฉด๋ชจ๋ฅผ ๋๋ฌ๋ด๋ ์ ๋นํ ์ธ๋ฌผ์ด๋ค. ',
|
277 |
+
'๊ณ์ถ(็ธไธ)': '๊ฒ๋ณด๊ธฐ์ ์ฐจ๋ถํ์ง๋ง ๋ด๋ฉด์๋ ๊ฐํ ์์ง์ ์ ๋
์ ์ง๋ ์ฌ๋์ผ๋ก, ์ ๋ง ์ฌ๋์ด ์ข๋ค๋ ๋๋์ ์ฃผ๋ ๋ฐ๋ปํจ๊ณผ ๊ท ํ ์กํ ์ฑ๊ฒฉ์ ๊ฐ๊ณ ์๋ค. ์ฃผ๋ณ ์ฌ๋๋ค์๊ฒ ๋ฏฟ์์ง์ค๋ฌ์ด ์กด์ฌ๋ค. ',
|
278 |
+
'๊ฐ์ธ(็ฒๅฏ
)': '๋ฆฌ๋์ญ์ด ์๊ณ ์ฑ์ ์ด ๋ฐ๋ฅด๊ณ ํธ๋ฐฉํ๋ค. ์กฐ์ง์ ์์์ ์ธ ์ฌ๋์ด๋ค.',
|
279 |
+
'์๋ฌ(ไนๅฏ)': '๋ด๋ฉด์ ๊ฐ์ธํจ์๋ ๋ถ๊ตฌํ๊ณ ๋ถ๋๋ฌ์ด ์ฌ๊ต์ฑ์ผ๋ก ์ฃผ๋ณ ์ฌ๋๋ค๊ณผ ์ฝ๊ฒ ์ด์ธ๋ฆฐ๋ค. ์ง์ ์ ์ธ ์ํต ๋ฐฉ์ ๋ค์๋ ์ค๋ฉฐ๋๋ ์ํฅ๋ ฅ์ด ์์ด, ๋ง์ ์ด๋ค์๊ฒ ๊ธ์ ์ ์ธ ์๋์ง๋ฅผ ์ ๋ฌํ๋ค. ',
|
280 |
+
'๋ณ์ง(ไธ่พฐ)': '๊น๋ํ๊ณ ๋จ์ ํ ์ธ๋ชจ์ ๋๋์ ์ด๋ฉฐ, ์ํฉ์ ๊ต๋ฌํ๊ฒ ์กฐ์ ํ๋ ๋ฅ๋ ฅ์ ๊ฐ์ง๋ค. ',
|
281 |
+
'์ ์ฌ(ไธๅทณ)': '๊ฒฝ์์ ์ฆ๊ธฐ๊ณ ๋ค๋ฅธ ์ฌ๋์ ์๋ํ๋ ค๋ ๊ฐํ ์์ง์ ์ฌ๊ต์ ์ธ ๋ฅ๋ ฅ์ ๊ฐ์ก๋ค. ',
|
282 |
+
'๋ฌด์ค(ๆๅ)': '๊ฒฐ์ฝ ๊ตดํ์ง ์๋ ์ ์ ๋ ฅ๊ณผ ์ฌ์
์์์ ์ฑ๊ณต์ ๊ฟ๊พธ๋, ์ผ๋ง ์๋ ์ฌ๋์ด๋ค. ',
|
283 |
+
'๊ธฐ๋ฏธ(ๅทฑๆช)': '๋ด์ฌ์ ์ ์ด ํฌ์ฒ ํ๊ณ ๊ณต๋์ฒด ์์์ด ๊ฐํ๋ฉฐ, ๊ณต์ต์ ์ํด ์ ๊ทน์ ์ผ๋ก ๊ธฐ์ฌํ๋ค. ',
|
284 |
+
'๊ฒฝ์ (ๅบ็ณ)': 'ํ๋์ ์ด๊ณ ๋ฐ์ผ๋ก์ ํ๋์ ์ฆ๊ธฐ๋ฉฐ, ์๋ก์ด ๊ฒ์ ๋์ ํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ์๋๋ค. ',
|
285 |
+
'์ ์ (่พ้
)': '๊ณ ์ํ๊ณ ํ์ธ์ ์ํ๋ ๋ง์์ด ๊ฐํ์ง๋ง, ๊ฐ์ ์ด ๊ฒฉํด์ง ๋๋ ์๋นํ ๋ฌด์์ธ ์ ์๋ค. ',
|
286 |
+
'์์ (ๅฃฌๆ)': '๊ณ ์ง์ด ์์ง๋ง ๊ฐ์กฑ๊ณผ ํ์ธ์ ์ํด ํ์ ์ ์ผ๋ก ๋
ธ๋ ฅํ๋ ๊ฐํ ๋ฉด๋ชจ๋ฅผ ์ง๋๋ค. ',
|
287 |
+
'๊ณํด(็ธไบฅ)': '๊ทธ์ ๋น ์ ธ๋ค๊ฒ ๋ง๋๋ ๊น์ ๋ด๋ฉด์ ๋งค๋ ฅ์ ๊ฐ์ง ์ฌ๋์ผ๋ก, ์์ธ์ ๊น์ ์๊ฐ๊ณผ ๊ฐ์ฑ์ ์ง๋๊ณ ์๋ค. ์์ ๋ง์ ์ธ๊ณ๊ฐ ํ๋ถํด ํ์ธ๊ณผ์ ๊ต๋ฅ์์๋ ๋
ํนํ ๊ด์ ์ ์ ๊ณตํ๋ค. ',
|
288 |
+
}
|
289 |
+
|
290 |
|
291 |
def ์ฌ์ฃผ_๋ถ์(๋
์ฃผ, ์์ฃผ, ์ผ์ฃผ, ์์ฃผ):
|
292 |
# ๊ฐ ์ฃผ์ ๋ํ ์ค๋ช
์ HTML ํ์์ผ๋ก ๋ฐํ
|
|
|
303 |
|
304 |
|
305 |
with gr.Blocks() as demo:
|
306 |
+
solYear =""
|
307 |
+
solMonth = ""
|
308 |
+
solDay = ""
|
309 |
+
solHour = ""
|
310 |
+
|
311 |
with gr.Tab("AI ์ฌ์ฃผ ์ด์ธ ๋ถ์"):
|
312 |
solYear = gr.Textbox(label="์๋
(์: 1990)")
|
313 |
solMonth = gr.Textbox(label="์์(์: 01)")
|
|
|
319 |
get_lunar_info_btn = gr.Button("๋ถ์ํ๊ธฐ")
|
320 |
|
321 |
get_lunar_info_btn.click(
|
322 |
+
fn=get_lunar_info,
|
323 |
+
inputs=[solYear, solMonth, solDay, solHour],
|
324 |
outputs=[output1, lunIljin_state, analysis_result]
|
325 |
)
|
326 |
+
|
327 |
with gr.Tab("๋์ ์ฑ๊ฒฉ๊ณผ ํน์ง ๋ถ์"):
|
328 |
OPENAI_API_KEY_input = gr.Textbox(label="OpenAI API ํค", placeholder="์ฌ๊ธฐ์ OpenAI API ํค๋ฅผ ์
๋ ฅํ์ธ์")
|
329 |
+
|
330 |
character_output = gr.Textbox(label="์ฑ๊ฒฉ๊ณผ ํน์ง")
|
331 |
+
|
332 |
celebrity_output = gr.Textbox(label="๏ฟฝ๏ฟฝ๏ฟฝ๋ช
์ธ ์ด๋ฆ")
|
333 |
+
|
334 |
analyze_button = gr.Button("๋ถ์ํ๊ธฐ")
|
335 |
+
analyze_button.click(fn=analyze_character, inputs=[lunIljin_state, OPENAI_API_KEY_input],
|
336 |
+
outputs=[character_output, celebrity_output])
|
337 |
+
|
338 |
+
|
339 |
+
with gr.Tab("๊ถํฉ"):
|
340 |
+
solYear = gr.Textbox(label="์๋
(์: 1990)")
|
341 |
+
solMonth = gr.Textbox(label="์์(์: 01)")
|
342 |
+
solDay = gr.Textbox(label="์์ผ(์: 31)")
|
343 |
+
solHour = gr.Textbox(label="์์(์์: 1030)", placeholder="์๊ฐ์ 24์๊ฐ ํ์์ผ๋ก ์
๋ ฅํ์ธ์ (์: 2230)")
|
344 |
+
output1 = gr.JSON(label="๊ฒฐ๊ณผ")
|
345 |
+
solYear2 = gr.Textbox(label="์๋
(์: 1990)")
|
346 |
+
solMonth2 = gr.Textbox(label="์์(์: 01)")
|
347 |
+
solDay2 = gr.Textbox(label="์์ผ(์: 31)")
|
348 |
+
solHour2 = gr.Textbox(label="์์(์์: 1030)", placeholder="์๊ฐ์ 24์๊ฐ ํ์์ผ๋ก ์
๋ ฅํ์ธ์ (์: 2230)")
|
349 |
+
output2 = gr.JSON(label="๊ฒฐ๊ณผ")
|
350 |
+
analysis_result = gr.HTML() # ์ฌ์ฃผ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ HTML ์ปดํฌ๋ํธ
|
351 |
+
lunIljin_state = gr.State() # ์ผ์ฃผ๋ฅผ ์ ์ฅํ State
|
352 |
+
get_lunar_info_btn = gr.Button("๋ถ์ํ๊ธฐ")
|
353 |
|
354 |
+
get_lunar_info_btn.click(
|
355 |
+
fn=get_lunar_info_for_two_people,
|
356 |
+
inputs=[solYear, solMonth, solDay, solHour, solYear2, solMonth2, solDay2, solHour2],
|
357 |
+
outputs=[output1, lunIljin_state, analysis_result, output2, lunIljin_state, analysis_result, analysis_result]
|
358 |
+
)
|
359 |
|
360 |
demo.launch()
|