Amity123 commited on
Commit
9f45ea0
·
verified ·
1 Parent(s): 1c409f4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -7
app.py CHANGED
@@ -267,11 +267,17 @@ def generate_real_results(name, height, weight, age, gender, symptom, df_disease
267
  df_meals_out.update(df_meals)
268
  download_btn.update(value=pdf_path, visible=True)
269
 
270
- # 新的 on_submit 回呼
271
- def on_submit(name, height, weight, age, gender, symptom, df_disease_out, df_nutrition_out, df_meals_out, download_btn):
272
- threading.Thread(target=generate_real_results, args=(name, height, weight, age, gender, symptom, df_disease_out, df_nutrition_out, df_meals_out, download_btn)).start()
273
- # 立即回傳空表格(或 loading message)
274
- return pd.DataFrame(), pd.DataFrame(), pd.DataFrame(), gr.update(visible=False)
 
 
 
 
 
 
275
 
276
  # --------------------
277
  # Gradio UI
@@ -303,12 +309,11 @@ with gr.Blocks() as demo:
303
  df_meals_out = gr.Dataframe(label="中式 / 西式 餐點對照", interactive=False)
304
  download_btn = gr.DownloadButton(label="一鍵下載 PDF", visible=False, elem_classes=["orange-btn"])
305
 
306
-
307
  submit_btn.click(
308
  fn=on_submit,
309
  inputs=[name, height, weight, age, gender, symptom],
310
  outputs=[df_disease_out, df_nutrition_out, df_meals_out, download_btn],
311
- )
312
 
313
  if __name__ == "__main__":
314
  demo.launch()
 
267
  df_meals_out.update(df_meals)
268
  download_btn.update(value=pdf_path, visible=True)
269
 
270
+ def on_submit(name, height, weight, age, gender, symptom):
271
+ # 直接呼叫 GPT
272
+ raw_text = call_gpt_system(f"""你是一位專業營養師...
273
+ 姓名: {name}, 性別: {gender}, 年齡: {age}, 身高: {height}, 體重: {weight}, 症狀: {symptom}""")
274
+
275
+ df_disease, df_nutrition, df_meals = robust_parse(raw_text)
276
+ pdf_path = generate_pdf_file(df_disease, df_nutrition, df_meals,
277
+ {"name": name, "gender": gender, "age": age, "height": height, "weight": weight})
278
+
279
+ return df_disease, df_nutrition, df_meals, gr.update(value=pdf_path, visible=True)
280
+
281
 
282
  # --------------------
283
  # Gradio UI
 
309
  df_meals_out = gr.Dataframe(label="中式 / 西式 餐點對照", interactive=False)
310
  download_btn = gr.DownloadButton(label="一鍵下載 PDF", visible=False, elem_classes=["orange-btn"])
311
 
 
312
  submit_btn.click(
313
  fn=on_submit,
314
  inputs=[name, height, weight, age, gender, symptom],
315
  outputs=[df_disease_out, df_nutrition_out, df_meals_out, download_btn],
316
+ ).queue(concurrency_count=1, api_open=False)
317
 
318
  if __name__ == "__main__":
319
  demo.launch()