一、项目演示视频
二、技术栈
- 前端: Vue3.5 + TypeScript5.7 + Element Plus2.9 + ECharts5.6 + Pinia + Vue Router + Vite6.1 + Axios + Marked
- 后端: Flask + SQLite + Neo4j + 通义千问API + Flask-CORS + PyJWT + python-docx + pdfplumber + openpyxl + neo4j-driver
三、功能模块
【用户端功能】
- 用户管理:注册、登录、个人信息管理、密码修改、头像上传
- 文档浏览:文档列表查看、文档详情查看、文档搜索
- 智能问答:基于知识图谱的智能问答,支持多轮对话、图片上传识别
- 会话管理:创建会话、查看历史会话、删除会话、自动生成标题
- 问答历史:查看问答记录、知识图谱可视化展示、产品信息和生产记录检索展示、关键词提取展示、支持导出Word文档
- 个人中心:个人资料修改、密码修改、头像更换
【管理端功能】
- 数据统计:用户数、文档数、会话数、问答记录数、产品数、生产记录数统计、数据趋势可视化(饼图、折线图)
- 用户管理:用户信息查看、状态管理、密码重置、用户删除
- 文档管理:文档上传(TXT/DOCX/PDF/XLSX)、文档CRUD操作、文档内容查看、AI摘要生成、文档目录管理、MD5去重
- 知识图谱管理:
- 数据同步:从文档中提取实体和关系,同步到Neo4j
- 全量重建:重新构建整个知识图谱
- 增量构建:仅处理未构建图谱的文档
- 任务状态查询:查看图谱构建任务的进度和状态
- 节点搜索:搜索特定实体及其邻居节点
- 知识图谱可视化:
- 交互式图谱展示:使用ECharts力导向图展示节点和关系
- 节点类型过滤:按实体类型筛选节点(16种实体类型)
- 关系类型过滤:按关系类型筛选边(20种关系类型)
- 节点搜索:搜索节点并展示1-3跳邻居关系
- 布局切换:支持力导向布局和圆形布局
- 节点大小:根据连接数动态调整节点大小
- 统计信息:实时显示节点数、关系数、类型分布统计
- 产品信息管理:
- 产品档案CRUD:创建、查询、更新、删除产品基本信息
- 完整数据录入:产品编号、名称、类型、原材料、生产工艺、质量标准、图片等
- 图片上传:支持产品图片上传和管理
- 搜索和筛选:按产品名称或编号搜索
- 级联删除:删除产品时自动删除关联的所有生产记录
- 统计分析:产品数量、产品类型分布统计
- 生产记录管理:
- 生产记录CRUD:创建、查询、更新、删除生产批次记录
- 多图上传:支持每个生产记录上传多张图片(工艺图片和相关图片)
- 关联产品:每个生产记录关联到对应的产品信息
- 详细信息:生产日期、生产线、生产数量、质检员、关键指标、成本、产量等
- 按产品筛选:查看特定产品的所有生产记录
- 关键词搜索:按批次号、生产线等关键词搜索
- 多维度统计:按生产线、质量状态、产品统计分析
【核心技术功能】
- GraphRAG检索增强生成:三路并行检索(知识图谱Top-7 + 产品信息Top-5 + 生产记录Top-5)
- 关键词提取:使用LLM从用户问题中提取关键词(支持历史对话上下文)
- 实体搜索与关系扩展:在知识图谱中搜索实体并扩展邻居关系
- 三元组提取:使用LLM从文档中提取<头实体, 关系, 尾实体>三元组(多线程并发加速文档提取)
- 文档溯源:每个知识三元组关联源文档ID,支持知识追溯
- 多模态问答:支持上传产品图片进行识别和问答(qwen-vl-plus模型)
- 异步任务处理:知识图谱构建任务异步执行,支持实时进度查询
- 文档MD5去重:基于文件MD5哈希检测重复文档,避免重复上传
【知识图谱节点类型(16种)】
- RawMaterial(原材料):原材料实体,如"生鲜牛乳"、"乳清"
- CattleBreed(奶牛品种):奶牛品种,如"荷斯坦牛"、"娟姗牛"
- Product(产品):乳制品产品,如"巴氏杀菌奶"、"酸奶"、"奶酪"
- IntermediateProduct(中间产物):中间产物
- ProcessStep(工艺步骤):生产工艺步骤,如"巴氏杀菌"、"发酵"、"均质"
- Equipment(设备):生产设备,如"板式换热器"、"发酵罐"
- Location(地点):地理位置
- Indicator(指标):质量检测指标,如"脂肪含量"、"蛋白质含量"
- DetectionMethod(检测方法):检测方法
- PersonnelRole(人员角色):人员角色
- Standard(标准):质量标准
- EnvironmentalCondition(环境条件):环境条件,如"温度"、"湿度"
- ProductionLine(生产线):生产线
- Additive(添加剂):食品添加剂,如"益生菌"、"稳定剂"
- Microorganism(微生物):微生物,如"嗜热链球菌"、"保加利亚乳杆菌"
- NutritionalComponent(营养成分):营养成分,如"钙"、"维生素D"
- PackagingMaterial(包装材料):包装材料,如"PET瓶"、"利乐包"
- RiskEvent(风险事件):风险事件
【知识图谱关系类型(20种)】
- INPUT_TO:输入到(原材料输入到工艺步骤)
- OUTPUT_FROM:输出从(产品从工艺步骤产出)
- USES_EQUIPMENT:使用设备(工艺步骤使用设备)
- GENERATES:生成(工艺步骤生成产品)
- FOLLOWS_STANDARD:遵循标准(产品遵循质量标准)
- MONITORS_INDICATOR:监控指标(工艺监控质量指标)
- CONTAINS:包含(产品包含营养成分)
- LOCATED_AT:位于(设备位于地点)
- EXECUTED_BY:由人员执行(工艺由人员执行)
- USES_MATERIAL:使用材料(工艺使用原材料)
- PRODUCES_INTERMEDIATE:产生中间产物(工艺产生中间产物)
- DETECTS_BY:检测方法(通过检测方法检测)
- REQUIRES_CONDITION:需要条件(工艺需要环境条件)
- ADDS_ADDITIVE:添加添加剂(添加剂添加到产品)
- INOCULATES_MICROORGANISM:接种微生物(微生物接种到产品)
- PROVIDES_NUTRIENT:提供营养(营养成分提供营养)
- USES_PACKAGING:使用包装(产品使用包装材料)
- MAY_CAUSE_RISK:可能导致风险(操作可能导致风险事件)
- DOCUMENTED_IN:记录于文档(实体记录于文档,用于文档溯源)
- RELATED_TO:相关(通用相关关系)
【数据库表结构(7张表)】
- user:用户表,存储用户基本信息和权限
- document_folder:文档目录表,存储文档分类目录
- document:文档表,存储上传的乳制品生产相关文档(支持MD5去重)
- conversation:会话表,存储用户的问答会话
- qa_history:问答历史表,存储每轮问答的详细记录(包含知识图谱负载、产品信息和生产记录检索结果)
- product_info:产品信息表,存储产品的档案数据(包含图片)
- production_record:生产记录表,存储生产批次记录(包含多张工艺图片)
四、项目链接
链接: https://pan.baidu.com/s/1JpV-q_SW8JU0Vp0GLO3ziA?pwd=cjdw 提取码: cjdw
- 完整系统源码
(1)前端源码(web-vue)
(2)后端与算法端源码(web-flask) - 项目介绍文档
(1)项目概述
(2)项目技术栈
(3)项目目录结构
(4)系统架构图、功能模块图
(5)数据库表结构详细说明 - 项目启动教程
(1)环境安装教程(视频+文档)
(2)系统启动教程(视频+文档)
