基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的医疗健康知识问诊系统(vue+flask+AI算法)

一、项目演示视频

b站演示视频与部署教程视频(点击这里)

https://www.bilibili.com/video/BV19dCBB6EfU/?share_source=copy_web\&vd_source=31c839f46a9a845dd6dd641cbd5c2ac1

二、技术栈

前端: Vue3 + TypeScript + Element Plus + ECharts + Pinia + Vue Router

后端+算法端: Flask + SQLite + Flask-CORS + PyJWT + Neo4j + Qwen API接口

三、功能模块

【用户端功能】

  1. 用户管理:注册、登录、个人信息管理、密码修改、头像上传
  2. 文档浏览:文档列表查看、文档详情查看、文档搜索
  3. 智能问答:基于知识图谱的智能问答,支持多轮对话、图片上传识别
  4. 会话管理:创建会话、查看历史会话、删除会话、自动生成标题
  5. 问答历史:查看问答记录、相关实体展示、疾病信息和病历案例检索展示、知识图谱上下文展示
  6. 个人中心:个人资料修改、密码修改、头像更换

【管理端功能】

  1. 数据统计:用户数、文档数、会话数、问答记录数统计、趋势分析
  2. 用户管理:用户信息查看、状态管理、密码重置、用户删除
  3. 文档管理:文档上传、文档CRUD操作、文档内容查看、文档下载
  4. 知识图谱管理:
    • 数据同步:从文档中提取实体和关系,同步到Neo4j
    • 全量重建:重新构建整个知识图谱
    • 增量构建:仅处理未构建图谱的文档
    • 任务状态查询:查看图谱构建任务的进度和状态
    • 节点搜索:搜索特定实体及其邻居节点
  5. 知识图谱可视化:
    • 交互式图谱展示:使用ECharts展示节点和关系
    • 节点类型过滤:按实体类型筛选节点(疾病、患者、病原体等12种类型)
    • 关系类型过滤:按关系类型筛选边(诊断为、由...引起、表现症状等12种关系)
    • 节点搜索:搜索节点并展示1层邻居关系
    • 布局切换:支持力导向布局和圆形布局
    • 节点连接数展示:显示每个节点的实际连接数(度数)
    • 重复边处理:自动使用曲线区分连接同一对节点的多条边
    • 统计信息:节点数、关系数、类型分布统计
  6. 疾病信息管理:
    • 疾病档案CRUD:创建、查询、更新、删除疾病基本信息
    • 完整数据录入:编号(ICD-10)、名称(中英文)、病原体、症状、治疗方案、图片等
    • 图片上传:支持疾病图片上传和管理
    • 搜索和筛选:按疾病名称或编号搜索
    • 级联删除:删除疾病时自动删除关联的所有病历
    • 统计分析:疾病数量、病原体类型分布、严重程度统计
  7. 病历案例管理:
    • 病历记录CRUD:创建、查询、更新、删除医疗病历案例
    • 多图上传:支持每个病历上传多张图片
    • 关联疾病:每个病历关联到对应的疾病信息
    • 详细信息:就诊日期、就诊医院、患者信息、临床表现、检查结果、诊疗信息
    • 按疾病筛选:查看特定疾病的所有病历
    • 关键词搜索:按病历标题、医院等关键词搜索
    • 多维度统计:按医院、患者年龄、严重程度统计分析

【核心技术功能】

  1. GraphRAG检索增强生成:结合知识图谱检索策略和关系数据库检索
  2. 实体识别:从用户问题中识别疾病、患者、病原体等关键实体
  3. 关系推理:基于知识图谱的多跳关系推理
  4. 三元组提取:使用LLM从文档中提取<头实体, 关系, 尾实体>三元组
  5. 上下文构建:为LLM构建包含实体描述和关系的结构化上下文
  6. 疾病信息检索:从关系数据库检索疾病基本信息和病历案例
  7. 图片识别问答:支持上传病症图片进行识别和问答
  8. 异步任务处理:知识图谱构建任务异步执行,支持进度查询

【知识图谱节点类型(12种)】

  1. Disease(疾病):疾病实体,如"流行性感冒"
  2. Patient(患者):患者实体
  3. Pathogen(病原体):病原体实体,如"流感病毒"、"细菌"
  4. Symptom(症状):症状实体,如"发热"、"咳嗽"
  5. Treatment(治疗方法):治疗方法实体,如"抗病毒治疗"
  6. BodyPart(身体部位):身体部位/器官系统,如"呼吸道"、"肺部"
  7. Examination(检查项目):检查项目,如"血常规"、"CT检查"
  8. RiskFactor(危险因素):危险因素,如"吸烟"、"免疫力低下"
  9. Drug(药物):药物实体,如"奥司他韦"、"阿莫西林"
  10. Department(科室):医疗科室,如"呼吸内科"、"感染科"
  11. Document(文档):文档来源
  12. TimePoint(时间点):时间信息,如"冬春季"、"发病初期"

【知识图谱关系类型(12种)】

  1. DIAGNOSED_AS:患者被诊断为某疾病
  2. CAUSED_BY:疾病由病原体引起
  3. SHOWS_SYMPTOM:疾病表现症状
  4. AFFECTS_BODYPART:疾病影响身体部位
  5. PREVENTED_BY:疾病被预防措施预防
  6. TREATED_WITH:疾病用某药物/方法治疗
  7. REQUIRES_EXAMINATION:疾病需要某检查
  8. OCCURS_AT:发生于时间
  9. AGGRAVATED_BY:疾病被危险因素加重
  10. DOCUMENTED_IN:实体记录于文档
  11. MANAGED_BY:疾病由某科室管理
  12. RELATED_TO:通用相关关系

【数据库表结构(6张表)】

  1. user:用户表,存储用户基本信息和权限
  2. document:文档表,存储上传的医疗相关文档
  3. conversation:会话表,存储用户的问答会话
  4. qa_history:问答历史表,存储每轮问答的详细记录(包含疾病信息和病历案例检索结果)
  5. disease_info:疾病信息表,存储疾病的档案数据(包含图片)
  6. medical_case:病历案例表,存储医疗病历案例(包含多张图片)

四、项目链接

链接: https://pan.baidu.com/s/1XYLkb8M72dFk6Z1YGLRQAg?pwd=r7yg 提取码: r7yg

  1. 完整系统源码
    (1)前端源码(web-vue)
    (2)后端与算法端源码(web-flask)
  2. 项目介绍文档
    (1)项目概述
    (2)项目技术栈
    (3)项目目录结构
    (4)系统架构图、功能模块图
    (5)数据库表结构详细说明
  3. 项目启动教程
    (1)环境安装教程(视频+文档)
    (2)系统启动教程(视频+文档)
相关推荐
Mintopia2 小时前
Trae Coding - 「Excel 秒变海报」—— 上传 CSV,一句话生成可打印信息图。
前端·人工智能·trae
大千AI助手2 小时前
多叉树:核心概念、算法实现与全领域应用
人工智能·算法·决策树·机器学习··多叉树·大千ai助手
无妄无望2 小时前
ragflow代码学习切片方式(1)docling_parser.py
人工智能·python·学习
努力的光头强2 小时前
《智能体设计模式》从零基础入门到精通,看这一篇就够了!
大数据·人工智能·深度学习·microsoft·机器学习·设计模式·ai
2501_941149113 小时前
人工智能驱动下的边缘物联网革新,打造未来全球智能互联新格局
人工智能·物联网
没头脑的男大3 小时前
Unet+Transformer脑肿瘤分割检测
人工智能·深度学习·transformer
AI即插即用3 小时前
即插即用涨点系列(十四)2025 SOTA | Efficient ViM:基于“隐状态混合SSD”与“多阶段融合”的轻量级视觉 Mamba 新标杆
人工智能·pytorch·深度学习·计算机视觉·视觉检测·transformer
点灯小铭3 小时前
基于单片机的程控放大器设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
1***81533 小时前
免费的自然语言处理教程,NLP入门
人工智能·自然语言处理