医疗查询助手

一个使用Claude API和函数调用的医疗查询助手,能够动态结合多个数据源的信息进行查询。

  • by AtaJS
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AtaJS/healthcare-mcp-assistant

使用说明

医疗保健MCP助理

一个医疗保健查询助手演示使用Claude API和函数调用的多工具编排。代理在单个查询中动态组合来自多个数据源的信息。

示例:多工具查询流

查询: “APT-101确认了吗?你的工作时间是什么时候?”

答复: “是的,APT-101已于2025年12月10日上午10:00与史密斯医生确认。我们的办公时间为周一至周五上午8点至下午6点,周六上午9点至下午2点。”

代理自动识别需要两个不同数据源的查询,并按顺序调用相应的工具(lookup_appointment 和 check_faq),并将结果组合成连贯的响应。

可用工具

该系统提供对四个医疗保健数据源的访问:

  1. check_faq -一般信息(时间、地点、保险单)
  2. lookup_appointment -预约状态和详细信息
  3. lookup_lab_result -实验室测试结果
  4. find_doctor -医生可用性和信息

项目结构

healthcare-mcp-assistant/
├── src/
│   └── data.py                 # Healthcare data (FAQ, appointments, labs, doctors)
├── figures/
│   ├── mcp_diagram.png         # Query flow diagram
│   └── evaluation_results.png  # Evaluation metrics visualization
├── demo_claude.py              # Main implementation
├── evaluation.py               # DeepEval testing
├── evaluation_results.md       # Detailed evaluation report
└── requirements.txt

需求

anthropic
python-dotenv
deepeval

设置

  1. 安装依赖项:
pip install -r requirements.txt
  1. 将API密钥添加到 .env:
ANTHROPIC_API_KEY=your-key-here
  1. 运行演示:
python demo_claude.py

评估结果

以Claude Sonnet 4为评判者,使用DeepEval框架进行评估。

摘要:

  • 完整性:通过率80%(4/5次测试)
  • 多工具查询:完美完整性得分(1.0)
  • 刀具选择精度:100%

评估验证了核心能力:成功地将来自多个工具的数据组合在一个响应中。

查看详细评估结果

实现细节

核心组件:

  1. 功能工具 -Python函数包装为工具:

    • check_faq(question) -常见问题解答
    • lookup_appointment(appointment_id) -预约详情
    • lookup_lab_result(lab_id) -实验室结果
    • find_doctor(doctor_name) -医生信息
  2. 代理循环 -处理多回转刀具调用:

    • 代理根据需要调用工具
    • 结果反馈给代理
    • 持续到生成最终响应
  3. 评估 -DeepEval指标:

    • 正确性:事实准确性
    • 完整性:所有查询部分均已回答

查询示例

单一工具:

Q: "What are your hours?"
A: Monday-Friday 8AM-6PM, Saturday 9AM-2PM, Closed Sundays

多工具:

Q: "Is APT-101 confirmed and what are your hours?"
A: [Combines appointment details + office hours]

成本与性能

  • 评估费用:0.05美元(5次查询)
  • 平均响应时间:~6秒
  • 评估模型:克劳德·索内特4

许可证

麻省理工学院