# Medical Dev AI **Repository Path**: david10000/medical-dev-ai ## Basic Information - **Project Name**: Medical Dev AI - **Description**: medical-dev-ai 是一款面向医疗器械领域的多智能体注册审查AI系统,主打医疗器械注册文档合规审查、法规知识问答、智能文档处理,同时可作为通用AI Agent开发框架。项目轻量化、易部署,专为医疗器械注册、合规审查、文档编撰场景打造,解决行业合规繁琐、资料核查低效、法规检索困难等核心痛点。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/david10000/medical-dev-ai - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 7 - **Created**: 2026-05-28 - **Last Updated**: 2026-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: AI, Agent, AI-Framework, Medical-AI, 医疗器械软件研究资料助手 ## README # 医疗器械注册审查智能助手 (Medical Device Review Agent) > **v0.1** - 基于多智能体协作的医疗器械文档审查系统,医疗器械开发知识,开发过程自动化文档输出,具备自主规划、工具使用、逻辑推理能力。 - 也可以作为通用Agent开发框架。 [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.109+-green.svg)](https://fastapi.tiangolo.com/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 🌟 核心功能 ![输入图片说明](screenShot/Home.png) ### 💬 智能对话系统 - **6 种专业 Bot 角色**:合规审查专家、技术文档助手、风险分析师、软件文档专家、临床评价顾问、通用助手 - **会话管理**:创建、删除、重命名、切换会话 - **模型选择**:每个会话可独立选择 LLM 模型(qwen-max、glm-4、deepseek-chat 等) - **持久化存储**:会话数据自动保存到 SQLite 数据库 ![输入图片说明](screenShot/chat.png) ### 🤖 多智能体审查系统 ![输入图片说明](screenShot/Bot.png) - **完整性检查**:验证必交文档是否齐全 - **准确性审查**:基于法规核查内容合规性 - **交叉验证**:跨文档数据一致性比对 - **报告生成**:输出结构化审查报告 ### 📚 RAG 知识库 - **法规检索**:混合搜索(关键词 + 向量语义) - **文档解析**:支持 PDF、DOCX、DOC(含表格提取) - **知识提取**:LLM 结构化提取法规条款 - **向量检索**:FAISS 向量索引,快速语义匹配 ![输入图片说明](screenShot/rag.png) ### 🎨 现代化界面 - **VSCode 风格**:三栏布局,高信息密度 - **响应式设计**:适配不同屏幕尺寸 - **实时交互**:流式输出,即时反馈 ## 🚀 快速开始 ### 环境要求 - **Python**: 3.10 或更高版本 - **操作系统**: Windows 10/11(推荐)、macOS、Linux - **内存**: 至少 4GB RAM - **磁盘空间**: 至少 2GB ### 安装步骤 #### 1. 克隆项目 ```bash git clone https://gitee.com/david10000/medical-dev-ai.git cd medical-dev-ai ``` #### 2. 配置 API Key 编辑 `backend/.env` 文件(从 `.env.example` 复制): ```env DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxx ``` 获取 API Key: [阿里云 DashScope](https://dashscope.console.aliyun.com/) #### 3. 一键启动 **Windows 用户**: ```bash # 双击运行或在命令行执行 start_v2.bat ``` 脚本会自动: - ✅ 检查 Python 环境 - ✅ 创建虚拟环境 - ✅ 安装所有依赖 - ✅ 启动后端和前端 访问 http://localhost:8501 即可使用! #### 4. 手动启动(可选) ```bash # 终端 1: 启动后端 cd backend python -m venv venv venv\Scripts\activate # Windows pip install -r requirements.txt uvicorn app.main:app --reload --port 8000 # 终端 2: 启动前端 cd frontend streamlit run streamlit_app_v2.py --server.port 8501 ``` ## 📖 使用指南 ### 智能对话 1. **选择 Bot 角色**:在左侧导航栏选择适合的助手 2. **创建会话**:点击"➕ 新建会话",设置图标、模型等 3. **发送消息**:在底部输入框输入问题,按 Enter 发送 4. **切换模型**:在会话列表中点击 ⋮,选择不同模型 ### 文档审查 1. **上传文档**:进入"文档审查"页面,上传 PDF/DOCX 文件 2. **启动审查**:点击"开始审查",系统自动分析 3. **查看结果**:审查完成后查看详细报告和法规依据 ### 知识库管理 1. **导入法规**:进入"知识库"页面,上传法规文档 2. **自动解析**:系统自动提取结构和关键条款 3. **检索查询**:使用关键词或自然语言搜索相关法规 ## 🏗️ 技术架构 ### 系统架构图 ``` ┌─────────────────────────────────────────────────────────────┐ │ Frontend (Streamlit) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Home │ │ Chat │ │ Review │ │Knowledge │ │ │ │ Page │ │ Page │ │ Page │ │ Page │ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ └────────────────────────┬────────────────────────────────────┘ │ HTTP/REST API ▼ ┌─────────────────────────────────────────────────────────────┐ │ Backend (FastAPI) │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ API Layer (main.py) │ │ │ │ /api/chat/* /api/review/* /api/knowledge/* │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │ │ │ Chat Engine │ │Review Engine │ │ Knowledge Engine │ │ │ │ │ │ │ │ │ │ │ │ - Session │ │ - Agent │ │ - RAG Search │ │ │ │ - Memory │ │ Workflow │ │ - Vector Store │ │ │ │ - Bot Mgmt │ │ - LangGraph │ │ - FTS5 Search │ │ │ └─────────────┘ └──────────────┘ └──────────────────┘ │ │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ Agent Workflow (LangGraph) │ │ │ │ │ │ │ │ Coordinator → Librarian → Compliance │ │ │ │ ↑ ↓ │ │ │ │ Cross-Check ← Quality Gate │ │ │ │ ↓ │ │ │ │ Auditor → Report │ │ │ └──────────────────────────────────────────────────────┘ │ └────────────────────────┬────────────────────────────────────┘ │ ┌───────────────┼───────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ SQLite │ │ FAISS │ │ DashScope │ │ Database │ │ Vector Index │ │ LLM │ │ │ │ │ │ │ │ - Sessions │ │ - Embeddings │ │ - Qwen-Max │ │ - Messages │ │ - Retrieval │ │ - Embeddings │ │ - Knowledge │ │ - Similarity │ │ - API │ └──────────────┘ └──────────────┘ └──────────────┘ ``` ### 核心组件 | 组件 | 技术栈 | 说明 | |------|--------|------| | **后端框架** | FastAPI | 高性能异步 API | | **Agent 编排** | LangGraph | 有状态图工作流 | | **LLM** | 通义千问 (Qwen) | 阿里云大语言模型 | | **向量数据库** | FAISS | Facebook AI 相似性搜索 | | **关系数据库** | SQLite + FTS5 | 全文搜索支持 | | **前端** | Streamlit | Python Web 框架 | ### Agent 工作流程 ``` Coordinator → Librarian → Compliance → Cross-Check → Quality Gate ↑ │ └── 收敛检测 ────────┘ │ Auditor → END ``` 1. **Coordinator**:任务拆解和调度 2. **Librarian**:文档解析和信息提取 3. **Compliance**:法规检索和合规性审查 4. **Cross-Check**:跨文档一致性验证 5. **Quality Gate**:质量评估和收敛检测 6. **Auditor**:汇总结果生成报告 ### 数据流程图 ``` 用户操作 → API 请求 → 业务逻辑 → 数据存储 → LLM 调用 → 返回结果 │ │ │ │ │ │ │ │ │ │ │ └─ JSON 响应 │ │ │ │ └─ Qwen API │ │ │ └─ SQLite/FAISS │ │ └─ Agent/SKILLs │ └─ FastAPI Router └─ Streamlit UI ``` ### RAG 检索流程 ``` 用户提问 │ ├─→ 关键词搜索 (SQLite FTS5) │ │ │ └─→ 相关法规条款 │ └─→ 向量搜索 (FAISS) │ └─→ 语义相似内容 │ └─→ 合并结果 + 去重 │ └─→ LLM 生成回答 │ └─→ 返回给用户 ``` ## 📁 项目结构 ``` medical-dev-ai/ ├── backend/ # 后端服务 │ ├── app/ │ │ ├── agents/ # 智能体编排 │ │ ├── bots/ # Bot 角色管理 │ │ ├── chat/ # 聊天引擎 │ │ ├── core/ # 核心配置 │ │ ├── skills/ # 技能包 │ │ └── main.py # FastAPI 入口 │ ├── data/ # 数据存储 │ └── requirements.txt # Python 依赖 ├── frontend/ # 前端界面 │ ├── pages/ # 页面组件 │ └── streamlit_app_v2.py # 主应用 ├── start_v2.bat # 一键启动脚本 ├── README.md # 项目说明 └── LICENSE # 开源许可证 ``` ## 🔧 常见问题 ### Q: 如何获取 API Key? A: 访问 [阿里云 DashScope](https://dashscope.console.aliyun.com/),注册后创建 API Key。 ### Q: 支持哪些文档格式? A: PDF、DOCX、DOC。不支持扫描件和图片(需要 OCR 预处理)。 ### Q: 会话数据存在哪里? A: - 会话数据: `backend/data/chroma_db/chat_sessions.db` - 向量索引: `backend/data/vector_index/` - 上传文件: `backend/data/uploads/` ### Q: 如何重置数据? A: 删除 `backend/data/` 目录下的所有文件,重新启动服务。 ### Q: 端口被占用怎么办? A: 修改启动命令中的端口号: ```bash # 后端 uvicorn app.main:app --reload --port 8001 # 前端 streamlit run streamlit_app_v2.py --server.port 8502 ``` ## 📝 开发计划 ### Phase 1: 基础功能(已完成)✅ - [x] 多智能体审查系统 - [x] RAG 知识库 - [x] 智能对话系统 - [x] 会话管理 ### Phase 2: 功能完善(进行中)🚧 - [ ] 用户认证系统 - [ ] 多人协作审查 - [ ] 文档版本对比 - [ ] 报告导出(PDF/Word) ### Phase 3: 生产化(计划中)📋 - [ ] PostgreSQL 数据库 - [ ] Docker 容器化部署 - [ ] 监控和日志系统 - [ ] 性能优化 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 📞 联系方式 - 📧 Email: masterchen10000@gmail.com - 🐛 Issues: [Gitee Issues](https://gitee.com/david10000/medical-dev-ai/issues) - 💬 Discussions: [Gitee Discussions](https://gitee.com/david10000/medical-dev-ai/discussions) --- **Made with ❤️ for Medical Device Industry**