Files
AIEC-new/AIEC-server/docs/service-not-running-fix.md
2025-10-17 09:31:28 +08:00

148 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 访问