# knowledge graph **Repository Path**: czmblog/knowledge-graph ## Basic Information - **Project Name**: knowledge graph - **Description**: 知识图谱智能问答系统 系统简介 知识图谱智能问答系统是一款基于大语言模型(LLM)与知识图谱技术的专业领域智能问答平台。系统通过构建领域知识图谱,结合自然语言处理技术,为用户提供精准、可溯源的智能问答服务。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2026-01-06 - **Last Updated**: 2026-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 知识图谱智能问答系统 (KG-QA) 基于大语言模型(LLM)与知识图谱技术深度融合的专业领域智能问答平台。 ![登录页面](doc/screenshots/login.png) ## 项目简介 知识图谱智能问答系统是一款将大语言模型与知识图谱技术深度结合的智能问答平台。系统通过自动化构建领域知识图谱,结合自然语言处理技术,为用户提供精准、可溯源的智能问答服务。 ### 核心特性 - **智能问答**:基于知识图谱的精准问答,答案可追溯到具体知识节点 - **知识图谱可视化**:交互式图谱展示,支持节点搜索与关系探索 - **文档自动解析**:支持 PDF、TXT、DOCX 格式文档的自动知识抽取 - **三元组提取**:自动从文档中提取实体和关系,构建知识三元组 - **用户满意度反馈**:支持对回答进行满意/不满意评价 - **多服务状态监控**:实时监控 API、Neo4j、LLM 服务状态 ## 系统截图 ### 控制台首页 系统概览与快捷操作入口,实时显示知识节点数、关系数、文档数量及服务状态。 ![控制台首页](doc/screenshots/home.png) ### 智能问答 基于大语言模型与知识图谱的专业领域智能问答,支持历史记录、相关知识推荐和延伸知识探索。 ![智能问答](doc/screenshots/qa.png) ### 知识图谱 可视化知识图谱管理与探索,支持实体搜索、关系筛选和手动添加知识。 ![知识图谱](doc/screenshots/graph.png) ### 文档管理 上传文档自动提取知识到图谱,支持 PDF、TXT、DOCX 格式,最大 50MB。 ![文档管理](doc/screenshots/documents.png) ### 知识提取详情 查看文档解析后提取的三元组信息,支持同步到知识图谱。 ![知识提取详情](doc/screenshots/upload.png) ## 技术架构 ### 前端技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Vue.js | 3.4 | 渐进式 JavaScript 框架 | | Vue Router | 4.3 | 官方路由管理器 | | Pinia | 2.1 | 状态管理库 | | Element Plus | 2.6 | UI 组件库 | | ECharts | 5.5 | 图谱可视化 | | Axios | 1.6 | HTTP 请求库 | | Vite | 5.1 | 构建工具 | ### 后端技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Flask | 3.0 | Web 框架 | | Neo4j | 5.16 | 图数据库 | | PyMySQL | 1.1 | MySQL 数据库驱动 | | jieba | 0.42 | 中文分词 | | PyMuPDF | 1.23 | PDF 解析 | | python-docx | 1.1 | Word 文档解析 | | pytesseract | 0.3 | OCR 文字识别 | | Pillow | 10.0 | 图像处理 | ### 系统架构图 ``` ┌─────────────────────────────────────────────────────────────┐ │ 前端 (Vue 3) │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────────┐ │ │ │ 控制台 │ │ 智能问答 │ │ 知识图谱 │ │ 文档管理 │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 后端 API (Flask) │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────────┐ │ │ │ 用户认证 │ │ 问答服务 │ │ 图谱服务 │ │ 文档处理 │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ┌───────────────┼───────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ MySQL │ │ Neo4j │ │ Ollama │ │ 用户数据 │ │ 知识图谱 │ │ LLM │ └──────────┘ └──────────┘ └──────────┘ ``` ## 文档导航 | 文档 | 说明 | |------|------| | [快速开始指南](doc/QUICK_START.md) | 新手必读,5 分钟快速启动系统 | | [API 接口文档](doc/API_DOC.md) | RESTful API 接口详细说明 | | [数据库设计文档](doc/DATABASE.md) | MySQL + Neo4j 双数据库架构设计 | | [云服务器部署指南](doc/DEPLOY_CLOUD.md) | Docker Compose 一键部署、Nginx 配置、SSL 证书 | ## 安装部署 > 详细步骤请参考 [快速开始指南](doc/QUICK_START.md) ### 环境要求 - Python 3.11+ - Node.js 18+ - Neo4j 5.x - MySQL 8.x - Ollama (可选,用于本地 LLM) ### 1. 克隆项目 ```bash git clone https://github.com/your-repo/knowledgeGraph.git cd knowledgeGraph ``` ### 2. 后端安装 ```bash # 创建虚拟环境 python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate # 安装依赖 pip install -r backend/requirements.txt ``` ### 3. 前端安装 ```bash cd frontend npm install ``` ### 4. 配置环境变量 在 `backend` 目录下创建 `.env` 文件: ```env # Neo4j 配置 NEO4J_URI=bolt://localhost:7687 NEO4J_USER=neo4j NEO4J_PASSWORD=your_password # MySQL 配置 MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your_password MYSQL_DATABASE=kg_qa_system # LLM 配置 (Ollama) OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL=qwen2.5:7b # JWT 配置 JWT_SECRET_KEY=your_secret_key ``` ### 5. 启动服务 **启动后端:** ```bash cd backend python run.py # 后端默认运行在 http://localhost:5005 ``` **启动前端:** ```bash cd frontend npm run dev # 前端默认运行在 http://localhost:5173 ``` ## 项目结构 ``` knowledgeGraph/ ├── backend/ # 后端代码 │ ├── app/ │ │ ├── api/ # API 路由 │ │ ├── models/ # 数据模型 │ │ ├── services/ # 业务逻辑 │ │ └── utils/ # 工具函数 │ ├── requirements.txt # Python 依赖 │ └── run.py # 启动入口 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── components/ # 通用组件 │ │ ├── stores/ # Pinia 状态 │ │ ├── router/ # 路由配置 │ │ └── api/ # API 请求 │ ├── package.json # 前端依赖 │ └── vite.config.js # Vite 配置 └── doc/ ├── screenshots/ # 系统截图 ├── QUICK_START.md # 快速开始指南 ├── API_DOC.md # API 接口文档 ├── DATABASE.md # 数据库设计文档 ├── DEPLOY_CLOUD.md # 云服务器部署指南 └── init.sql # 数据库初始化脚本 ``` ## 使用指南 ### 1. 用户注册与登录 首次使用需要注册账号,支持用户名密码登录。 ### 2. 上传文档构建知识库 1. 进入「文档管理」页面 2. 点击上传或拖拽文档(支持 PDF、TXT、DOCX) 3. 系统自动解析文档并提取三元组 4. 点击「同步到图谱」将知识导入知识图谱 ### 3. 浏览知识图谱 1. 进入「知识图谱」页面 2. 使用搜索框查找特定实体 3. 调整关系深度筛选关联节点 4. 点击节点查看详细信息 ### 4. 智能问答 1. 进入「智能问答」页面 2. 在输入框中输入问题 3. 系统基于知识图谱检索相关知识 4. 结合 LLM 生成精准回答 5. 右侧显示相关知识和延伸知识推荐 ## 开发说明 > API 接口详情请参考 [API 接口文档](doc/API_DOC.md) > > 数据库结构请参考 [数据库设计文档](doc/DATABASE.md) ### 后端开发 ```bash # 激活虚拟环境 source .venv/bin/activate # 运行开发服务器 python backend/run.py ``` ### 前端开发 ```bash cd frontend npm run dev ``` ### 生产构建 ```bash cd frontend npm run build ``` ### 生产部署 生产环境部署请参考 [云服务器部署指南](doc/DEPLOY_CLOUD.md),支持: - Docker Compose 一键部署 - 前后端分离手动部署 - Nginx 反向代理配置 - SSL 证书配置 - 性能优化与监控 ## 参与贡献 1. Fork 本仓库 2. 新建 `feat/xxx` 分支 3. 提交代码 4. 新建 Pull Request ## 许可证 MIT License