基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的台风灾害知识问答系统(vue+flask+AI算法)
一、项目演示视频
基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的台风灾害知识问答系统(vue+flask+AI算法)
二、技术栈
前端:Vue3 + TypeScript + Element Plus + ECharts + Pinia + Vue Router
后端+算法端:Flask + SQLite + Flask-CORS + PyJWT + Neo4j + python-docx + PyPDF2 + Qwen API接口
三、功能模块
【用户端功能】
- 用户管理:注册、登录、个人信息管理、密码修改、头像上传
- 文档浏览:文档列表查看、文档详情查看、文档搜索
- 智能问答:基于知识图谱的智能问答,支持多轮对话
- 会话管理:创建会话、查看历史会话、删除会话
- 问答历史:查看问答记录、相关实体展示、知识图谱上下文展示
- 个人中心:个人资料修改、密码修改、头像更换
【管理端功能】
- 数据统计:用户数、文档数、会话数、问答记录数统计、趋势分析
- 用户管理:用户信息查看、状态管理、密码重置、用户删除
- 文档管理:文档上传、文档CRUD操作、文档内容查看、文档下载
- 知识图谱管理:
- 数据同步:从文档中提取实体和关系,同步到Neo4j
- 全量重建:重新构建整个知识图谱
- 增量构建:仅处理未构建图谱的文档
- 任务状态查询:查看图谱构建任务的进度和状态
- 节点搜索:搜索特定实体及其邻居节点
- 知识图谱可视化:
- 交互式图谱展示:使用ECharts展示节点和关系
- 节点类型过滤:按实体类型筛选节点(台风、地点、灾害类型等10种类型)
- 关系类型过滤:按关系类型筛选边(发生于、导致、影响等11种关系)
- 节点搜索:搜索节点并展示1层邻居关系
- 布局切换:支持力导向布局和圆形布局
- 节点连接数展示:显示每个节点的实际连接数(度数)
- 重复边处理:自动使用曲线区分连接同一对节点的多条边
- 统计信息:节点数、关系数、类型分布统计
- 台风信息管理:
- 台风档案CRUD:创建、查询、更新、删除历史台风基本信息
- 完整数据录入:编号、名称、强度、风速、气压、时间、路径、影响区域
- 搜索和筛选:按台风名称或编号搜索
- 级联删除:删除台风时自动删除关联的所有灾害案例
- 统计分析:台风数量、强度分布、经济损失统计
- 灾害案例管理:
- 案例记录CRUD:创建、查询、更新、删除台风灾害案例
- 关联台风:每个案例关联到对应的台风信息
- 详细信息:时间、地点、灾害类型、严重程度、损失数据、救援措施
- 按台风筛选:查看特定台风的所有灾害案例
- 多维度统计:按地点、灾害类型、严重程度统计分析
【核心技术功能】
- GraphRAG检索增强生成:结合知识图谱检索策略
- 实体识别:从用户问题中识别台风、地点等关键实体
- 关系推理:基于知识图谱的多跳关系推理
- 三元组提取:使用LLM从文档中提取<头实体, 关系, 尾实体>三元组
- 上下文构建:为LLM构建包含实体描述和关系的结构化上下文
- 异步任务处理:知识图谱构建任务异步执行,支持进度查询
【知识图谱节点类型(10种)】
- Typhoon(台风):台风实体,如"台风山竹"
- Location(地点):地理位置,如"广东"、“珠海”
- DisasterType(灾害类型):灾害类型,如"暴雨"、“洪水”
- Damage(损失):灾害造成的损失,如"经济损失"、“人员伤亡”
- Infrastructure(基础设施):受影响的基础设施,如"道路"、“桥梁”
- PreventiveMeasure(防护措施):防护措施,如"加固堤坝"、“疏散人员”
- RescueAction(救援行动):救援行动,如"紧急救援"、“物资发放”
- Organization(组织机构):相关组织,如"消防队"、“民政部门”
- Document(文档):文档来源
- TimePoint(时间点):时间信息,如"2018年9月"
【知识图谱关系类型(11种)】
- OCCURRED_AT:台风发生于地点
- HAPPENED_ON:台风发生于时间
- CAUSED:台风导致灾害
- AFFECTED:灾害影响地点
- RESULTED_IN:灾害造成损失
- PREVENTED_BY:灾害被防护措施预防
- RESCUED_BY:地点被救援行动救援
- EXECUTED_BY:救援行动由组织执行
- DOCUMENTED_IN:实体记录于文档
- LOCATED_IN:地点位于地点(地理层级)
- RELATED_TO:通用相关关系
【数据库表结构(6张表)】
- user:用户表,存储用户基本信息和权限
- document:文档表,存储上传的台风灾害相关文档
- conversation:会话表,存储用户的问答会话
- qa_history:问答历史表,存储每轮问答的详细记录
- typhoon_info:台风基本信息表,存储历史台风的档案数据
- typhoon_case:台风灾害案例表,存储具体的灾害发生案例
四、项目链接
链接: https://pan.baidu.com/s/12VF77WaCdpybEterCZO7Gw?pwd=hew2 提取码: hew2
- 完整系统源码
(1)前端源码(web-vue)
(2)后端与算法端源码(web-flask) - 项目介绍文档
(1)项目概述
(2)项目技术栈
(3)项目目录结构
(4)系统架构图、功能模块图
(5)数据库表结构详细说明 - 项目启动教程
(1)环境安装教程(视频+文档)
(2)系统启动教程(视频+文档)