目录

医疗科普助手 (Medical Assistant)

Licence: MIT Python 3.8+ Gitee.AI MetaX GPU

基于 Gitee.AI 平台(沐曦 GPU 算力)的 AI 医疗科普助手。提供医学知识问答、症状分析、药品信息查询、健康生活建议。

⚠️ 重要声明:本工具仅供科普参考,不能替代专业医疗诊断

🌟 特性

  • 💊 医学知识问答:回答各类医学健康问题
  • 🏥 症状分析:分析描述的症状,提供可能原因
  • 💊 药品信息查询:查询药品说明书信息
  • 🌿 健康生活建议:提供科学、实用的健康建议
  • 🚨 紧急情况咨询:识别紧急情况并给出急救科普
  • 📋 免责声明:每次回答都包含免责声明
  • 📊 查询历史:记录所有查询记录

⚠️ 重要声明

本工具仅供科普参考,不能替代专业医疗诊断!

  • 如有急症或严重不适,请立即就医
  • 用药请严格遵医嘱,不要自行调整剂量
  • 本工具提供的所有信息不构成医疗建议

🏗️ 工作流程

用户健康咨询
   ↓
[医疗助手] 识别问题类型(问答/症状/药品/健康/紧急)
   ↓
[Gitee.AI API] → 沐曦 GPU 算力
   ↓
科普解答(含免责声明)
   ↓
结构化输出 (Markdown)

🚀 快速开始

1. 克隆仓库

git clone https://code.gitlink.org.cn/momomym/medical-assistant.git
cd medical-assistant

2. 安装依赖

pip install requests

3. 配置 API Key

Gitee.AI 平台 注册并获取 API Key:

export GITEE_AI_API_KEY=*** 4. 运行示例

```bash
# 模拟模式(无需 API Key)
python scripts/medical_assistant.py

# 完整使用示例
python tests/example_usage.py

📖 使用示例

基础用法

from scripts.giteeai_client import GiteeAIClient
from scripts.medical_assistant import MedicalAssistant

# 初始化
client = GiteeAIClient()
assistant = MedicalAssistant(giteeai_client=client)

# 医学知识问答
answer = assistant.ask("感冒了应该怎么办?")
print(answer)

# 症状分析
analysis = assistant.analyze_symptoms("头痛、发热、咳嗽")
print(analysis)

# 查询药品信息
drug_info = assistant.get_medication_info("阿司匹林")
print(drug_info)

# 获取健康建议
advice = assistant.get_wellness_advice("如何改善睡眠")
print(advice)

# 紧急情况咨询
emergency = assistant.emergency_consult("突然胸痛、呼吸困难")
print(emergency)

医学知识问答

# 回答医学问题
question = "高血压的常见症状有哪些?"
answer = assistant.ask(question, category="general")
print(answer)

支持的类别:

  • general - 一般医学问题
  • symptoms - 症状相关
  • medication - 药品相关
  • wellness - 健康生活
  • emergency - 紧急情况

回答包括:

  • 问题理解
  • 科普解答(基于医学证据)
  • 相关建议
  • 注意事项
  • 免责声明

症状分析

# 分析症状
symptoms = "头痛、发热、咳嗽、喉咙痛"
patient_info = "25岁男性,无过往病史"

analysis = assistant.analyze_symptoms(
    symptoms=symptoms,
    patient_info=patient_info
)
print(analysis)

分析包括:

  • 症状识别
  • 可能的原因(按可能性排序)
  • 紧急程度评估(低/中/高/紧急)
  • 建议措施
  • 何时应就医
  • 免责声明

药品信息查询

# 查询药品信息
drug_name = "阿司匹林"

info = assistant.get_medication_info(
    drug_name=drug_name,
    query="适应症和副作用"
)
print(info)

药品信息包括:

  • 基本信息(通用名、商品名、分类)
  • 适应症
  • 用法用量(强调遵医嘱)
  • 常见副作用
  • 禁忌和警告
  • 药物相互作用
  • 正确存储
  • 重要提醒(遵医嘱用药)

健康生活建议

# 获取健康建议
topic = "改善睡眠质量"
context = "经常熬夜,入睡困难"

advice = assistant.get_wellness_advice(
    topic=topic,
    context=context
)
print(advice)

建议包括:

  • 话题介绍
  • 科学依据
  • 实用建议(饮食、运动、生活习惯、心理调节)
  • 注意事项
  • 鼓励的话

紧急情况咨询

# 紧急情况咨询
description = "突然胸痛、呼吸困难、大汗淋漓"
context = "在办公室工作"

response = assistant.emergency_consult(
    description=description,
    context=context
)
print(response)

急救响应包括:

  • 紧急程度评估
  • 立即行动(明确是否拨打急救电话)
  • 急救步骤(如适用)
  • 注意事项
  • 就医建议
  • 免责声明

交互式模式

# 启动交互式医疗助手
assistant.interactive_mode()

命令:

  • ask <问题> - 医学知识问答
  • symptom <症状> - 症状分析
  • med <药品名称> - 查询药品信息
  • wellness <话题> - 健康生活建议
  • emergency <情况> - 紧急情况咨询
  • help - 查看帮助
  • quit - 退出

📂 项目结构

medical-assistant/
├── README.md                # 本文件
├── SKILL.md                # Hermes Skill 配置
├── LICENSE                 # MIT 许可证
├── scripts/
│   ├── giteeai_client.py  # Gitee.AI API 客户端
│   └── medical_assistant.py # 医疗助手核心模块
├── tests/
│   └── example_usage.py   # 完整使用示例
├── docs/                   # 文档
│   ├── DEPLOY.md          # 部署指南
│   └── API.md            # API 参考
├── sample_qa/              # 示例问答
└── references/             # 参考资料(医学指南等)

📊 性能数据

在沐曦 GPU 算力环境下测试:

任务类型 平均延迟 吞吐量 适用场景
医学知识问答 ~1800 ms 95 tokens/s 科普教育、健康咨询
症状分析 ~2500 ms 85 tokens/s 自我评估、就医参考
药品信息查询 ~2000 ms 90 tokens/s 用药参考、科普
健康建议 ~1500 ms 110 tokens/s 生活指导、预防保健
紧急情况咨询 ~1200 ms 120 tokens/s 急救科普、应急参考

实际性能取决于问题复杂度、回答长度等因素。

🎯 支持的模型

通过 client.list_models() 获取完整列表。推荐模型:

  • Qwen/Qwen2.5-7B-Instruct - 通义千问 2.5 7B(速度快)
  • Qwen/Qwen2.5-14B-Instruct - 通义千问 2.5 14B(平衡选择)
  • Qwen/Qwen2.5-72B-Instruct - 通义千问 2.5 72B(能力强,推荐医疗场景)

医疗场景推荐:14B 或 72B 模型(准确性更重要)

🛠️ 扩展开发

集成到健康平台

# 示例:健康小程序后端 API
from flask import Flask, request, jsonify

app = Flask(__name__)
assistant = MedicalAssistant(client)

@app.route('/ask', methods=['POST'])
def ask():
    data = request.json
    answer = assistant.ask(data['question'])
    return jsonify({"answer": answer})

批量健康问答

import json

assistant = MedicalAssistant(client)
questions = [
    "感冒了怎么办?",
    "如何改善睡眠?",
    "高血压需要注意什么?"
]

for q in questions:
    answer = assistant.ask(q)
    print(f"Q: {q}")
    print(f"A: {answer[:100]}...\n")

🐛 故障排查

问题:回答不够准确

尝试:

  1. 使用更强的模型(14B/72B)
  2. 在 prompt 中强调”基于医学证据”
  3. 提供更多上下文信息
  4. 明确问题的具体方面

问题:误判紧急程度

尝试:

  1. 丰富紧急关键词列表
  2. 使用更强的模型(72B)
  3. 在症状描述中明确严重程度
  4. 始终建议:不确定时及时就医

问题:API 调用超时

检查:

  1. 网络连接是否正常
  2. 问题是否过长
  3. 增加超时时间:client = GiteeAIClient(timeout=120)

📜 许可证

本项目采用 MIT License,详见 LICENSE 文件。

🙏 致谢

📧 联系方式

  • 问题反馈:请在 GitLink 平台提交 Issue
  • 功能建议:欢迎提交 Pull Request

⭐ 如果这个项目对你有帮助,欢迎 Star!

📰 更新日志

v1.0.0 (2026-06-05)

  • ✨ 首次发布
  • 💊 实现医学知识问答、症状分析、药品信息查询、健康建议
  • 🚨 添加紧急情况咨询功能
  • 📋 集成免责声明(每次回答)
  • 📝 提供完整测试和示例
关于
57.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号