项目概述
数据库问答系统是基于Django框架构建的智能知识图谱问答平台,旨在实现结构化数据库与自然语言问答的高效融合。系统通过将结构化数据导入Neo4j图数据库构建知识图谱,结合大语言模型(OpenAI GPT-4o-mini)实现智能问答与图谱可视化查询,提升用户从数据库中获取知识的便捷性和交互体验。
核心价值在于:
- 利用图数据库的关系型数据优势,实现复杂实体及其关联信息的高效管理与查询。
- 集成先进的自然语言处理能力,支持用户以自然语言形式检索和交互,降低使用门槛。
- 提供用户账户管理和个性化服务,保障系统的安全性与数据管理规范。
该系统主要解决传统数据库查询门槛高、交互复杂的问题,通过知识图谱和智能问答模块,帮助用户快速获取所需信息。目标用户涵盖数据分析师、业务人员及广大需要便捷数据库问答的终端用户。
技术架构
整体架构设计
系统采用典型的前后端分离架构,基于Django框架构建后端服务,主要包括用户认证、数据导入、图谱管理与问答处理等功能模块。后端通过RESTful接口向前端模板页面提供数据支撑,前端采用Django模板语言结合Bootstrap等前端框架,实现响应式的用户交互界面。
数据库层采用Neo4j作为图数据库核心,承载知识图谱的存储与查询。系统还集成OpenAI大型语言模型作为智能问答引擎,结合图谱数据提供上下文丰富的回答。
主要技术栈
- 后端框架:Python Django
- 数据库:Neo4j图数据库(通过py2neo驱动访问)
- 前端技术:Django模板语言(DTL)、Bootstrap、Material Design Icons
- 自然语言处理:OpenAI GPT-4o-mini模型集成
- 数据处理:Pandas(用于CSV数据清洗和处理)
- 版本管理及虚拟环境:Git、Python virtualenv
模块间关系和交互
- datas模块负责将结构化数据清洗后导入Neo4j,构建图谱基础数据。
- myneo4j模块作为核心业务模块,管理图谱数据模型,处理图谱查询与智能问答,调用Neo4j图数据库和OpenAI模型。
- accounts模块管理用户注册、登录及个人信息,保障访问安全,并与问答模块关联用户身份。
- templates模块负责前端页面展示,调用后端接口完成用户交互,如图谱查询、问答及账户操作。
- 各模块通过Django路由和视图函数紧密协作,实现完整的业务流程。
功能模块
1. datas模块
- 功能介绍:实现结构化数据的清洗与导入,重点支持CSV文件格式的数据批量导入。通过封装的Neo4j连接和Cypher操作,实现节点与关系的幂等创建,保障数据准确性和系统稳定性。
- 关键点:数据清洗、多条三元组导入、日志追踪。
- 协作关系:为myneo4j模块提供图谱数据基础,间接支持智能问答和图谱查询。
2. myneo4j模块
- 功能介绍:
- 定义图谱节点和问答记录的数据模型。
- 提供基于Neo4j的节点及关系查询接口。
- 集成OpenAI GPT-4o-mini模型,实现自然语言问答,结合知识图谱提升回答准确性。
- 视图层处理前端请求,返回JSON格式图谱数据支持前端图形化展示。
- 支持多维度关系过滤和数据初始化接口。
- 协作关系:调用datas模块导入的图谱数据,依托accounts模块进行用户身份关联,前端通过templates模块调用其接口。
3. accounts模块
- 功能介绍:
- 用户注册、登录、注销认证实现。
- 用户信息查看与修改。
- 用户数据的后台管理,支持密码加密存储。
- 协作关系:为整个系统提供安全、稳定的用户认证和权限管理基础,保障问答及数据操作的用户管理。
4. templates模块
- 功能介绍:
- 提供用户界面模板,涵盖系统基础布局、登录注册、个人信息管理、图谱查询首页、自然语言问答页面等。
- 结合Bootstrap和Material Design Icons实现响应式和现代化界面。
- 集成CSRF保护,保障数据提交安全。
- 协作关系:作为前端视图层,依赖后端各业务模块接口完成数据渲染和交互,确保用户体验流畅。
模块间协作关系图示
用户请求
│
templates <--> myneo4j (图谱查询与问答)
↑
accounts (用户认证)
↑
datas (数据导入)
│
Neo4j图数据库 + OpenAI模型
项目结构
xy25_neo4j_mysql/
├── accounts/ # 用户认证模块,管理用户模型、视图和后台管理
├── datas/ # 数据导入模块,包含数据清洗和Neo4j导入脚本
├── myneo4j/ # 核心图谱管理与问答模块,含模型、视图、数据库操作工具
├── templates/ # Django模板视图层,前端页面文件
├── static/ # 静态资源:CSS、JS、字体和图片
├── xy_neo4j/ # Django项目配置目录,含settings、urls等
├── manage.py # Django管理命令入口
├── .venv/ # Python虚拟环境
├── README.md # 项目说明文档
└── requests.txt # Python依赖包列表
- accounts/:定义和管理用户数据模型、表单验证、视图处理及后台管理,保障系统用户安全。
- datas/:执行数据预处理和导入,核心文件import_neo4j.py负责与Neo4j交互。
- myneo4j/:定义图谱相关模型,封装Neo4j数据库操作工具,处理问答逻辑,实现核心业务功能。
- templates/:前端HTML模板,基于Django模板语言渲染,含登录、注册、问答、图谱查询等页面。
- static/:存放项目所需的静态资源文件,支持前端页面样式与交互。
- xy_neo4j/:Django项目配置文件,管理路由和项目设置。
部署和运行
环境要求
- Python 3.8及以上
- Django 4.x
- Neo4j图数据库(建议版本4.x或以上)
- Python包依赖(详见requests.txt)
- OpenAI API访问权限及密钥
- 支持虚拟环境(推荐使用venv)
安装和配置步骤
- 环境准备
- 克隆项目代码至本地。
- 创建并激活Python虚拟环境。
- 执行
pip install -r requests.txt安装依赖包。
- Neo4j配置
- 安装并启动Neo4j数据库,确保可通过bolt协议访问。
- 配置Neo4j用户和密码,与项目中的连接配置保持一致。
- OpenAI配置
- 获取OpenAI API密钥。
- 在项目相应配置文件或环境变量中配置API密钥。
- 数据库迁移
- 运行
python manage.py makemigrations和python manage.py migrate创建Django内置数据库表。
- 数据导入
- 通过datas模块的
import_neo4j.py脚本导入初始结构化数据至Neo4j。
启动方式
- 运行命令
python manage.py runserver启动Django开发服务器。 - 通过浏览器访问
http://127.0.0.1:8000/,进入系统首页。 - 使用注册账号登录,进行图谱查询和智能问答操作。
本项目以Django为核心,结合Neo4j图数据库和OpenAI大语言模型,打造集数据管理、智能问答与用户认证为一体的知识图谱问答系统。通过模块化设计和清晰的技术架构,保障系统的可维护性和扩展性,适用于多领域的知识管理与智能查询应用场景。
如有问题请联系作者:https://qalangtao.com 。
800
![图片[1]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209145944_226_379-1024x473.png)
![图片[2]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150004_227_379-1024x476.png)
![图片[3]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150013_228_379-1024x475.png)
![图片[4]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150022_229_379-1024x464.png)
![图片[5]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150041_230_379-1024x475.png)
![图片[6]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150049_231_379-1024x473.png)
![图片[7]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150103_232_379-1024x469.png)
![图片[8]-数据库问答系统](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150111_233_379-1024x475.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









