基于知识图谱与 RAG 的医疗问答系统

融合中文医疗知识图谱与 RAG 的智能问答系统,8800+ 疾病百科、BM25+TF-IDF 混合检索与 vis.js 子图探索,含症状反向推断,适合 NLP 与知识图谱类毕业设计。

评分:4.8/5.0
销量:43
发布:6/23/2026
难度:L3 高级

获取完整源码

演示视频仅作效果参考。完整源码、项目说明与运行答疑,请私聊沟通(适合毕业设计 / 课程设计 / 课设参考)。

获取完整源码观看演示视频
含项目说明文档,便于对照学习
可本地运行,适合课设演示
沟通获取后可咨询运行问题

项目封面

截图 1

项目概览

本系统基于 QASystemOnMedicalKG、SymMap、HealthKnowledgeGraph 等多源真实医疗数据构建中文医疗知识图谱,采用 Flask + SQLite + vis.js 技术栈,融合 BM25 + TF-IDF 混合检索增强生成(RAG)与意图分类器。提供智能问答(展示识别实体、参考来源与图谱推理路径)、交互式知识图谱子图探索、8800+ 疾病百科浏览、多症状反向推断可能疾病,以及管理员数据统计与用户管理,适合作为毕业设计中知识图谱构建、RAG 检索增强与医疗 NLP 问答方向。

项目说明

基于知识图谱与 RAG 的医疗问答系统

项目简介

本系统是一个融合中文医疗知识图谱与检索增强生成(RAG)的智能医疗问答 Web 系统。系统基于多源真实医疗数据构建知识图谱(实体-关系三元组),结合 BM25 + TF-IDF 混合检索与意图分类器,为用户提供可解释的医疗健康咨询服务。


功能模块

模块功能说明
智能问答用户输入医疗问题,系统自动识别意图,融合知识图谱结构化推理与 RAG 文档检索,生成综合回答,展示识别实体、参考来源与图谱推理路径
知识图谱交互式子图可视化探索(vis.js),支持中心实体选择、深度跳数配置、实体搜索,点击节点查看详情并设为新中心
疾病百科8800+ 疾病条目浏览与搜索,支持分页、关键词检索,点击查看疾病完整信息(概述、症状、药物、检查、科室、饮食等)
症状推断输入多个症状,基于知识图谱反向推理可能疾病,提供 IDF 加权匹配度排序与推理路径展示
问答历史登录用户可查看个人问答记录,包含问题、回答、意图、时间
管理后台管理员专属页面,展示系统数据统计(ECharts 图表)、实体类型分布、关系类型分布、用户列表管理
用户系统支持用户注册、登录、退出,区分普通用户与管理员角色

数据来源

所有数据均为真实公开数据集,无 Mock 生成。

数据集文件路径说明
QASystemOnMedicalKGdata/raw/QASystemOnMedicalKG/data/medical.json8808 条中文疾病知识数据,含症状、药物、检查、科室、饮食、预防、病因等
SymMap v2.0data/raw/symmap/*.xlsx中医药领域症状、疾病、中药、证候数据,含 TCM 症状定义与药性描述
HealthKnowledgeGraphdata/raw/HealthKnowledgeGraph/DerivedKnowledgeGraph_final.csv157 种英文疾病-症状概率关系数据
cMedQA2data/raw/cMedQA2/中文社区医疗问答数据(可选,需手动下载 question.zip / answer.zip)

标准版目录结构

python-zhishi-tupu-rag-wenda/
├── backend/                    # Flask 后端
│   ├── __init__.py
│   ├── app.py                  # 应用入口与路由定义
│   ├── config.py               # 全局配置(路径、密钥、参数)
│   ├── database.py             # SQLite 数据库管理(建表、CRUD、统计)
│   ├── models/                 # 数据模型目录
│   ├── routes/                 # 路由模块目录
│   ├── services/               # 业务服务
│   │   ├── __init__.py
│   │   ├── kg_service.py       # 知识图谱查询服务(实体识别、子图、推理)
│   │   ├── qa_service.py       # 综合问答服务(意图识别 + KG + RAG)
│   │   └── rag_service.py      # RAG 检索增强生成服务(BM25 + TF-IDF)
│   └── utils/                  # 工具函数
│       ├── __init__.py
│       ├── kg_utils.py         # 知识图谱常量(实体类型优先级、意图消歧映射)
│       └── text_utils.py       # 文本处理工具(分词、实体校验、噪声过滤)
├── data/                       # 数据与数据库
│   ├── medical_qa.db           # SQLite 数据库(自动生成)
│   ├── processed/              # 处理后的索引文件(自动生成)
│   │   ├── bm25_corpus.pkl     # BM25 索引
│   │   ├── intent_classifier.pkl # 意图分类器模型
│   │   ├── rag_doc_ids.json    # RAG 文档 ID 映射
│   │   ├── rag_embeddings.npz  # TF-IDF 稀疏向量矩阵
│   │   └── tfidf_vectorizer.pkl # TF-IDF 向量器
│   └── raw/                    # 原始数据集
│       ├── HealthKnowledgeGraph/
│       ├── QASystemOnMedicalKG/
│       ├── cMedQA2/
│       └── symmap/
├── frontend/                   # Bootstrap 前端
│   ├── static/
│   │   ├── css/
│   │   │   └── style.css       # 自定义样式
│   │   └── js/
│   │       ├── chat.js         # 智能问答页交互
│   │       ├── common.js       # 全局工具函数
│   │       ├── diseases.js     # 疾病百科页交互
│   │       ├── kg.js           # 知识图谱页交互
│   │       └── symptom_check.js # 症状推断页交互
│   └── templates/              # HTML 模板
│       ├── admin.html          # 管理后台
│       ├── base.html           # 基础模板(导航栏、CDN)
│       ├── chat.html           # 智能问答
│       ├── diseases.html       # 疾病百科
│       ├── history.html        # 问答历史
│       ├── index.html          # 首页
│       ├── kg.html             # 知识图谱
│       ├── login.html          # 登录
│       ├── register.html       # 注册
│       └── symptom_check.html  # 症状推断
├── scripts/                    # 数据构建脚本
│   ├── build_knowledge_graph.py # 构建知识图谱(导入多源数据、构建反向关系)
│   ├── build_rag_index.py      # 构建 RAG 索引(文档生成、TF-IDF、BM25、意图分类器)
│   ├── import_cmedqa.py        # 导入 cMedQA2 真实问答数据
│   └── init_all.py             # 一键全量初始化
├── tests/                      # 测试
│   ├── __init__.py
│   └── test_system.py          # 系统端到端测试
├── 运行步骤必看/
│   └── window.md               # Windows 运行步骤说明
├── mac_run.sh                  # macOS/Linux 一键启动脚本
├── window_run.bat              # Windows 一键启动脚本
├── requirements.txt            # Python 依赖包清单
├── run.py                      # 应用启动入口
├── 训练手册.md                  # 意图分类器训练手册
├── 项目说明.md                  # 本文件
└── README.md                   # 项目简介

技术栈

类别技术
后端Python 3.12 + Flask 3.0
数据库SQLite 3
前端HTML5 + Bootstrap 5.3 + Bootstrap Icons + ECharts 5.5
知识图谱多源医疗数据构建(实体-关系三元组),vis.js 网络可视化
RAG 检索BM25 + TF-IDF 稀疏向量混合检索
意图识别scikit-learn LogisticRegression + TF-IDF Pipeline
中文分词jieba
密码安全Werkzeug pbkdf2:sha256

环境要求

项目要求
Python3.12
操作系统Windows / macOS / Linux
内存建议 4GB 以上(索引构建时使用)
磁盘约 800MB(含依赖、数据集和数据库)
浏览器Chrome / Firefox / Safari / Edge 现代版本

账号信息

角色用户名密码
管理员adminadmin123

管理员拥有系统管理页面访问权限,可查看数据统计与用户列表。新注册用户默认为普通用户角色。

获取完整源码

技术分类

包含内容

完整源码
项目说明文档
演示材料

适合方向

适合人工智能、软件工程、生物医学信息学专业毕业设计中知识图谱、RAG 问答与中文医疗 NLP 方向。

关于 AI源码

AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。

QQ: 861077046
邮箱: 861077046@qq.com
已帮助 43+ 位同学完成选题参考
问能不能做我的题目

相关推荐

查看全部 →
社区医疗服务可视化系统
高级

社区医疗服务可视化系统

Spring Boot+Vue2 社区医疗服务可视化管理系统,面向社区医疗机构,含患者管理、预约挂号、病历药品管理与 ECharts 数据统计,集成 Shiro 权限与百度 AI 辅助,适合 Java 医疗信息化毕业设计。

SpringBootVue2MySQL
4.876
大学生在线焦虑测试系统
高级

大学生在线焦虑测试系统

专为大学生设计的在线心理健康评估平台,Spring Boot 3+Vue3 实现焦虑测评、在线咨询与个性化建议,支持学生、医生、管理员三角色,含 JWT 认证与 ECharts 结果分析,适合 Java 心理健康类毕业设计。

SpringBootVue2MySQL
4.833
社区医院儿童健康信息管理系统
高级

社区医院儿童健康信息管理系统

Spring Boot 3+Vue 3 社区医院儿童健康信息管理系统,支持儿童档案、健康测评、疫苗预约与在线咨询,JWT 认证含管理员、医生与普通用户三角色,适合 Java 医疗健康类毕业设计。

SpringBootVue2MySQL
4.827
AI在线问诊平台
高级

AI在线问诊平台

基于若依框架的 AI 在线问诊平台,管理端、医生端与患者端三端分离,支持 WebSocket 即时聊天、AI 辅助诊断与 ECharts 数据可视化,Spring Boot+Vue2 技术栈,适合 Java 医疗 AI 毕业设计。

SpringBootVue2MySQL
4.892
社区医院儿童健康信息管理系统(java)
高级

社区医院儿童健康信息管理系统(java)

Spring Boot 3+Vue3 社区医院儿童健康档案管理平台,含儿童档案录入、健康数据统计、就诊记录、疫苗接种与成长曲线追踪,JWT 认证与医生工作台,适合 Java 社区医疗类毕业设计。

SpringBootVue2MySQL
4.836
心理健康教育小程序
进阶

心理健康教育小程序

微信小程序原生开发的心理健康教育与自助服务系统,涵盖情绪管理、压力应对、正念冥想、心理测评与自助工具箱等模块,纯前端 Mock 数据实现,适合心理健康主题毕业设计。

小程序
4.854