ll7098ll commited on
Commit
cae15b9
·
verified ·
1 Parent(s): afe489f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -27
app.py CHANGED
@@ -11,7 +11,7 @@ import requests
11
  from xml.etree import ElementTree
12
 
13
  # Google Gemini API 키 설정
14
- genai.configure(api_key=os.environ.get("GEMINI_API_KEY")) # os.environ["GEMINI_API_KEY"] -> os.environ.get("GEMINI_API_KEY") 로 변경
15
 
16
  # 모델 설정
17
  generation_config = {
@@ -336,11 +336,11 @@ def calculate_siju(birth_hour, lunIljin):
336
  ('병', '유'): '정유(丁酉)', ('신', '유'): '정유(丁酉)',
337
  ('정', '유'): '기유(己酉)', ('임', '유'): '기유(己酉)',
338
  ('무', '유'): '신유(辛酉)', ('계', '유'): '신유(辛酉)',
339
- ('갑', '술'): '갑술(甲戌)', ('기', '술'): '갑술(甲戌)',
340
- ('을', '술'): '병술(丙戌)', ('경', '술'): '병술(丙戌)',
341
- ('병', '술'): '무술(戊戌)', ('신', '술'): '무술(戊戌)',
342
- ('정', '술'): '경술(庚戌)', ('임', '술'): '경술(庚戌)',
343
- ('무', '술'): '임술(壬戌)', ('계', '술'): '임술(壬戌)',
344
  ('갑', '해'): '을해(乙亥)', ('기', '해'): '을해(乙亥)',
345
  ('을', '해'): '정해(丁亥)', ('경', '해'): '정해(丁亥)',
346
  ('병', '해'): '기해(己亥)', ('신', '해'): '기해(己亥)',
@@ -359,13 +359,7 @@ def get_lunar_info(birth_year, birth_month, birth_day, birth_hour):
359
  service_key = "EuBjt%2B2t0KzYt5Ri%2Bzs56oymt9kHJ8uPIOV7m6UMKnOV8cpwj02EiRqMEudX%2F%2FVTKdMnwaLH0igRwY57YUplEQ%3D%3D"
360
  url = f"{base_url}?solYear={birth_year}&solMonth={birth_month}&solDay={birth_day}&ServiceKey={service_key}"
361
 
362
- print(f"API 요청 URL: {url}") # API 요청 URL 로깅
363
-
364
  response = requests.get(url)
365
- print(f"API 응답 상태 코드: {response.status_code}") # API 응답 상태 코드 로깅
366
- print(f"API 응답 헤더: {response.headers}") # API 응답 헤더 로깅
367
- print(f"API 응답 내용 (일부): {response.content[:500]}") # API 응답 내용 일부 로깅
368
-
369
  if response.status_code == 200:
370
  root = ElementTree.fromstring(response.content)
371
 
@@ -375,8 +369,6 @@ def get_lunar_info(birth_year, birth_month, birth_day, birth_hour):
375
 
376
  siju = calculate_siju(birth_hour, lunIljin)
377
 
378
- print(f"년주: {lunSecha}, 월주: {lunWolgeon}, 일주: {lunIljin}, 시주: {siju}") # 만세력 정보 로깅
379
-
380
  return {
381
  "년주": lunSecha,
382
  "월주": lunWolgeon,
@@ -409,9 +401,8 @@ def calculate_manseryeok(gender, birth_year, birth_month, birth_day, birth_hour)
409
  "시주": lunar_info.get("시주", "정보 없음"),
410
  }
411
 
412
- print(f"계산된 만세력 결과: {manseryeok_result}") # 최종 만세력 결과 로깅
413
  return manseryeok_result
414
-
415
  # 사주 해석 생성 함수 (수정됨)
416
  def generate_saju_interpretation(user_info, selected_style):
417
  name, gender, birthdate, birthtime = user_info
@@ -428,7 +419,7 @@ def generate_saju_interpretation(user_info, selected_style):
428
  일주=manseryeok_result['일주'],
429
  시주=manseryeok_result['시주']
430
  )
431
-
432
  # 나머지 정보 추가
433
  prompt += f"\n이름: {name}\n성별: {gender}\n생년월일: {birthdate}\n태어난 시간: {birthtime}"
434
 
@@ -486,7 +477,7 @@ def chat_with_ai(prompt, chat_history, user_info):
486
  except Exception as e:
487
  st.error(f"챗봇 응답 생성 오류: {e}")
488
  return ""
489
-
490
  # Streamlit 인터페이스
491
  st.set_page_config(page_title="사주명리 AI", page_icon="🔮")
492
 
@@ -627,23 +618,23 @@ with st.expander("❓ 사주명리 AI FAQ"):
627
  st.write(
628
  """
629
  **Q1. 사주명리 AI는 어떤 기능을 제공하나요?**
630
-
631
  A. 이 앱은 사용자가 입력한 생년월일시 정보를 바탕으로 만세력을 생성하고 사주를 해석해주는 AI 도구입니다. 사주 해석에는 오행 분석, 십신 분석, 용신 분석, 대운 분석, 세운 분석, 종합 운세, 조언 등이 포함됩니다. 또한, 사주 해석 후 채팅 모드를 통해 추가 질문을 할 수 있습니다.
632
-
633
  **Q2. 사주 해석은 어떻게 이루어지나요?**
634
-
635
  A. 이 AI는 사용자가 입력한 생년월일시 정보를 바탕으로 만세력을 생성하고, 생성된 만세력과 사주명리 이론에 따라 해석을 생성합니다.
636
-
637
  **Q3. 사주 해석은 얼마나 정확한가요?**
638
-
639
  A. 사주 해석은 통계적인 경향성을 바탕으로 하기 때문에, 개인의 삶에 대한 100% 정확한 예측은 아닙니다. 사주 해석은 참고용으로만 활용하시기 바랍니다.
640
-
641
  **Q4. 사주 해석 결과가 마음에 들지 않으면 어떻게 하나요?**
642
-
643
  A. 사주 해석은 개인의 선택과 노력에 따라 달라질 수 있습니다. 사주 해석 결과가 마음에 들지 않더라도, 긍정적인 마음으로 미래를 개척해 나가시기 바랍니다.
644
-
645
  **Q5. 채팅 모드에서는 어떤 질문을 할 수 있나요?**
646
-
647
  A. 사주 해석과 관련된 질문이라면 무엇이든 할 수 있습니다. 예를 들어, "제 사주에서 어떤 오행이 부족한가요?", "올해 제 연애운은 어떤가요?", "제 사주에 맞는 직업은 무엇인가요?"와 같은 질문을 할 수 있습니다.
648
  """
649
  )
 
11
  from xml.etree import ElementTree
12
 
13
  # Google Gemini API 키 설정
14
+ genai.configure(api_key=os.environ["GEMINI_API_KEY"])
15
 
16
  # 모델 설정
17
  generation_config = {
 
336
  ('병', '유'): '정유(丁酉)', ('신', '유'): '정유(丁酉)',
337
  ('정', '유'): '기유(己酉)', ('임', '유'): '기유(己酉)',
338
  ('무', '유'): '신유(辛酉)', ('계', '유'): '신유(辛酉)',
339
+ ('갑', '술'): '갑술(甲戌) ', ('기', '술'): '갑술(甲戌)',
340
+ ('을', '술'): '병술(丙戌) ', ('경', '술'): '병술(丙戌)',
341
+ ('병', '술'): '무술(戊戌) ', ('신', '술'): '무술(戊戌)',
342
+ ('정', '술'): '경술(庚戌) ', ('임', '술'): '경술(庚戌)',
343
+ ('무', '술'): '임술(壬戌) ', ('계', '술'): '임술(壬戌)',
344
  ('갑', '해'): '을해(乙亥)', ('기', '해'): '을해(乙亥)',
345
  ('을', '해'): '정해(丁亥)', ('경', '해'): '정해(丁亥)',
346
  ('병', '해'): '기해(己亥)', ('신', '해'): '기해(己亥)',
 
359
  service_key = "EuBjt%2B2t0KzYt5Ri%2Bzs56oymt9kHJ8uPIOV7m6UMKnOV8cpwj02EiRqMEudX%2F%2FVTKdMnwaLH0igRwY57YUplEQ%3D%3D"
360
  url = f"{base_url}?solYear={birth_year}&solMonth={birth_month}&solDay={birth_day}&ServiceKey={service_key}"
361
 
 
 
362
  response = requests.get(url)
 
 
 
 
363
  if response.status_code == 200:
364
  root = ElementTree.fromstring(response.content)
365
 
 
369
 
370
  siju = calculate_siju(birth_hour, lunIljin)
371
 
 
 
372
  return {
373
  "년주": lunSecha,
374
  "월주": lunWolgeon,
 
401
  "시주": lunar_info.get("시주", "정보 없음"),
402
  }
403
 
 
404
  return manseryeok_result
405
+
406
  # 사주 해석 생성 함수 (수정됨)
407
  def generate_saju_interpretation(user_info, selected_style):
408
  name, gender, birthdate, birthtime = user_info
 
419
  일주=manseryeok_result['일주'],
420
  시주=manseryeok_result['시주']
421
  )
422
+
423
  # 나머지 정보 추가
424
  prompt += f"\n이름: {name}\n성별: {gender}\n생년월일: {birthdate}\n태어난 시간: {birthtime}"
425
 
 
477
  except Exception as e:
478
  st.error(f"챗봇 응답 생성 오류: {e}")
479
  return ""
480
+
481
  # Streamlit 인터페이스
482
  st.set_page_config(page_title="사주명리 AI", page_icon="🔮")
483
 
 
618
  st.write(
619
  """
620
  **Q1. 사주명리 AI는 어떤 기능을 제공하나요?**
621
+
622
  A. 이 앱은 사용자가 입력한 생년월일시 정보를 바탕으로 만세력을 생성하고 사주를 해석해주는 AI 도구입니다. 사주 해석에는 오행 분석, 십신 분석, 용신 분석, 대운 분석, 세운 분석, 종합 운세, 조언 등이 포함됩니다. 또한, 사주 해석 후 채팅 모드를 통해 추가 질문을 할 수 있습니다.
623
+
624
  **Q2. 사주 해석은 어떻게 이루어지나요?**
625
+
626
  A. 이 AI는 사용자가 입력한 생년월일시 정보를 바탕으로 만세력을 생성하고, 생성된 만세력과 사주명리 이론에 따라 해석을 생성합니다.
627
+
628
  **Q3. 사주 해석은 얼마나 정확한가요?**
629
+
630
  A. 사주 해석은 통계적인 경향성을 바탕으로 하기 때문에, 개인의 삶에 대한 100% 정확한 예측은 아닙니다. 사주 해석은 참고용으로만 활용하시기 바랍니다.
631
+
632
  **Q4. 사주 해석 결과가 마음에 들지 않으면 어떻게 하나요?**
633
+
634
  A. 사주 해석은 개인의 선택과 노력에 따라 달라질 수 있습니다. 사주 해석 결과가 마음에 들지 않더라도, 긍정적인 마음으로 미래를 개척해 나가시기 바랍니다.
635
+
636
  **Q5. 채팅 모드에서는 어떤 질문을 할 수 있나요?**
637
+
638
  A. 사주 해석과 관련된 질문이라면 무엇이든 할 수 있습니다. 예를 들어, "제 사주에서 어떤 오행이 부족한가요?", "올해 제 연애운은 어떤가요?", "제 사주에 맞는 직업은 무엇인가요?"와 같은 질문을 할 수 있습니다.
639
  """
640
  )