这是一款基于图数据库和向量检索的智能问答系统,支持文档管理和智能对话功能。系统使用 Neo4j 作为图数据库,Streamlit 作为前端框架,结合大语言模型实现基于知识图谱的智能问答。
- 文档上传:支持上传 txt、md 格式的文本文档
- 文档分块:自定义分隔符和块大小,智能分割文档
- 文档检索:按标题搜索文档,支持分页查看
- 文档操作:查看、下载和删除文档
- 元数据查看:显示文档标题、上传时间、大小、摘要等信息
- 基于图谱的问答:结合文档内容和知识图谱,提供智能问答功能
- 知识图谱可视化:可视化展示与问题相关的知识图谱,支持放大、缩小、拖拽等交互操作
- 实体识别:自动从文档中提取实体,构建知识图谱
- 向量检索:使用 BGE M3 向量模型进行高效语义检索
- 开发语言:Python 3.10
- 前端框架:Streamlit
- 智能体框架:LangChain
- 数据库:Neo4j 5.27.0
- 大模型调用:兼容 OpenAI 的 API 接口
- 向量模型:BGE M3,基于 Ollama 的 API
.
├── app.py # 应用入口
├── pages # 页面文件
│ ├── doc_manage.py # 文档管理页面
│ └── chat.py # 智能对话页面
├── services # 服务层
│ ├── doc_service.py # 文档处理服务
│ └── rag_service.py # RAG问答服务
├── utils # 工具类
│ ├── neo4j_utils.py # Neo4j数据库工具类
│ ├── llm_utils.py # 大模型工具类
│ └── txt_utils.py # 文本处理工具类
├── uploads # 上传文件存储目录
├── prompts.py # 提示词模板
├── .env # 环境变量配置
├── requirements.txt # 项目依赖
└── README.md # 项目说明
确保安装了 Python 3.10,并启动了 Neo4j 数据库和 Ollama 服务。
pip install -r requirements.txt编辑.env文件,设置以下配置:
- Neo4j 数据库连接信息
- 大模型 API 密钥和基础 URL
- 向量模型配置
streamlit run app.py打开浏览器访问:http://localhost:8501
-
文档管理:
- 上传文档:选择 txt 或 md 格式的文件,设置分块参数,点击上传
- 查看文档:在文档列表中查看已上传的文档信息和内容
- 下载/删除:对已上传的文档进行下载或删除操作
-
智能对话:
- 输入问题:在对话框中输入要咨询的问题
- 获取回答:系统自动检索相关文档块并生成回答
- 查看知识图谱:如果问题与知识图谱相关,可以查看并交互式操作知识图谱
- 首次使用前需要先上传一些文档,以便系统可以回答相关问题
- 确保 Neo4j 数据库和 Ollama 服务正常运行
- 大文件处理可能需要较长时间,请耐心等待
- 实体识别和知识图谱构建基于大模型,效果受模型质量影响

