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

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

一、项目演示视频

b站演示视频与部署教程视频(点击这里)
https://www.bilibili.***/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. O***URS_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.***/s/1XYLkb8M72dFk6Z1YGLRQAg?pwd=r7yg 提取码: r7yg

  1. 完整系统源码
    (1)前端源码(web-vue)
    (2)后端与算法端源码(web-flask)
  2. 项目介绍文档
    (1)项目概述
    (2)项目技术栈
    (3)项目目录结构
    (4)系统架构图、功能模块图
    (5)数据库表结构详细说明
  3. 项目启动教程
    (1)环境安装教程(视频+文档)
    (2)系统启动教程(视频+文档)
转载请说明出处内容投诉
CSS教程网 » 基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的医疗健康知识问诊系统(vue+flask+AI算法)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买