基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的植物病害知识问答系统(vue+flask+AI算法)
一、项目演示视频
植物病害知识问答系统
二、技术栈
前端:Vue3 + TypeScript + Element Plus + ECharts + Pinia + Vue Router
后端+算法端:Flask + SQLite + Flask-CORS + PyJWT + Neo4j + Qwen API接口
三、功能模块
二、功能模块
【用户端功能】
- 用户管理:注册、登录、个人信息管理、密码修改、头像上传
- 文档浏览:文档列表查看、文档详情查看、文档搜索
- 智能问答:基于知识图谱的智能问答,支持多轮对话、图片上传识别
- 会话管理:创建会话、查看历史会话、删除会话、自动生成标题
- 问答历史:查看问答记录、相关实体展示、病害信息和案例检索展示、知识图谱上下文展示
- 个人中心:个人资料修改、密码修改、头像更换
【管理端功能】
- 数据统计:用户数、文档数、会话数、问答记录数统计、趋势分析
- 用户管理:用户信息查看、状态管理、密码重置、用户删除
- 文档管理:文档上传、文档CRUD操作、文档内容查看、文档下载
- 知识图谱管理:
- 数据同步:从文档中提取实体和关系,同步到Neo4j
- 全量重建:重新构建整个知识图谱
- 增量构建:仅处理未构建图谱的文档
- 任务状态查询:查看图谱构建任务的进度和状态
- 节点搜索:搜索特定实体及其邻居节点
- 知识图谱可视化:
- 交互式图谱展示:使用ECharts展示节点和关系
- 节点类型过滤:按实体类型筛选节点(病害、植物、病原体等10种类型)
- 关系类型过滤:按关系类型筛选边(侵染、产生、预防等11种关系)
- 节点搜索:搜索节点并展示1层邻居关系
- 布局切换:支持力导向布局和圆形布局
- 节点连接数展示:显示每个节点的实际连接数(度数)
- 重复边处理:自动使用曲线区分连接同一对节点的多条边
- 统计信息:节点数、关系数、类型分布统计
- 植物病害信息管理:
- 病害档案CRUD:创建、查询、更新、删除植物病害基本信息
- 完整数据录入:编号、名称(中英文)、病原体类型、症状、防治方法、图片等
- 图片上传:支持病害图片上传和管理
- 搜索和筛选:按病害名称或编号搜索
- 级联删除:删除病害时自动删除关联的所有案例
- 统计分析:病害数量、病原体类型分布、经济损失统计
- 病害案例管理:
- 案例记录CRUD:创建、查询、更新、删除植物病害案例
- 多图上传:支持每个案例上传多张图片
- 关联病害:每个案例关联到对应的病害信息
- 详细信息:时间、地点、植物类型、严重程度、损失数据、治疗措施
- 按病害筛选:查看特定病害的所有案例
- 关键词搜索:按案例标题、地点、植物类型搜索
- 多维度统计:按地点、植物类型、严重程度统计分析
【核心技术功能】
- GraphRAG检索增强生成:结合知识图谱检索策略和关系数据库检索
- 实体识别:从用户问题中识别病害、植物、病原体等关键实体
- 关系推理:基于知识图谱的多跳关系推理
- 三元组提取:使用LLM从文档中提取<头实体, 关系, 尾实体>三元组
- 上下文构建:为LLM构建包含实体描述和关系的结构化上下文
- 病害信息检索:从关系数据库检索病害基本信息和案例
- 图片识别问答:支持上传病害图片进行识别和问答
- 异步任务处理:知识图谱构建任务异步执行,支持进度查询
【知识图谱节点类型(10种)】
- Disease(病害):植物病害实体,如"稻瘟病"
- Plant(植物):植物实体,如"水稻"、“小麦”
- Pathogen(病原体):病原体实体,如"真菌"、“细菌”
- Symptom(症状):病害症状,如"梭形病斑"、“叶片枯黄”
- Medicine(药剂):防治药剂,如"三环唑"、“稻瘟灵”
- Prevention(防治措施):防治方法,如"选用抗病品种"
- Location(地点):地理位置,如"华南"、“全国各稻区”
- Organization(组织机构):相关组织,如"农业部门"
- Document(文档):文档来源
- TimePoint(时间点):时间信息,如"春季"、“高温高湿季节”
【知识图谱关系类型(11种)】
- INFECTS:病害侵染植物
- PRODUCES:病害产生症状
- USES:使用药剂治疗
- PREVENTS:防治措施预防病害
- OCCURS_AT:病害发生于地点
- OCCURS_IN:病害发生于时间
- DISTRIBUTES_IN:病害分布于地点
- DEVELOPED_BY:药剂由组织研发
- DOCUMENTED_IN:实体记录于文档
- LOCATED_IN:地点位于地点(地理层级)
- RELATED_TO:通用相关关系
【数据库表结构(6张表)】
- user:用户表,存储用户基本信息和权限
- document:文档表,存储上传的植物病害相关文档
- conversation:会话表,存储用户的问答会话
- qa_history:问答历史表,存储每轮问答的详细记录(包含病害信息和案例检索结果)
- plant_disease:植物病害基本信息表,存储病害的档案数据(包含图片)
- disease_case:病害案例表,存储具体的病害发生案例(包含多张图片)
四、项目链接
链接: https://pan.baidu.com/s/1fdkxDpm53GxOTdWa4oShMA?pwd=z51j 提取码: z51j
- 完整系统源码
(1)前端源码(web-vue)
(2)后端与算法端源码(web-flask) - 项目介绍文档
(1)项目概述
(2)项目技术栈
(3)项目目录结构
(4)系统架构图、功能模块图
(5)数据库表结构详细说明 - 项目启动教程
(1)环境安装教程(视频+文档)
(2)系统启动教程(视频+文档)
