基于GraphRag的本地课程图谱问答系统
项目概述
本项目旨在打造一个集知识图谱构建、智能问答、以及本地化信息检索于一体的课程知识问答系统。核心目标是利用图谱技术和大模型问答能力,为用户提供准确、快速且安全的课程知识查询体验,特别适合对数据隐私和自主部署有高要求的场景。
项目的主要价值在于通过结构化的课程三元组数据(CSV格式)自动构建知识图谱,存储于Neo4j图数据库中,为后续的知识查询和可视化提供基础支持。同时集成本地知识检索工具(graphrag)与外部大语言模型(如OpenAI API),实现自然语言问答,提升用户交互体验。整个系统部署在本地环境,保证数据隐私安全,适应教育、企业培训等多场景应用。
技术架构
整体架构设计
系统采用Django作为后端开发框架,分为数据层、图数据库访问层、问答逻辑层和前端展示层。架构示意如下:
用户界面(前端)<--> Django Web服务 <--> Neo4j图数据库
<--> 本地graphrag工具(知识检索)
<--> 大模型接口(OpenAI API)
<--> 数据处理(CSV导入、知识图谱构建)
主要技术栈
- 后端框架:Django
- 图数据库:Neo4j,使用py2neo库操作
- 知识图谱构建:基于CSV三元组导入,节点关系节点化管理
- 自然语言处理:jieba中文分词
- 本地工具:graphrag问答与索引检索
- 大模型集成:OpenAI API,增强问答智能
- 前端技术:Bootstrap、MaterialDesignIcons、ECharts等实现响应式界面与可视化
模块关系和交互
- 数据模块(datas):负责从CSV文件读取三元组,构建知识图谱,存入Neo4j。
- 图数据库访问(myneo4j):封装Neo4j节点关系的增删查改,提供图谱查询接口,支撑问答逻辑。
- 问答与检索(myneo4j):集成本地graphrag工具进行知识检索,调用大模型API进行自然语言理解与答复。
- 用户管理(accounts):提供注册、登录、权限控制,保障系统安全。
- 前端模板(templates):实现用户交互界面,包括登录、注册、图谱查询、关系问答等页面。
- 整体部署:通过manage.py管理迁移和启动,确保系统在本地环境稳定运行。
功能模块
知识图谱构建(datas模块)
- 读取结构化CSV三元组数据(如cibiao.txt或清洗后csv)
- 自动匹配节点,避免重复创建
- 构建实体关系图,存入Neo4j
- 提供基础的图谱数据存储和管理功能,为查询提供基础数据
Neo4j知识管理与查询(myneo4j模块)
- 定义节点(MyNode)、问答(MyWenda)等数据模型
- 提供节点、关系的增删查改接口
- 支持复杂的图结构查询,关系路径分析
- 集成外部本地检索工具(graphrag)实现知识索引检索
- 支持多轮问答,结合大模型(OpenAI)实现智能应答
用户管理(accounts模块)
- 自定义用户模型(UserProfile),支持手机号、明文密码存储
- 提供注册、登录、密码修改、个人信息维护功能
- 后台管理界面方便维护用户数据
- 安全措施:密码加密存储,权限控制
前端界面(templates目录)
- base.html:基础布局模板
- index.html:首页,提供知识图谱查询表单
- login.html:用户登录
- register.html:用户注册
- modify.html:密码修改
- my_info.html:个人信息管理
- wenda.html:关系图谱问答页面,支持自然语言输入和结果展示
其他支持功能
- 静态资源(CSS、JS、图片)优化用户体验
- 交互式可视化(如ECharts)展示知识关系
- 日志管理(logs.json)和输出目录(output)存储检索和问答数据
项目结构
整体目录结构清晰,分层管理核心功能:
datas/
:知识图谱数据导入脚本(main.py)和原始数据文件myneo4j/
:Neo4j数据库操作封装、Web接口逻辑accounts/
:用户管理模型、视图、后台配置templates/
:前端页面模板static/
:前端静态资源(CSS、JS、字体、图片)xy_neo4j/
:Django项目配置manage.py
:项目管理入口README.md
:项目说明req.txt
/requests.txt
:依赖配置文件
部署和运行
环境要求
- Python 3.8+(推荐3.9或更高)
- Django 3.x或以上
- Neo4j图数据库(建议版本4.x或5.x)
- 依赖包:py2neo、jieba、requests、ECharts、Bootstrap等前端库
- 本地graphrag工具(需自行安装配置,路径可在配置中调整)
安装与配置步骤
- 克隆项目代码到本地
- 创建虚拟环境:
python -m venv venv
source venv/bin/activate
pip install -r req.txt
- 安装Neo4j并启动,配置
settings.py
中的连接参数 - 导入CSV三元组数据(使用
datas/main.py
或通过Django管理命令) - 配置本地graphrag工具,确保调用路径正确
- 配置OpenAI API密钥(在
settings.yaml
中) - 迁移数据库模型:
python manage.py migrate
- 创建超级用户(可选):
python manage.py createsuperuser
启动方式
- 运行开发服务器:
python manage.py runserver
- 访问
http://127.0.0.1:8000/
即可使用系统界面。
核心技术亮点
- 本地化部署:全部服务在本地环境运行,保证数据隐私安全
- 知识图谱自动构建:从CSV数据自动匹配实体关系,减少人工维护
- 图数据库高效查询:利用Neo4j强大的路径和关系查询能力
- 多模态问答结合:结合本地知识检索(graphrag)和大模型(OpenAI),提升问答智能
- 丰富前端交互:响应式页面支持多场景操作,支持知识可视化
- 安全可靠:用户权限管理、密码加密保障系统安全
业务价值
该系统为教育、企业培训等领域提供了一个安全、智能、可扩展的知识问答平台,显著降低了信息检索成本,提高了用户满意度,同时满足对数据隐私和自主控制的需求。未来可结合更多知识源和AI模型,持续扩展系统能力,打造更强大的知识服务生态。
本项目通过结合知识图谱、图数据库和大模型技术,打造了一个高效、安全、智能的本地课程知识问答系统,具有广阔的应用前景和持续优化潜力。
如有问题请联系作者:https://qalangtao.com 。
800
![图片[1]-基于GraphRag的本地课程图谱问答系统](https://qalangtao.com/wp-content/uploads/2025/07/微信图片_20250705095845-1024x479.png)
![图片[2]-基于GraphRag的本地课程图谱问答系统](https://qalangtao.com/wp-content/uploads/2025/07/微信图片_20250705095855-1024x477.png)
![图片[3]-基于GraphRag的本地课程图谱问答系统](https://qalangtao.com/wp-content/uploads/2025/07/微信图片_20250705095859-1024x481.png)
![图片[4]-基于GraphRag的本地课程图谱问答系统](https://qalangtao.com/wp-content/uploads/2025/07/微信图片_20250705095902-1024x478.png)
![图片[5]-基于GraphRag的本地课程图谱问答系统](https://qalangtao.com/wp-content/uploads/2025/07/微信图片_20250705095906-1024x479.png)
![图片[6]-基于GraphRag的本地课程图谱问答系统](https://qalangtao.com/wp-content/uploads/2025/07/微信图片_20250705095910-1024x476.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END