基于知识图谱的垃圾分类问答系统
项目概述
本项目旨在构建一个基于知识图谱技术的智能垃圾分类问答系统,融合图数据库与大语言模型,实现对垃圾分类知识的结构化管理与智能交互查询。通过构建完善的垃圾分类知识图谱,系统能够支持用户以自然语言形式进行垃圾分类相关问题的提问,并返回准确、详细的答案,从而提升公众的垃圾分类认知水平和参与度。
核心价值体现在:
- 知识图谱构建与管理:系统通过图数据库存储垃圾分类实体及其复杂关系,确保数据结构化、易维护。
- 智能问答交互:结合大语言模型,实现对用户自然语言问题的理解和精准回答,增强用户体验。
- 用户管理与个性化服务:完整的用户账户体系支持用户注册、登录及信息管理,为问答服务提供身份认证保障。
- 前端界面友好:基于Django模板系统设计响应式界面,提供图谱查询及问答入口,支持多种用户操作。
本系统解决了垃圾分类知识分散、查询不便和用户交互体验不足的问题,面向广大普通用户、社区管理者及环保宣传工作者,助力垃圾分类知识普及和智能化服务推广。
技术架构
系统采用基于Django的Web应用架构,结合Neo4j图数据库与OpenAI大语言模型,整体架构设计如下:
- 数据层
利用Neo4j图数据库存储垃圾分类相关的实体(如垃圾种类、分类类别)及其关系,形成完整的知识图谱。 - 后端业务层
- Django框架负责业务逻辑处理、用户认证和请求路由。
- myneo4j模块通过py2neo库实现对图数据库的增删改查操作,支持图谱数据管理及智能问答。
- accounts模块实现用户管理,保障系统安全和个性化服务。
- datas模块提供批量导入结构化三元组数据至Neo4j的能力,支持知识图谱的数据更新和维护。
- 智能问答服务
通过集成OpenAI大语言模型API,结合中文分词技术,实现对用户自然语言问题的理解与智能回答。 - 前端展示层
基于Django模板系统和Bootstrap框架,设计响应式网页,支持用户登录、注册、个人信息管理、图谱查询及问答交互界面。
模块间通过清晰的接口和路由进行数据和功能调用,保证系统的模块化和扩展性。
功能模块
1. datas模块
- 功能:负责将预处理的结构化数据(CSV格式的垃圾分类三元组)批量导入Neo4j图数据库,实现知识图谱的构建和更新。
- 核心组件:
import_neo4j.py,封装Neo4j连接和数据写入逻辑,利用Cypher MERGE语句保证写入幂等性,防止数据重复。 - 特点:高效、稳定的数据导入,支持日志记录,提高数据管理的可追溯性。
- 关系:作为数据层接口,服务于图谱查询与分析模块,确保图谱数据的及时更新。
2. myneo4j模块
- 功能:实现图数据库的节点与关系管理,提供图谱数据查询接口;集成大语言模型,支持智能问答交互。
- 核心组件:
models.py定义图谱相关数据模型(节点、关系、问答记录)。pyneo_utils.py封装Neo4j操作函数,完成复杂的图查询。views.py处理前端请求,调用图数据库和OpenAI接口,实现问答及数据展示。urls.py配置路由,admin.py支持后台问答数据管理。- 技术特点:结合Django ORM与py2neo库,整合中文分词与OpenAI大模型,提升智能问答的准确性和响应速度。
- 关系:作为后端核心业务模块,依赖accounts模块提供用户身份支持,服务于前端模板页面的数据需求。
3. accounts模块
- 功能:提供完整的用户账户管理体系,实现用户注册、登录、信息修改及安全认证。
- 核心组件:
models.py扩展Django内置用户模型,增加手机和密码字段。forms.py定义注册和登录表单及验证逻辑。views.py实现用户操作视图,urls.py定义路由,admin.py支持后台用户管理。- 技术特点:基于Django认证框架,采用表单验证和访问权限控制,保障用户信息安全。
- 关系:为myneo4j和前端模块提供用户身份验证和权限支持,确保系统安全运行。
4. templates模块
- 功能:负责前端页面的渲染与展示,包括用户认证页面、个人信息管理、图谱查询和问答交互等。
- 关键文件:
base.html定义网站统一布局和风格。index.html提供图谱查询入口。login.html、register.html、modify.html支持用户账户操作。my_info.html展示用户信息。wenda.html实现关系图谱问答界面。- 技术特点:基于Django模板引擎,结合Bootstrap响应式设计,支持动态数据绑定和安全表单处理。
- 关系:与myneo4j和accounts模块的视图函数紧密协作,实现前后端数据交互和用户操作入口。
模块协作关系
datas模块负责知识图谱数据的导入与维护,支撑myneo4j模块的图查询和问答功能。myneo4j模块依赖accounts模块提供的用户身份管理,确保问答服务的个性化和安全。templates模块作为前端展示层,依赖myneo4j和accounts模块的后端数据与业务逻辑,完成用户交互界面。
项目结构
xy25_neo4j_garbage/
├── accounts/ # 用户账户管理模块
│ ├── models.py # 用户模型定义
│ ├── forms.py # 用户表单验证
│ ├── views.py # 用户视图逻辑
│ ├── urls.py # 账户路由配置
│ └── admin.py # 后台用户管理
├── datas/ # 数据导入模块
│ └── import_neo4j.py # Neo4j导入脚本
├── myneo4j/ # 图数据库管理与智能问答模块
│ ├── models.py # 图谱数据模型
│ ├── pyneo_utils.py # Neo4j操作封装
│ ├── views.py # 图谱与问答视图
│ ├── urls.py # 路由配置
│ └── admin.py # 问答数据后台管理
├── templates/ # 前端模板视图层
│ ├── base.html # 基础模板
│ ├── index.html # 图谱查询主页
│ ├── login.html # 登录页面
│ ├── register.html # 注册页面
│ ├── modify.html # 密码修改
│ ├── my_info.html # 个人信息管理
│ └── wenda.html # 问答交互页面
├── static/ # 静态资源(CSS/JS/图片)
├── xy_neo4j/ # Django项目配置
│ ├── settings.py # 配置文件
│ ├── urls.py # 全局路由
│ └── wsgi.py # WSGI服务入口
├── manage.py # Django管理脚本
├── requests.txt # 依赖库列表
└── README.md # 项目说明
- accounts/:用户管理核心,实现认证与权限控制。
- datas/:知识图谱数据导入工具,保障数据层的完整性。
- myneo4j/:图谱核心业务逻辑及智能问答服务。
- templates/:前端页面布局及用户界面。
- static/:前端样式及脚本资源,支持界面交互和美观设计。
- xy_neo4j/:Django项目配置,协调各模块运行。
部署和运行
环境要求
- 操作系统:支持Linux、Windows、macOS
- Python版本:3.8及以上
- 依赖库:Django, py2neo, neo4j官方驱动, jieba, requests, OpenAI SDK等(详见
requests.txt) - Neo4j数据库:版本4.x或更高,需安装并运行
- OpenAI API访问权限及密钥
安装和配置步骤
- 克隆项目代码至本地环境。
- 创建并激活Python虚拟环境:
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
- 安装依赖:
pip install -r requests.txt
- 配置数据库连接:
- 在
datas/import_neo4j.py和myneo4j/pyneo_utils.py中配置Neo4j连接URI、用户名和密码。
- 配置OpenAI API密钥:
- 在
myneo4j/views.py中设置API密钥环境变量或配置文件。
- 初始化Django数据库迁移:
python manage.py makemigrations
python manage.py migrate
- 创建超级管理员账号(可选,用于后台管理):
python manage.py createsuperuser
启动方式
- 启动Django开发服务器:
python manage.py runserver
- 访问浏览器,进入
http://127.0.0.1:8000/,即可使用系统提供的图谱查询与智能问答功能。 - 使用
datas/import_neo4j.py脚本导入或更新知识图谱数据,保持图谱信息最新。
本项目通过融合图数据库技术和大语言模型,构建了一个智能、交互性强的垃圾分类知识问答平台。其模块化设计、技术栈合理、业务功能完备,具备较强的扩展性和维护性,适合推广应用于环保宣传、社区服务及智能辅助决策领域。
如有问题请联系作者:https://qalangtao.com 。
800
![图片[1]-基于知识图谱的垃圾分类问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129141902_35_379-1024x479.png)
![图片[2]-基于知识图谱的垃圾分类问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129141915_36_379-1024x474.png)
![图片[3]-基于知识图谱的垃圾分类问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129141926_37_379-1024x480.png)
![图片[4]-基于知识图谱的垃圾分类问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129141933_38_379-1024x475.png)
![图片[5]-基于知识图谱的垃圾分类问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129142010_39_379-1024x473.png)
![图片[6]-基于知识图谱的垃圾分类问答系统](https://qalangtao.com/wp-content/uploads/2025/11/微信图片_20251129142019_40_379-1024x456.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









