# chat2neo4j **Repository Path**: baopengdu/chat2neo4j ## Basic Information - **Project Name**: chat2neo4j - **Description**: 本项目是一个基于Python的智能问答系统,整合Neo4j知识图谱和本地部署Ollama大语言模型,提供自然语言问答功能。前后端分离,设计了简易的前端 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-10-18 - **Last Updated**: 2025-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能问答系统 (chat2neo4j) 基于Neo4j知识图谱和本地大语言模型的智能问答系统,整合Ollama qwq:32b-fp16模型,提供自然语言问答功能。 ## 系统架构 ### 后端处理层 - **FastAPI框架**: 提供RESTful API接口 - **问答服务**: 整合LLM和Neo4j的核心逻辑 - **意图分析**: 通过LLM解析用户问题意图 - **查询生成**: 动态生成Cypher查询语句 - **子图提取**: 从Neo4j提取相关知识图谱子图 - **回答生成**: 基于查询结果生成自然语言回答 ### 数据存储与模型层 - **Neo4j知识图谱**: 存储桥梁病害相关知识 - **Ollama qwq:32b-fp16**: 本地部署的大语言模型 ## 功能特性 - ✅ 自然语言问题理解和意图分析 - ✅ 动态Cypher查询生成(非模板化) - ✅ 知识图谱子图提取和可视化数据准备 - ✅ 多种查询类型支持(事实查询、关系查询、路径查询、推理查询) - ✅ 缓存机制提升响应速度 - ✅ 完整的错误处理和日志记录 - ✅ 系统健康检查和状态监控 - ✅ RESTful API和命令行测试界面 ## 环境要求 ### 系统环境 - Python 3.8+ - Neo4j 数据库 - Ollama 运行环境 ### 外部服务 - Neo4j服务器: `bolt://10.14.126.45:7687/` - Ollama服务器: `http://10.84.11.222:11434` - 模型: qwen2.5:32b-instruct-q8_0 ## 安装和配置 ### 1. 克隆项目 ```bash git clone cd chat2neo4j ``` ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 环境配置 确保 `.env`文件包含正确的配置信息: ``` # Neo4j 连接配置 NEO4J_URI=bolt://10.14.126.45:7687/ NEO4J_USER=neo4j NEO4J_PASSWORD=11223344 NEO4J_DATABASE=neo4j # Ollama 配置 OLLAMA_API_BASE=http://10.84.11.222:11434 # OLLAMA_MODEL=deepseek-r1:70b OLLAMA_MODEL=qwen2.5:32b-instruct-q8_0 # 应用配置 DEBUG=True LOG_LEVEL=INFO ``` ### 4. 创建日志目录 ```bash mkdir logs ``` ## 使用方法 ### 启动API服务器 ```bash python main.py ``` 或者(测试开发方便): ```python uvicorn main:app --host 0.0.0.0 --port 1234 --reload ``` 服务器将在 `http://localhost:1234` 启动 ### 使用命令行测试界面 ### 访问API文档 启动服务器后,XXXXXXXXXX ## API接口 ### 主要端点 #### 1. 问答接口 ``` curl -X POST "http://localhost:1234/api/ask" \ -H "Content-Type: application/json" \ -d '{ "question": "悬索桥锚碇可能发生什么病害", "use_kg": true }' ``` #### 2. 系统状态 ``` GET /status ``` #### 3. 健康检查 ``` GET /health ``` #### 4. 获取Schema信息 ``` GET /schema ``` #### 5. 清空缓存 ``` POST /clear-cache ``` ## 测试用例 系统内置以下测试问题: 1. "索鞍锈蚀这种病害会发生在哪种桥型上?" (推理查询) 2. "索鞍上会发生什么病害?" (关系查询) 3. "什么是索鞍锈蚀?" (事实查询) ## 项目结构 ``` chat2neo4j/ ├── api/ # API层 │ └── routes.py # FastAPI路由定义 ├── graph/ # 图数据库交互 │ └── neo4j_client.py # Neo4j客户端 ├── llm/ # 大语言模型交互 │ └── ollama_client.py # Ollama客户端 ├── response/ # 生成回复 │ └── answer_genetator.py # 问答服务 ├── logs/ # 日志文件目录 ├── .env # 环境变量配置 ├── .gitignore ├── requirements.txt # 依赖包列表 ├── main.py # 主启动文件 └── README.md # 项目说明 ``` ## 贡献指南 1. Fork 本仓库 2. 创建特性分支: `git checkout -b feature/your-feature` 3. 提交更改: `git commit -am 'Add some feature'` 4. 推送分支: `git push origin feature/your-feature` 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 技术支持 如有问题或建议,请: 1. 查看文档和FAQ 2. 检查日志文件 3. 创建Issue描述问题 4. 联系开发团队