🩺 可解释的糖尿病ML MCP:基于人工智能的医疗风险评估
🎯 项目描述
尖端 可解释的人工智能(XAI)医疗保健平台 通过无缝整合,彻底改变了糖尿病风险预测 机器学习, 模型上下文协议(MCP),以及 可解释的人工智能技术该系统为医疗保健专业人员提供了透明的、基于证据的糖尿病风险评估,并辅以先进的机器学习模型和实时可解释性特征。
该平台基于现代微服务架构,利用 LangGraph AI代理, FastMCP协议服务器,以及 SHAP可解释性框架 通过直观的网络界面提供临床相关见解。该系统将复杂的算法预测转化为可操作的医疗智能,确保医疗决策既数据驱动又可解释。
🏗️ 技术架构
该系统遵循 分布式协议驱动架构 由...驱动 LangGraph代理, 模型上下文协议(MCP),以及 可解释ML 透明的医疗AI工作流程。
LangGraph代理管道
- 编排 医学预测工作流程 使用
MessagesState有条件路由 - 执行 4个核心节点 --涵盖模型调用、工具执行、决策分支和响应格式
- 使用 MCP工具绑定 与糖尿病预测和解释服务无缝集成
- 确定性流程确保临床可靠性(
START → call_model → tool_decision → execute_tools → END)
MCP协议集成
- 服务器: 在本地主机8080上使用HTTP/WebSocket传输的FastMCP
- 工具: 具有结构化JSON模式的diabetes_risk_presearcher和diabetes_risk_explainer
- 资源: 通过基于URI的资源系统访问医疗指南和模型元数据
- 沟通: 异步HTTP与JSON-RPC,用于实时工具发现和执行
LLM集成
- 型号: ChatOllama with gpt-oss:最新(可配置的开源医疗LLM)
- 推理引擎: 端口11434上具有GPU加速的Ollama服务器
- 工具绑定: 具有自动模式验证的动态工具注册
- 响应处理: 具有风险分类和解释解析的结构化医学分析
ML处理层
- 预测引擎: Scikit学习集成模型(随机森林/XGFost),准确率超过85%
- 可解释性: SHAP TreeExplainer用于特征归因和医疗决策透明度
- 数据管道: 具有经过验证的医疗参数输入(年龄、BMI、谱系函数)的NumPy数组
- 模型持久性: Joblib序列化,实现一致的模型版本控制和部署
医疗保健接口层
- 前端: 配备医疗级UI组件和实时状态监控
- 可视化: 使用颜色编码指标和SHAP解释渲染进行风险分类
- 输入验证: 结合临床指南的医学参数边界检查
- 响应显示: 带有免责声明和合规信息的专业医疗仪表板
可观察性和临床安全性
- 通过医疗审计跟踪全面记录所有预测步骤
- 系统可靠性的实时MCP连接监控
- 临床数据安全的输入净化和错误处理
- 易于扩展以支持其他医疗模型和医疗保健协议
⚙️ 工作流图:
______________________________________________________________________
✨ 主要特点
- 🩺 临床决策支持界面医疗保健专业人员可以输入患者参数(年龄、BMI、家族史),并获得即时的糖尿病风险评估和置信度评分——不需要机器学习专业知识。该系统自动将医疗输入转化为可操作的风险预测。
- 🔍 可解释的人工智能和医学推理:每个预测都有SHAP支持的解释,显示了每个因素(年龄、BMI、遗传)是如何影响糖尿病风险评分的。该系统使用综合解释框架提供了明确的医学解释,如“高BMI导致45%的风险增加”。
- 📊 多模态风险可视化:无缝呈现数字预测和视觉风险指标。该系统根据临床背景动态呈现颜色编码的风险分类、个体因素评估和综合医疗仪表板。
- 🔧 MCP协议集成和工具透明度:每个预测都利用标准化的模型上下文协议工具进行糖尿病评估和解释。医疗保健提供者可以准确地看到使用了哪些机器学习模型和可解释性方法,从而确保临床透明度和审计合规性。
- 🔒 医疗保健级隐私与合规:使用FastMCP和LangGraph完全在本地基础设施上运行,确保完全的患者数据隐私。支持多种医疗AI模型,具有符合HIPAA的部署选项,可针对不同的医疗环境和监管要求进行配置。
📁 项目结构
📦 explainable-diabetes-ml-mcp
│
├── 📂 data/
│ └── pima_diabetes.csv # Training dataset for diabetes prediction
│
├── 📂 models/
│ └── model.pkl # Pre-trained ML model (Random Forest)
│
├── mcp_server.py # FastMCP server with diabetes prediction tools
├── mcp_functions.py # Core ML prediction and SHAP explanation functions
├── client.py # LangGraph agent client for testing MCP integration
├── streamlit_client_ui.py # Professional Streamlit web application
├── train_model.ipynb # Jupyter notebook for model training and evaluation
├── requirements.txt # Python dependencies and package versions
└── README.md # Project documentation and setup guide
🧭 演示示例图像
流媒体接口
FastMCP服务器
______________________________________________________________________
🛠️ 安装说明
先决条件
- Python 3.10+
- CUDA兼容GPU(可选,处理速度更快)
- 建议使用8GB+RAM
步骤1:克隆存储库
git clone https://github.com/Ginga1402/explainable-diabetes-ml-mcp.git
cd explainable-diabetes-ml-mcp步骤2:安装依赖项
pip install -r requirements.txt步骤3:设置Ollama(LLM后端)
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# Pull the required model
ollama pull gpt-oss:latest📖 用法
启动应用程序
- 启动FastMCP服务器:
python mcp_server.pyAPI将于 http://localhost:8080
- 启动Streamlit界面:
streamlit run streamlit_client_ui.pyweb界面将在以下时间打开 http://localhost:8501
🧱 使用的技术
| 技术 | 描述 | 链接 |
|---|---|---|
| LangChain | 构建LLM驱动的应用程序和代理工作流的框架 | LangChain |
| LangGraph | 复杂医疗人工智能工作流的基于状态的代理编排 | LangGraph |
| FastMCP | 用于分布式工具编排的模型上下文协议服务器 | FastMCP |
| 查托拉马 | 本地LLM集成以隐私为中心的医疗AI | 奥拉玛 |
| gpt-oss:最新版本 | 糖尿病风险评估的开源医学推理模型 | GPT-OSS |
| Scikit学习 | 糖尿病预测模型的机器学习库 | Scikit学习 |
| 形状 | 用于医疗决策透明度的可解释AI库 | 形状 |
| 溪流 | 用于构建交互式医疗保健应用程序的Web框架 | 溪流 |
| 熊猫 | 医学数据集的数据操作和分析 | 熊猫 |
| 数值Python | 科学计算和机器学习操作的基本包 | 数值Python |
| Joblib | ML部署的模型序列化和持久化 | Joblib |
| 异步 | 用于实时医疗AI响应的异步编程 | 异步 |
| 派丹蒂克 | 医疗参数输入安全的数据验证 | 派丹蒂克 |
🤝 贡献
欢迎为这个项目捐款!如果您有改进、错误修复或新功能的想法,请随时打开问题或提交拉取请求。
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
🌟 明星历史
如果你发现可解释的糖尿病ml-mcp有用,请考虑给它一颗星⭐ 在GitHub上!
