章节 01
导读 / 主楼:MediLens-AI:融合 RAG 技术的智能医疗助手系统
原作者与来源
- 原作者/维护者: Krishna Jaiswal (kshna11)
- 来源平台: GitHub
- 原始标题: MediLens-AI: AI-Powered Healthcare Assistant using Machine Learning, Google Gemini AI, LangChain, FAISS, and Streamlit
- 原始链接: https://github.com/kshna11/MediLens-AI
- 发布时间: 2026年7月12日
- 项目背景: B.Tech Data Science 学位项目
项目概述
MediLens-AI 是一个面向医疗领域的 AI 驱动助手应用,旨在简化医学报告分析流程并提供智能化的健康洞察。该项目整合了多项前沿技术:机器学习疾病预测、基于 Google Gemini 的生成式 AI、LangChain RAG 框架、FAISS 向量数据库,以及 Streamlit 交互界面,构建了一个功能完整的医疗辅助工具原型。
核心功能模块
1. 糖尿病风险预测(机器学习)
系统使用随机森林算法进行糖尿病风险评估,这是项目的传统机器学习组件:
- 模型选择:随机森林分类器,适合处理医疗数据的特征交互
- 预测置信度:输出概率分数,帮助用户理解预测的可信度
- 个性化建议:基于预测结果生成针对性的健康建议
- 技术栈:Scikit-learn、Pandas、NumPy
该模块展示了如何将经典机器学习应用于医疗筛查场景,作为 AI 辅助诊断的入门功能。
2. 医学报告智能分析(生成式 AI)
这是项目的核心亮点,利用 Google Gemini API 实现医学报告的自动化解读:
PDF 文本提取 使用 PyMuPDF 库从上传的医学报告 PDF 中提取原始文本内容,支持各类医学文档格式。
AI 医学摘要 将提取的文本输入 Gemini 模型,生成结构化的医学摘要,包括:
- 关键指标解读
- 异常值标注
- 整体健康评估
- 后续建议
PDF 报告导出 使用 ReportLab 将 AI 生成的摘要导出为 PDF 格式,便于保存和分享。
3. 医学问答聊天机器人(RAG 架构)
这是项目最具技术深度的模块,实现了完整的检索增强生成(RAG)流程:
文档处理 Pipeline
- 文本分块:将长文档切分为语义连贯的文本片段
- 嵌入生成:使用 Gemini 嵌入模型将文本转换为向量表示
- 向量存储:将嵌入存入 FAISS(Facebook AI Similarity Search)向量数据库
- 语义检索:根据用户问题检索最相关的文本片段
上下文感知回答
系统使用 LangChain 框架协调检索和生成流程:
- 接收用户关于上传报告的问题
- 从 FAISS 中检索相关上下文
- 将上下文注入 Gemini 的提示词
- 生成基于报告内容的个性化回答
这种 RAG 架构确保回答有明确的信息来源,减少大语言模型的幻觉问题,特别适合医疗场景对准确性的要求。
技术架构详解
系统架构图
医学报告 PDF
│
▼
PDF 文本提取 (PyMuPDF)
│
▼
文本分块处理
│
▼
生成向量嵌入 (Gemini)
│
▼
存储至 FAISS 向量数据库
│
┌────────────┴────────────┐
▼ ▼
AI 医学摘要 医学问答聊天机器人
│ │
└────────────┬────────────┘
▼
个性化健康洞察
项目结构
MediLens-AI/
├── ai/ # Gemini API 封装
├── ml/ # 机器学习模块(训练、预测、预处理)
├── rag/ # RAG 组件(嵌入、向量存储、聊天机器人)
├── pages/ # Streamlit 多页面应用
│ ├── Home.py
│ ├── Disease_Prediction.py
│ ├── Report_Analysis.py
│ └── Medical_Chatbot.py
├── utils/ # 工具函数(PDF 读写)
└── app.py # 应用入口
技术选型理由
| 技术 | 用途 | 选择理由 |
|---|---|---|
| Streamlit | 前端界面 | 快速构建数据应用,无需前端开发 |
| Google Gemini | 大语言模型 | 多模态能力,上下文窗口大 |
| LangChain | RAG 框架 | 模块化设计,社区活跃 |
| FAISS | 向量数据库 | 轻量高效,适合本地部署 |
| PyMuPDF | PDF 处理 | 速度快,支持复杂 PDF |
| ReportLab | PDF 生成 | Python 原生,灵活可控 |
部署与使用
本地运行步骤
# 克隆仓库
git clone https://github.com/kshna11/MediLens-AI.git
cd MediLens-AI
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 配置 API 密钥
echo "GEMINI_API_KEY=your_api_key" > .env
# 启动应用
streamlit run app.py
环境要求
- Python 3.8+
- Google Gemini API 密钥
- 推荐:4GB+ 内存(用于本地向量数据库)
技术亮点与创新点
1. 医疗场景下的 RAG 实践
MediLens-AI 展示了 RAG 技术在医疗垂直领域的应用潜力。通过将用户的个人医学报告向量化存储,系统能够提供:
- 基于实际数据的回答,而非通用医学知识
- 可追溯的信息来源,增强可信度
- 个性化程度更高的健康建议
2. 多模态 AI 整合
项目同时利用了 Gemini 的文本生成和嵌入能力,实现了端到端的 AI 流程:从原始 PDF 到结构化摘要,再到交互式问答。
3. 轻量级部署方案
使用 FAISS 而非云端向量数据库(如 Pinecone、Weaviate),降低了部署门槛和运行成本,适合个人开发者和小型团队。
局限性与改进方向
当前局限
- 单一疾病预测:目前仅支持糖尿病预测,疾病覆盖范围有限
- 无 OCR 支持:无法处理扫描版 PDF 或图片格式的报告
- 无用户认证:缺少多用户支持和数据隔离
- 医学准确性:AI 生成的内容需要专业医生审核,不能替代医疗诊断
未来规划
根据项目 README,作者计划增加:
- 多疾病预测支持
- OCR 功能以处理扫描报告
- 语音交互界面
- 医学影像分析(X光、CT等)
- 用户认证和云数据库集成
- 预约推荐系统
- 移动应用版本
项目启示
MediLens-AI 是一个典型的学生项目向实用工具演进的案例,它展示了:
- 技术整合能力:将多个独立技术栈(ML、LLM、RAG、向量 DB)整合为统一产品
- 场景适配思维:针对医疗场景的特殊需求(准确性、可追溯性)选择 RAG 架构
- 快速原型开发:使用 Streamlit 等低代码工具快速验证想法
- 负责任的 AI 设计:明确声明系统仅用于教育目的,不构成医疗建议
对于希望进入 AI 医疗领域的开发者,这是一个很好的入门参考。它展示了从简单的机器学习模型到复杂的 RAG 系统,如何逐步构建功能丰富的 AI 应用。同时,项目也提醒我们,在医疗等高风险领域,AI 系统必须明确其局限性,不能替代专业医疗人员的判断。