基于知识图谱(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接口

三、功能模块

【用户端功能】

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

【管理端功能】

  1. 数据统计:用户数、文档数、会话数、问答记录数统计、趋势分析
  2. 用户管理:用户信息查看、状态管理、密码重置、用户删除
  3. 文档管理:文档上传、文档CRUD操作、文档内容查看、文档下载
  4. 知识图谱管理:
    • 数据同步:从文档中提取实体和关系,同步到Neo4j
    • 全量重建:重新构建整个知识图谱
    • 增量构建:仅处理未构建图谱的文档
    • 任务状态查询:查看图谱构建任务的进度和状态
    • 节点搜索:搜索特定实体及其邻居节点
  5. 知识图谱可视化:
    • 交互式图谱展示:使用ECharts展示节点和关系
    • 节点类型过滤:按实体类型筛选节点(台风、地点、灾害类型等10种类型)
    • 关系类型过滤:按关系类型筛选边(发生于、导致、影响等11种关系)
    • 节点搜索:搜索节点并展示1层邻居关系
    • 布局切换:支持力导向布局和圆形布局
    • 节点连接数展示:显示每个节点的实际连接数(度数)
    • 重复边处理:自动使用曲线区分连接同一对节点的多条边
    • 统计信息:节点数、关系数、类型分布统计
  6. 台风信息管理:
    • 台风档案CRUD:创建、查询、更新、删除历史台风基本信息
    • 完整数据录入:编号、名称、强度、风速、气压、时间、路径、影响区域
    • 搜索和筛选:按台风名称或编号搜索
    • 级联删除:删除台风时自动删除关联的所有灾害案例
    • 统计分析:台风数量、强度分布、经济损失统计
  7. 灾害案例管理:
    • 案例记录CRUD:创建、查询、更新、删除台风灾害案例
    • 关联台风:每个案例关联到对应的台风信息
    • 详细信息:时间、地点、灾害类型、严重程度、损失数据、救援措施
    • 按台风筛选:查看特定台风的所有灾害案例
    • 多维度统计:按地点、灾害类型、严重程度统计分析

【核心技术功能】

  1. GraphRAG检索增强生成:结合知识图谱检索策略
  2. 实体识别:从用户问题中识别台风、地点等关键实体
  3. 关系推理:基于知识图谱的多跳关系推理
  4. 三元组提取:使用LLM从文档中提取<头实体, 关系, 尾实体>三元组
  5. 上下文构建:为LLM构建包含实体描述和关系的结构化上下文
  6. 异步任务处理:知识图谱构建任务异步执行,支持进度查询

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

  1. Typhoon(台风):台风实体,如"台风山竹"
  2. Location(地点):地理位置,如"广东"、"珠海"
  3. DisasterType(灾害类型):灾害类型,如"暴雨"、"洪水"
  4. Damage(损失):灾害造成的损失,如"经济损失"、"人员伤亡"
  5. Infrastructure(基础设施):受影响的基础设施,如"道路"、"桥梁"
  6. PreventiveMeasure(防护措施):防护措施,如"加固堤坝"、"疏散人员"
  7. RescueAction(救援行动):救援行动,如"紧急救援"、"物资发放"
  8. Organization(组织机构):相关组织,如"消防队"、"民政部门"
  9. Document(文档):文档来源
  10. TimePoint(时间点):时间信息,如"2018年9月"

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

  1. OCCURRED_AT:台风发生于地点
  2. HAPPENED_ON:台风发生于时间
  3. CAUSED:台风导致灾害
  4. AFFECTED:灾害影响地点
  5. RESULTED_IN:灾害造成损失
  6. PREVENTED_BY:灾害被防护措施预防
  7. RESCUED_BY:地点被救援行动救援
  8. EXECUTED_BY:救援行动由组织执行
  9. DOCUMENTED_IN:实体记录于文档
  10. LOCATED_IN:地点位于地点(地理层级)
  11. RELATED_TO:通用相关关系

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

  1. user:用户表,存储用户基本信息和权限
  2. document:文档表,存储上传的台风灾害相关文档
  3. conversation:会话表,存储用户的问答会话
  4. qa_history:问答历史表,存储每轮问答的详细记录
  5. typhoon_info:台风基本信息表,存储历史台风的档案数据
  6. typhoon_case:台风灾害案例表,存储具体的灾害发生案例

四、项目链接

链接: https://pan.baidu.com/s/12VF77WaCdpybEterCZO7Gw?pwd=hew2 提取码: hew2

  1. 完整系统源码
    (1)前端源码(web-vue)
    (2)后端与算法端源码(web-flask)
  2. 项目介绍文档
    (1)项目概述
    (2)项目技术栈
    (3)项目目录结构
    (4)系统架构图、功能模块图
    (5)数据库表结构详细说明
  3. 项目启动教程
    (1)环境安装教程(视频+文档)
    (2)系统启动教程(视频+文档)
相关推荐
AngelPP3 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年4 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼4 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS4 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区5 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈5 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang6 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
shengjk17 小时前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能
西门老铁9 小时前
🦞OpenClaw 让 MacMini 脱销了,而我拿出了6年陈的安卓机
人工智能