Bargerya commited on
Commit
1ced91c
1 Parent(s): 99d73f0

new version 10

Browse files
Files changed (1) hide show
  1. app.py +42 -19
app.py CHANGED
@@ -6,15 +6,20 @@ import gradio as gr
6
  from zhdate import ZhDate
7
  from datetime import datetime
8
 
9
- '''
10
- from dotenv import load_dotenv, find_dotenv
11
- _ = load_dotenv(find_dotenv()) # read local .env file
12
- openai.api_key = os.environ['OPENAI_API_KEY']
13
- print(openai.api_key)
14
- if openai.api_key:
15
- DESKTOP_KEY = openai.api_key
16
- print(DESKTOP_KEY)
17
- '''
 
 
 
 
 
18
 
19
  # 定義地支對應的時間區間
20
  z_mapping = {
@@ -43,9 +48,18 @@ def get_advice(bmi,temp, API_KEY, model="gpt-3.5-turbo"):
43
  bmi = '' #未來再說
44
  gw_main_star = '像一個獨裁霸道的君王,無法聽進別人的意見'
45
  gw_main_star = '像一個足智多謀的軍師,ㄧ有時候會考慮太多而失去前進的勇氣'
 
 
 
 
 
46
 
 
 
 
 
47
  messages = [{"role": "system", "content": "你是一個心理權威,你會根據用戶的個性,提供至少3個,不超過5個建議。"},
48
- {"role": "user", "content": f'我的個性是 {gw_main_star}. 針對這樣的個性,妳可否給我一些待人處事的建議?'},]
49
  response = openai.chat.completions.create(
50
  model=model,
51
  max_tokens=1000,
@@ -73,7 +87,7 @@ def get_gym(bmi,slide, temp, API_KEY, model="gpt-3.5-turbo"):
73
  )
74
  return response.choices[0].message.content
75
 
76
- def GWAI(year, month, day, btime) -> datetime:
77
  dt_date1 = datetime(int(year), int(month), int(day))
78
  date_lunar = ZhDate.from_datetime(dt_date1)
79
  bstr = str(date_lunar)
@@ -82,9 +96,11 @@ def GWAI(year, month, day, btime) -> datetime:
82
  if hour >= 23:
83
  z = 0
84
  else:
85
- z = int(hour / 2) + 1
86
  result=z_mapping[str(z)]
87
- return bstr.replace('农历','農曆') + " " + result + "時"
 
 
88
 
89
 
90
 
@@ -120,9 +136,15 @@ output_gwai = gr.Textbox(
120
  info="這是從西元換算出的農曆生日及出生時辰",
121
  placeholder="Date & Time")
122
 
 
 
 
 
 
 
123
  advice = gr.Textbox(
124
- label="AI Advice",
125
- info="請選擇以下按鈕讓AI 根據你的BMI值給予的建議",
126
  placeholder="Ouput Text here...",
127
  lines=5,)
128
 
@@ -182,11 +204,12 @@ with gr.Blocks() as demo:
182
 
183
  with gr.Row():
184
  output_gwai.render() # 顯示農曆生日欄
 
185
 
186
  btn.render() # 顯示農曆生日值結果
187
  btn.click(fn=GWAI,
188
- inputs=[year, month, day, btime],
189
- outputs=[output_gwai])
190
 
191
  advice.render() # 顯示AI建議結果的文字框
192
 
@@ -194,8 +217,8 @@ with gr.Blocks() as demo:
194
  key_box.render() # 顯示API金鑰輸入框
195
  btn_advice.render() # 顯示AI建議按鈕
196
  btn_advice.click(fn=get_advice, inputs=[output_gwai,temperature,key_box], outputs=advice)
197
- btn_gym.render() # 顯示AI健身計畫按鈕
198
- btn_gym.click(fn=get_gym, inputs=[output_gwai,slider,temperature, key_box], outputs=advice)
199
 
200
  with gr.Accordion("settings", open=True):
201
  slider.render()
 
6
  from zhdate import ZhDate
7
  from datetime import datetime
8
 
9
+ localrun = True # 上傳到 Space 時要設定成 False
10
+ DESKTOP_KEY = False
11
+
12
+ def get_envkey():
13
+ from dotenv import load_dotenv, find_dotenv
14
+ _ = load_dotenv(find_dotenv()) # read local .env file
15
+ openai.api_key = os.environ['OPENAI_API_KEY']
16
+ print(openai.api_key)
17
+ if openai.api_key:
18
+ DESKTOP_KEY = openai.api_key
19
+ print(DESKTOP_KEY)
20
+
21
+ if localrun:
22
+ get_envkey()
23
 
24
  # 定義地支對應的時間區間
25
  z_mapping = {
 
48
  bmi = '' #未來再說
49
  gw_main_star = '像一個獨裁霸道的君王,無法聽進別人的意見'
50
  gw_main_star = '像一個足智多謀的軍師,ㄧ有時候會考慮太多而失去前進的勇氣'
51
+ gw_main_star = f'''
52
+ 紫微為『帝座』,它有降煞、制煞的能力,也主工作事業,為解災厄、延壽命的星辰。它是領袖人物,體面高貴,有統御能力,而且也是能夠獨當一面的。皇帝喜歡發號司令,也愛支配別人。所以就往往很有事業慾,常常企圖心旺盛。缺點是它很主觀,而且自尊心很強,好面子,深沉內斂,不愛求助於別人,卻有豐富的生命力,遇困境皆能逆來順受,但是也會因此感到內心的孤獨。
53
+
54
+ 紫微星最要不得固執倔強,貪喜奉承,耳根子太軟、自負、猜疑心重、善變、待人接物表面化、主觀意識太強。
55
+ 『尊嚴』兩字在此命中所值幾何?算是它的人生課題吧!
56
 
57
+ 紫微因為是皇帝,所以一定要得『群臣拱照』始為高格,如孤星單守是為孤君,人生往往無法施展身手。也就是說單單一顆紫微星是不能發揮開拓疆土的作為。所謂『群臣』指的是天府、天相、左輔、右弼、文昌、文曲、天魁、天鉞。紫微沒有『群臣』時較會性急心躁。
58
+
59
+ 紫微星有惻隱之心能包容別人犯錯的雅量,為人敦厚性情倔強,舉止落落大方彬彬有禮,有長者之風範,謙恭有餘,忠厚較不足。人生但應防桃花後宮作亂情勢,也容易受到感情傷害。此星主貴不主富,但基本上的財運都算不錯,能收能放,不過會在人生中充滿了挑戰性,不要替別人背書作保。
60
+ '''
61
  messages = [{"role": "system", "content": "你是一個心理權威,你會根據用戶的個性,提供至少3個,不超過5個建議。"},
62
+ {"role": "user", "content": f'我的人生以紫微斗數星象來論述是 {gw_main_star}. 請總結該論述,提出幾條相對重要的重要特徵,給出一些待人處事的建議?'},]
63
  response = openai.chat.completions.create(
64
  model=model,
65
  max_tokens=1000,
 
87
  )
88
  return response.choices[0].message.content
89
 
90
+ def GWAI(year, month, day, btime, sex) -> datetime:
91
  dt_date1 = datetime(int(year), int(month), int(day))
92
  date_lunar = ZhDate.from_datetime(dt_date1)
93
  bstr = str(date_lunar)
 
96
  if hour >= 23:
97
  z = 0
98
  else:
99
+ z = int((hour + 1) / 2) + 1
100
  result=z_mapping[str(z)]
101
+ output=(bstr.replace('农历','農曆') + " " + result + "時")
102
+ output2='紫微'
103
+ return output,output2
104
 
105
 
106
 
 
136
  info="這是從西元換算出的農曆生日及出生時辰",
137
  placeholder="Date & Time")
138
 
139
+ output2_gwai = gr.Textbox(
140
+ value="",
141
+ label="你的紫微斗數命宮星象",
142
+ info="這是你的紫微斗數命盤上,命宮裡的主星的資訊",
143
+ placeholder="Stars in your master plate.")
144
+
145
  advice = gr.Textbox(
146
+ label="人生建議 Friendly Advice",
147
+ info="AI 紫微根據你的命盤星象所提供的人生建議",
148
  placeholder="Ouput Text here...",
149
  lines=5,)
150
 
 
204
 
205
  with gr.Row():
206
  output_gwai.render() # 顯示農曆生日欄
207
+ output2_gwai.render()
208
 
209
  btn.render() # 顯示農曆生日值結果
210
  btn.click(fn=GWAI,
211
+ inputs=[year, month, day, btime, sex],
212
+ outputs=[output_gwai,output2_gwai])
213
 
214
  advice.render() # 顯示AI建議結果的文字框
215
 
 
217
  key_box.render() # 顯示API金鑰輸入框
218
  btn_advice.render() # 顯示AI建議按鈕
219
  btn_advice.click(fn=get_advice, inputs=[output_gwai,temperature,key_box], outputs=advice)
220
+ #btn_gym.render() # 顯示AI健身計畫按鈕
221
+ #btn_gym.click(fn=get_gym, inputs=[output_gwai,slider,temperature, key_box], outputs=advice)
222
 
223
  with gr.Accordion("settings", open=True):
224
  slider.render()