项目概述
网络安全等级保护课程知识问答AI智能体是基于Django框架构建的智能问答系统,旨在为网络安全等级保护相关课程提供高效、智能的知识查询与问答服务。通过整合文本向量化检索、知识图谱构建与管理、大语言模型问答和用户身份认证管理,该项目实现了从文档数据到智能问答的完整闭环,极大提升了知识获取效率和用户交互体验。
核心价值:
- 利用向量检索技术,实现海量文本的快速语义匹配与检索。
- 基于大模型抽取知识三元组,构建结构化知识图谱,支持更精准的知识表达与推理。
- 结合知识图谱和大语言模型,提供基于检索增强生成(RAG)的高质量问答能力。
- 完善的用户管理体系保障系统安全和个性化服务。
- 友好的前端交互界面,支持查询、问答和个人信息管理,提升用户体验。
解决的核心问题:
- 传统文档检索效率低,难以满足语义层面的知识查询需求。
- 课程知识内容结构化和智能化利用不足,缺乏系统化知识图谱支持。
- 智能问答准确性和上下文理解能力有限。
- 缺少完善的用户身份管理和权限控制,影响系统安全和个性化服务。
目标用户群体:
- 网络安全等级保护课程的学员和教师。
- 网络安全领域研究人员和实践者。
- 需要快速获取网络安全等级保护相关知识的技术人员。
技术架构
整体架构设计
项目采用模块化设计,基于Django框架构建后端服务,结合多种先进技术实现智能问答功能。整体架构包括:
- 文本向量化预处理层:负责原始文本数据的加载、分块、向量嵌入生成及向量索引构建。
- 知识图谱构建层:实现从原始文档到结构化三元组的抽取、清洗和导入Neo4j图数据库。
- 图数据库管理与智能问答层:基于Neo4j进行知识图谱管理,并结合FAISS向量索引和OpenAI大模型实现检索增强生成问答。
- 用户认证管理层:提供用户注册、登录、权限控制及后台管理。
- 前端展示层:基于Django模板技术实现页面渲染,支持用户交互、知识查询和问答。
主要技术栈
- 后端框架:Python Django
- 向量检索:FAISS向量库
- 文本嵌入:OpenAI嵌入API
- 知识图谱数据库:Neo4j,py2neo驱动
- 大语言模型问答:OpenAI GPT系列模型
- 数据处理:Python(pandas、python-docx等)
- 数据库ORM:Django ORM
- 前端技术:Django模板语言,Bootstrap,Material Design Icons
- 用户认证:Django内置认证系统扩展
模块间的关系和交互
- root模块负责文本向量化与FAISS索引构建,为智能问答模块提供检索基础。
- datas/extra模块完成知识图谱构建的全流程,生成结构化三元组并导入Neo4j数据库。
- myneo4j模块连接Neo4j图数据库和FAISS索引,支持图谱管理和基于RAG的智能问答,通过Web接口向前端提供数据服务。
- accounts模块为系统提供用户身份验证和权限控制,保障问答和图谱数据的安全访问。
- templates模块作为前端展示层,依托后端视图函数渲染动态页面,完成用户交互和信息展示。
功能模块
1. 文本向量化与索引构建(root模块)
- 加载指定目录的文本文档,使用langchain社区扩展实现智能分块。
- 调用OpenAI嵌入API将文本分块转化为高质量向量。
- 基于FAISS构建向量索引,实现文本的快速相似度检索。
- 持久化索引和分块数据,提升运行效率。
- 支持参数化配置,方便灵活调整。
2. 知识图谱数据处理(datas/extra模块)
- 批量将.docx文档转换为纯文本,便于后续处理。
- 清洗和规范知识三元组数据,去除噪声,识别叶子节点。
- 通过调用OpenAI接口基于设计提示词抽取实体和关系,形成三元组。
- 将高质量三元组导入Neo4j图数据库,动态创建和更新节点及关系。
- 完整支持知识图谱构建的从数据预处理到图数据库落库全流程。
3. 图谱管理与智能问答(myneo4j模块)
- 定义图谱节点、问答信息及类型频次的Django ORM模型,持久化管理数据。
- 封装图数据库操作工具,支持节点匹配、关系查询等。
- 集成FAISS向量检索和OpenAI GPT模型,实现基于RAG的智能问答。
- 提供Web视图接口,支持前端查询、图谱数据展示及问答交互。
- 支持用户登录权限控制,保障数据安全。
4. 用户账户管理(accounts模块)
- 自定义用户模型UserProfile,扩展手机号和密码存储。
- 实现用户注册、登录、登出及个人信息修改功能。
- 使用Django表单验证确保数据合法性。
- 后台管理支持用户数据展示和密码加密存储。
- URL路由管理用户相关接口,确保系统安全和用户体验。
5. 前端展示与交互(templates模块)
- 采用Django模板语言构建响应式网页。
- 提供基础布局模板及具体功能页面:主页、登录、注册、用户信息修改、图谱查询、问答界面。
- 集成Bootstrap和Material Design Icons,实现现代化界面风格。
- 表单设计注重安全和用户体验,支持CSRF保护。
- 与后端视图层紧密配合,动态呈现查询和问答结果。
模块间协作关系
- root模块输出向量索引,被myneo4j模块调用实现语义检索。
- datas/extra模块生成的知识图谱数据导入Neo4j,供myneo4j模块管理和查询。
- myneo4j模块通过视图函数调用问答系统和图谱操作,前端通过templates模块展示结果。
- accounts模块提供用户身份认证,保障各业务模块的访问权限和安全性。
项目结构
xy25_neo4j_netsafe/
├── accounts/ # 用户账户管理模块
│ ├── models.py # 用户模型定义
│ ├── views.py # 用户相关视图函数
│ ├── forms.py # 用户表单定义
│ ├── urls.py # 用户模块路由
│ └── admin.py # 后台管理配置
├── datas/extra/ # 知识图谱数据处理模块
│ ├── docx_to_txt.py # 文档格式转换
│ ├── clean_data.py # 三元组数据清洗
│ ├── extract_triplets.py # 三元组抽取
│ └── import_neo4j.py # 导入Neo4j图数据库
├── faiss_index/ # 向量索引存储目录
│ ├── index.faiss # FAISS索引文件
│ └── index.pkl # 索引元数据序列化文件
├── myneo4j/ # 图谱管理与问答模块
│ ├── models.py # 图谱相关Django模型
│ ├── pyneo_utils.py # Neo4j操作工具
│ ├── query_system.py # 问答系统实现(RAG)
│ ├── views.py # Web视图函数
│ └── urls.py # 模块路由配置
├── templates/ # 前端模板视图
│ ├── base.html # 基础模板
│ ├── index.html # 主页
│ ├── login.html # 登录页
│ ├── register.html # 注册页
│ ├── modify.html # 密码修改页
│ ├── my_info.html # 用户信息页
│ └── wenda.html # 问答交互页
├── create_embeddings.py # 文本向量化及索引构建脚本(root模块核心)
├── manage.py # Django项目管理脚本
├── xy_neo4j/ # Django项目配置目录
│ ├── settings.py # 项目配置
│ ├── urls.py # 全局路由配置
│ └── wsgi.py # WSGI入口
├── static/ # 静态资源目录(CSS、JS、图片等)
├── media/ # 媒体文件目录
├── .venv/ # 虚拟环境目录
└── README.md # 项目说明文档
关键目录和文件说明:
accounts/:用户身份认证及管理核心模块。datas/extra/:知识图谱数据预处理及导入模块。myneo4j/:图谱管理和智能问答核心模块。templates/:前端页面模板,实现用户交互界面。create_embeddings.py:文本预处理与向量索引构建脚本,项目向量检索基础。faiss_index/:存储FAISS向量索引文件,支持快速文本检索。xy_neo4j/:Django项目配置文件及启动入口。static/:项目所需的静态资源文件。
部署和运行
环境要求
- 操作系统:支持Linux、Windows或macOS
- Python版本:3.8及以上
- Django版本:3.x或以上
- Neo4j数据库:社区版或企业版,建议4.x版本
- 依赖库:Django、py2neo、pandas、langchain、faiss-cpu、openai等
- OpenAI API密钥及网络访问权限
- 推荐使用虚拟环境管理Python依赖
安装和配置步骤
- 克隆代码库
git clone <项目仓库地址>
cd xy25_neo4j_netsafe
- 创建并激活虚拟环境
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.\.venv\Scripts\activate # Windows
- 安装依赖
pip install -r requests.txt
- 配置OpenAI API
- 在
create_embeddings.py及相关调用处设置OpenAI API密钥和基础URL(支持代理或私有化部署)。 - 建议将密钥配置为环境变量或配置文件,确保安全。
- 配置Neo4j数据库
- 安装并启动Neo4j数据库,创建对应数据库和用户。
- 修改
datas/extra/import_neo4j.py和myneo4j/pyneo_utils.py中的数据库连接配置,确保连接参数正确。
- 初始化数据库
python manage.py migrate
- 创建超级管理员(可选)
python manage.py createsuperuser
- 构建文本向量索引
python create_embeddings.py --参数配置
- 根据实际文本目录和需求设置参数,生成FAISS索引文件。
- 构建知识图谱数据
- 执行
docx_to_txt.py转换文档格式。 - 运行
extract_triplets.py抽取三元组。 - 使用
clean_data.py清洗数据。 - 导入Neo4j数据库:
bash python import_neo4j.py
启动方式
- 启动Django开发服务器
python manage.py runserver
- 访问应用
- 打开浏览器,访问
http://127.0.0.1:8000/ - 进行用户注册、登录,使用知识图谱查询和问答功能。
- 后台管理
- 访问
http://127.0.0.1:8000/admin/ - 使用超级管理员账号管理用户和问答数据。
总结
网络安全等级保护课程知识问答AI智能体项目通过多模块协同,融合向量检索、知识图谱与大语言模型技术,构建了一个智能高效的知识问答平台。项目不仅解决了文本海量检索的性能问题,还通过结构化知识图谱提升了语义理解和推理能力,结合用户管理和现代化前端界面,为用户提供安全、便捷、智能的知识获取体验。该系统具备良好的扩展性和维护性,适合推广应用于网络安全教育和相关领域的知识服务。
如有问题请联系作者:https://qalangtao.com 。
800
![图片[1]-网络安全等级保护课程知识问答AI智能体](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150656_239_379-1024x474.png)
![图片[2]-网络安全等级保护课程知识问答AI智能体](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150708_240_379-1024x474.png)
![图片[3]-网络安全等级保护课程知识问答AI智能体](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150818_241_379-1024x476.png)
![图片[4]-网络安全等级保护课程知识问答AI智能体](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150826_242_379-1024x397.png)
![图片[5]-网络安全等级保护课程知识问答AI智能体](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150858_243_379-1024x473.png)
![图片[6]-网络安全等级保护课程知识问答AI智能体](https://qalangtao.com/wp-content/uploads/2025/12/微信图片_20251209150959_244_379-1024x475.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END









