hermi612 commited on
Commit
967c448
·
verified ·
1 Parent(s): fc1a6a3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -77
app.py CHANGED
@@ -567,93 +567,82 @@ def medical_chat(user_input, history):
567
 
568
  # 构建 Gradio 界面
569
  with gr.Blocks(theme=gr.themes.Soft(), css="""
570
- .container { display: flex; flex-direction: row; }
571
- .left-column { flex: 3; }
572
- .right-column { flex: 1; }
573
- .chatbot-container { height: 450px; }
574
  """) as demo:
575
  gr.Markdown("# 🏥 专业医疗咨询助手")
576
  gr.Markdown("### 本系统提供基于AI的医疗咨询服务,仅供参考,不能替代专业医生的诊断")
577
 
578
- # 创建两列布局
579
- with gr.Row(elem_id="container", equal_height=True):
580
- # 左侧列 - 主聊天界面
581
- with gr.Column(scale=3, elem_id="left-column"):
582
- gr.Markdown("### 请描述您的症状或健康问题")
583
- chat_interface = gr.ChatInterface(
584
- fn=medical_chat,
585
- examples=[
586
- "咳嗽一周了,有什么缓解方法?",
587
- "经常失眠怎么调理?",
588
- "孩子有轻微发烧,需要去医院吗?"
589
- ],
590
- title="症状咨询",
591
- chatbot=gr.Chatbot(height=450)
592
- )
593
 
594
- # 右侧列 - 辅助信息
595
- with gr.Column(scale=1, elem_id="right-column"):
596
- # 添加医疗免责声明
597
- with gr.Accordion("医疗免责声明", open=True):
598
- gr.Markdown("""
599
- ### 📋 医疗免责声明
600
-
601
- 1. 本系统提供的信息仅供参考,不构成医疗建议、诊断或治疗方案
602
- 2. 本系统不能替代专业医疗人员的面诊和专业判断
603
- 3. 如遇紧急情况,请立即前往医院就诊或拨打急救电话
604
- 4. 系统可能无法识别所有医疗紧急情况,请谨慎使用
605
- 5. 使用本系统即表示您理解并接受以上声明
606
- """)
607
 
608
- # 添加常见医疗问题
609
- with gr.Accordion("常见医疗问题", open=False):
610
- gr.Markdown("""
611
- ### 常见医疗问题解答
612
-
613
- **头痛**
614
- - 轻度头痛可以休息、按摩太阳穴或服用非处方止痛药
615
- - 如果头痛剧烈、持续时间长或伴随其他症状,请咨询医生
616
-
617
- **发热**
618
- - 轻度发热(38°C以下)可多喝水、休息并使用退烧药
619
- - 高烧(38°C以上)或持续发热超过3天应就医
620
-
621
- **咳嗽**
622
- - 保持水分摄入,可使用非处方止咳药
623
- - 如果咳嗽持续超过2周或伴有血痰,请咨询医生
624
-
625
- **疫苗接种后反应**
626
- - 接种部位疼痛、轻微发热是正常反应
627
- - 如出现严重过敏反应或高烧,应立即就医
628
- """)
629
 
630
- # 添加使用说明
631
- with gr.Accordion("使用说明", open=False):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
632
  gr.Markdown("""
633
- ### 💡 使用说明
 
634
 
635
- 1. 请简明扼要地描述您的症状或健康问题
636
- 2. 尽量提供症状的持续时间、严重程度等相关信息
637
- 3. 系统会根据您的描述提供一般性的健康建议
638
- 4. 如果系统无法提供有用的建议,请尝试重新描述您的问题
639
- 5. 对于复杂或严重的健康问题,请务必咨询专业医生
640
  """)
641
-
642
- # 显示系统状态(移到右侧)
643
- with gr.Accordion("系统状态", open=False):
644
- hf_token_status = "✅ 已设置" if "HF_TOKEN" in os.environ and os.environ.get("HF_TOKEN", "").strip() else "❌ 未设置"
645
- gr.Markdown(f"- HF_TOKEN: {hf_token_status}")
646
- gr.Markdown(f"- HF_ENDPOINT: {os.environ.get('HF_ENDPOINT', '默认')}")
647
-
648
- if hf_token_status == "❌ 未设置":
649
- gr.Markdown("""
650
- ### ⚠️ 警告:未设置HF_TOKEN
651
- 请在Hugging Face Spaces的设置中添加HF_TOKEN环境变量。
652
-
653
- 1. 前往 [Hugging Face](https://huggingface.co/settings/tokens) 创建访问令牌
654
- 2. 在Spaces设置中添加环境变量HF_TOKEN,值为你的访问令牌
655
- 3. 重新部署应用
656
- """)
657
 
658
  # 启动应用(Hugging Face Spaces 会自动处理)
659
  print("启动应用...")
 
567
 
568
  # 构建 Gradio 界面
569
  with gr.Blocks(theme=gr.themes.Soft(), css="""
570
+ .submit-btn { position: absolute; right: 0; bottom: 0; }
 
 
 
571
  """) as demo:
572
  gr.Markdown("# 🏥 专业医疗咨询助手")
573
  gr.Markdown("### 本系统提供基于AI的医疗咨询服务,仅供参考,不能替代专业医生的诊断")
574
 
575
+ with gr.Column():
576
+ gr.Markdown("### 请描述您的症状或健康问题")
577
+ chat_interface = gr.ChatInterface(
578
+ fn=medical_chat,
579
+ examples=[
580
+ "咳嗽一周了,有什么缓解方法?",
581
+ "经常失眠怎么调理?",
582
+ "孩子有轻微发烧,需要去医院吗?"
583
+ ],
584
+ title="症状咨询",
585
+ chatbot=gr.Chatbot(height=500),
586
+ submit_btn_class="submit-btn"
587
+ )
 
 
588
 
589
+ with gr.Accordion("医疗免责声明", open=True):
590
+ gr.Markdown("""
591
+ ### 📋 医疗免责声明
 
 
 
 
 
 
 
 
 
 
592
 
593
+ 1. 本系统提供的信息仅供参考,不构成医疗建议、诊断或治疗方案
594
+ 2. 本系统不能替代专业医疗人员的面诊和专业判断
595
+ 3. 如遇紧急情况,请立即前往医院就诊或拨打急救电话
596
+ 4. 系统可能无法识别所有医疗紧急情况,请谨慎使用
597
+ 5. 使用本系统即表示您理解并接受以上声明
598
+ """)
599
+
600
+ with gr.Accordion("常见医疗问题", open=False):
601
+ gr.Markdown("""
602
+ ### 常见医疗问题解答
 
 
 
 
 
 
 
 
 
 
 
603
 
604
+ **头痛**
605
+ - 轻度头痛可以休息、按摩太阳穴或服用非处方止痛药
606
+ - 如果头痛剧烈、持续时间长或伴随其他症状,请咨询医生
607
+
608
+ **发热**
609
+ - 轻度发热(38°C以下)可多喝水、休息并使用退烧药
610
+ - 高烧(38°C以上)或持续发热超过3天应就医
611
+
612
+ **咳嗽**
613
+ - 保持水分摄入,可使用非处方止咳药
614
+ - 如果咳嗽持续超过2周或伴有血痰,请咨询医生
615
+
616
+ **疫苗接种后反应**
617
+ - 接种部位疼痛、轻微发热是正常反应
618
+ - 如出现严重过敏反应或高烧,应立���就医
619
+ """)
620
+
621
+ with gr.Accordion("使用说明", open=False):
622
+ gr.Markdown("""
623
+ ### 💡 使用说明
624
+
625
+ 1. 请简明扼要地描述您的症状或健康问题
626
+ 2. 尽量提供症状的持续时间、严重程度等相关信息
627
+ 3. 系统会根据您的描述提供一般性的健康建议
628
+ 4. 如果系统无法提供有用的建议,请尝试重新描述您的问题
629
+ 5. 对于复杂或严重的健康问题,请务必咨询专业医生
630
+ """)
631
+
632
+ with gr.Accordion("系统状态", open=False):
633
+ hf_token_status = "✅ 已设置" if "HF_TOKEN" in os.environ and os.environ.get("HF_TOKEN", "").strip() else "❌ 未设置"
634
+ gr.Markdown(f"- HF_TOKEN: {hf_token_status}")
635
+ gr.Markdown(f"- HF_ENDPOINT: {os.environ.get('HF_ENDPOINT', '默认')}")
636
+
637
+ if hf_token_status == "❌ 未设置":
638
  gr.Markdown("""
639
+ ### ⚠️ 警告:未设置HF_TOKEN
640
+ 请在Hugging Face Spaces的设置中添加HF_TOKEN环境变量。
641
 
642
+ 1. 前往 [Hugging Face](https://huggingface.co/settings/tokens) 创建访问令牌
643
+ 2. 在Spaces设置中添加环境变量HF_TOKEN,值为你的访问令牌
644
+ 3. 重新部署应用
 
 
645
  """)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
646
 
647
  # 启动应用(Hugging Face Spaces 会自动处理)
648
  print("启动应用...")