Files
AIEC-new/AIEC-server/docs/service-not-running-fix.md

148 lines
3.2 KiB
Markdown
Raw Normal View History

2025-10-17 09:31:28 +08:00
# Graph-RAG-Agent 服务未运行问题解决方案
## 问题描述
错误信息:
```
连接错误: HTTPConnectionPool(host='localhost', port=8000): Max retries exceeded with url: /chat/stream
(Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001DD24E19F60>:
Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
```
这表明 graph-rag-agent 服务没有在 8000 端口运行。
## 解决步骤
### 1. 首先恢复 CORS 支持
由于你恢复了原始文件,需要重新添加 CORS 支持:
```bash
cd ~/graph-rag-agent/server
cp main.py.cors_backup main.py
```
或者手动编辑 main.py在导入部分添加
```python
from fastapi.middleware.cors import CORSMiddleware
```
`app = FastAPI(...)` 之后添加:
```python
# 配置 CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 允许所有源
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
```
### 2. 检查依赖是否安装
```bash
cd ~/graph-rag-agent
pip install -r requirements.txt
```
### 3. 检查 Neo4j 是否运行
```bash
# Windows PowerShell
netstat -an | findstr 7687
# 或在 WSL/Linux 中
sudo lsof -i :7687
```
### 4. 启动 graph-rag-agent 服务
在 Windows 中:
```bash
cd C:\path\to\graph-rag-agent
python -m uvicorn server.main:app --reload --host 0.0.0.0 --port 8000
```
在 WSL/Linux 中:
```bash
cd ~/graph-rag-agent
python -m uvicorn server.main:app --reload --host 0.0.0.0 --port 8000
```
### 5. 常见启动问题
#### 问题 1ModuleNotFoundError
```
ModuleNotFoundError: No module named 'xxx'
```
解决:安装缺失的模块
```bash
pip install xxx
```
#### 问题 2Neo4j 连接失败
```
neo4j.exceptions.ServiceUnavailable: Unable to connect to localhost:7687
```
解决:
1. 启动 Neo4j 服务
2. 检查 config/settings.py 中的 Neo4j 配置
#### 问题 3端口被占用
```
[Errno 48] Address already in use
```
解决:
1. 查找占用端口的进程:
```bash
# Windows
netstat -ano | findstr :8000
# Linux/Mac
lsof -i :8000
```
2. 终止进程或使用其他端口
### 6. 验证服务是否启动
1. 在浏览器访问:
```
http://localhost:8000/docs
```
应该看到 FastAPI 的 API 文档页面
2. 使用 curl 测试:
```bash
curl http://localhost:8000/
```
3. 测试 CORS
```bash
curl -I -X OPTIONS http://localhost:8000/chat \
-H "Origin: http://localhost:3000" \
-H "Access-Control-Request-Method: POST"
```
### 7. 完整启动流程
1. **启动 Neo4j**(如果需要)
2. **恢复 CORS 配置**
3. **启动 graph-rag-agent**
```bash
cd ~/graph-rag-agent
python -m uvicorn server.main:app --reload --host 0.0.0.0 --port 8000
```
4. **启动前端**(在另一个终端):
```bash
cd ~/yundage-backserver-test
python -m http.server 3000
```
5. **访问前端**http://localhost:3000
## 调试建议
1. 查看 graph-rag-agent 的启动日志,看是否有错误
2. 确保所有依赖都已正确安装
3. 检查防火墙设置是否阻止了 8000 端口
4. 如果在 WSL 中运行,确保 Windows 防火墙允许 WSL 访问