基于 Milvus 向量数据库和中文文本向量化模型构建的医疗病例智能检索系统,支持通过症状描述快速检索相似病例。
- 支持中文症状描述的语义搜索
- 基于年龄的智能过滤
- 实时病例统计和可视化
- 年龄分布和诊断趋势分析
- 批量病例数据生成
- 高性能向量检索
- 后端:Python, Flask
- 数据库:Milvus
- 向量模型:sentence-transformers
- 前端:HTML, JavaScript, Chart.js
- 环境管理:python-dotenv
- Python 3.8+
- Milvus 2.0+
- 至少 8GB RAM
- 支持 CUDA 的 GPU(可选,用于加速模型推理)
# 使用 Docker 安装 Milvus
docker-compose up -dgit clone https://github.com/wwfalcon/milvus_healthcare.git
cd milvus_healthcarepip install -r requirements.txt# 复制环境变量模板
cp .env_sample .env
# 编辑 .env 文件,设置你的配置
vim .env# 生成测试数据
python generate_data.py# 启动 Web 服务
python app.py在 .env 文件中配置以下参数:
MILVUS_HOST: Milvus 服务器地址MILVUS_PORT: Milvus 服务器端口MODEL_NAME: 文本向量化模型名称TOTAL_CASES: 要生成的病例总数BATCH_SIZE: 批量处理大小AGE_GROUP_DISTRIBUTION: 年龄组分布DEFAULT_MIN_AGE: 默认最小年龄DEFAULT_MAX_DISTANCE: 最大距离阈值SEARCH_LIMIT: 搜索结果限制NPROBE: 搜索范围参数
python generate_data.py此命令将:
- 连接 Milvus 数据库
- 初始化文本向量化模型
- 生成指定数量的病例数据
- 将数据插入到 Milvus 中
python patient_search.py "症状描述" [最小年龄] [最小相似度]示例:
python patient_search.py "发热咳嗽" 60 0.8访问 http://localhost:5000 使用 Web 界面:
- 输入症状描述进行搜索
- 查看搜索结果和统计信息
- 分析年龄分布和诊断趋势
milvus_healthcare/
├── app.py # Web 服务主程序
├── generate_data.py # 数据生成脚本
├── patient_search.py # 病例搜索模块
├── requirements.txt # 依赖包列表
├── .env_sample # 环境变量模板
├── .env # 环境变量配置
├── static/ # 静态资源
│ └── css/
│ └── style.css # 样式文件
└── templates/ # HTML 模板
└── index.html # 主页面模板
- 使用批量处理减少数据库操作
- 实现多进程并行处理
- 优化向量搜索参数
- 使用 GPU 加速模型推理
- 首次运行需要下载模型,可能需要较长时间
- 确保 Milvus 服务正常运行
- 根据实际硬件配置调整批处理大小
- 定期备份数据库数据
- Fork 项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建 Pull Request
MIT License
- 作者:Gavin Wang
- 邮箱:wwfalcon@gmail.com
- 项目地址:https://github.com/wwfalcon/milvus_healthcare




