aliceblue11 commited on
Commit
b07f274
·
verified ·
1 Parent(s): 6d3a484

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -10
app.py CHANGED
@@ -127,8 +127,15 @@ class SajuCalculator:
127
  def calculate_saju(birth_date, birth_time, gender, birth_place):
128
  """사주 계산 메인 함수"""
129
  try:
 
 
 
 
130
  # 날짜 파싱
131
- birth_datetime = datetime.strptime(f"{birth_date} {birth_time}", "%Y-%m-%d %H:%M")
 
 
 
132
 
133
  calculator = SajuCalculator()
134
 
@@ -155,7 +162,7 @@ def calculate_saju(birth_date, birth_time, gender, birth_place):
155
  return result
156
 
157
  except Exception as e:
158
- return f"❌ 계산 중 오류가 발생했습니다: {str(e)}"
159
 
160
  def format_saju_result(ganzhi, elements, ten_gods, daeun, birth_datetime, gender, birth_place):
161
  """사주 결과 포맷팅"""
@@ -284,7 +291,7 @@ def get_element_balance_advice(elements):
284
 
285
  # Gradio 인터페이스 생성
286
  def create_interface():
287
- with gr.Blocks(title="🔮 사주명리 만세력 시스템", theme=gr.themes.Soft()) as demo:
288
  gr.HTML("""
289
  <div style="text-align: center; padding: 20px;">
290
  <h1>🔮 사주명리학 만세력 분석 시스템</h1>
@@ -296,15 +303,16 @@ def create_interface():
296
  with gr.Column(scale=1):
297
  gr.HTML("<h3>📝 정보 입력</h3>")
298
 
299
- birth_date = gr.Date(
300
  label="생년월일",
301
- info="양력 기준으로 입력해주세요"
 
302
  )
303
 
304
  birth_time = gr.Textbox(
305
  label="태어난 시간",
306
  placeholder="14:30",
307
- info="24시간 형식 (예: 14:30)"
308
  )
309
 
310
  gender = gr.Radio(
@@ -321,15 +329,13 @@ def create_interface():
321
 
322
  calculate_btn = gr.Button(
323
  "🔮 만세력 분석하기",
324
- variant="primary",
325
- size="lg"
326
  )
327
 
328
  with gr.Row():
329
  with gr.Column():
330
  result_output = gr.Markdown(
331
- label="분석 결과",
332
- elem_classes=["saju-result"]
333
  )
334
 
335
  # 이벤트 연결
 
127
  def calculate_saju(birth_date, birth_time, gender, birth_place):
128
  """사주 계산 메인 함수"""
129
  try:
130
+ # 입력 검증
131
+ if not birth_date or not birth_time:
132
+ return "❌ 생년월일과 태어난 시간을 모두 입력해주세요."
133
+
134
  # 날짜 파싱
135
+ try:
136
+ birth_datetime = datetime.strptime(f"{birth_date} {birth_time}", "%Y-%m-%d %H:%M")
137
+ except ValueError:
138
+ return "❌ 날짜 형식이 올바르지 않습니다. YYYY-MM-DD HH:MM 형식으로 입력해주세요.\n예: 1990-05-15 14:30"
139
 
140
  calculator = SajuCalculator()
141
 
 
162
  return result
163
 
164
  except Exception as e:
165
+ return f"❌ 계산 중 오류가 발생했습니다: {str(e)}\n\n입력 형식을 다시 확인해주세요.\n- 생년월일: YYYY-MM-DD (예: 1990-05-15)\n- 시간: HH:MM (예: 14:30)"
166
 
167
  def format_saju_result(ganzhi, elements, ten_gods, daeun, birth_datetime, gender, birth_place):
168
  """사주 결과 포맷팅"""
 
291
 
292
  # Gradio 인터페이스 생성
293
  def create_interface():
294
+ with gr.Blocks(title="🔮 사주명리 만세력 시스템") as demo:
295
  gr.HTML("""
296
  <div style="text-align: center; padding: 20px;">
297
  <h1>🔮 사주명리학 만세력 분석 시스템</h1>
 
303
  with gr.Column(scale=1):
304
  gr.HTML("<h3>📝 정보 입력</h3>")
305
 
306
+ birth_date = gr.Textbox(
307
  label="생년월일",
308
+ placeholder="1990-05-15",
309
+ info="YYYY-MM-DD 형식으로 입력 (양력 기준)"
310
  )
311
 
312
  birth_time = gr.Textbox(
313
  label="태어난 시간",
314
  placeholder="14:30",
315
+ info="HH:MM 형식 (24시간 기준)"
316
  )
317
 
318
  gender = gr.Radio(
 
329
 
330
  calculate_btn = gr.Button(
331
  "🔮 만세력 분석하기",
332
+ variant="primary"
 
333
  )
334
 
335
  with gr.Row():
336
  with gr.Column():
337
  result_output = gr.Markdown(
338
+ label="분석 결과"
 
339
  )
340
 
341
  # 이벤트 연결