# FastAPI Backend - Novel Platform MCP AI MCP Web UI 的 FastAPI 后端服务,提供 SSE 流式输出和 MCP 工具调用支持。 ## 快速启动 ### 开发模式(热重载) 使用热重载模式启动,代码修改后自动重启服务: ```bash # 使用启动脚本(推荐) cd /mnt/code/223-240-template-6 ./scripts/start_dev.sh # 停止服务 ./scripts/stop_dev.sh ``` ### 手动启动 ```bash cd backend python3 -m uvicorn app_fastapi:app --host 0.0.0.0 --port 8080 --reload ``` ## 服务端口 | 服务 | 端口 | 说明 | |------|------|------| | FastAPI 后端 | 8081 | 内部服务端口 | | Next.js 前端 | 8080 | 外网访问入口 | | 环境 | 地址 | |------|------| | 内网后端 | `http://localhost:8081` | | 内网前端 | `http://localhost:8080` | | 外网前端 | `https://d8d-ai-vscode-8080-223-240-template-6-group.dev.d8d.fun/` | > ⚠️ **重要**: 前端必须运行在 **8080** 端口才能被外网访问!后端运行在 8081 端口作为内部服务。 ## 热重载说明 开发模式下启用热重载(`--reload`),修改代码后服务会自动重启: - 修改 `app_fastapi.py` → 自动重启 - 修改 `config.py` → 自动重启 - 修改 `mcp_client.py` → 自动重启 无需手动重启服务,开发体验更佳。 ## API 端点 ### 聊天接口 | 端点 | 方法 | 说明 | |------|------|------| | `/api/chat` | POST | 普通聊天 | | `/api/chat/stream` | POST | SSE 流式聊天 | ### 认证接口 | 端点 | 方法 | 说明 | |------|------|------| | `/api/auth/login` | POST | 用户登录 | | `/api/auth/register` | POST | 用户注册 | | `/api/auth/logout` | POST | 用户登出 | | `/api/auth/status` | GET | 认证状态 | | `/api/auth/admin-login` | POST | 管理员登录 | ### MCP 接口 | 端点 | 方法 | 说明 | |------|------|------| | `/api/mcp/servers` | GET | MCP 服务器列表 | | `/api/mcp/tools` | GET | MCP 工具列表 | | `/api/health` | GET | 健康检查 | ## 项目结构 ``` backend/ ├── app_fastapi.py # 主应用入口 ├── config.py # 配置文件 ├── mcp_client.py # MCP 客户端 └── requirements.txt # Python 依赖 ``` ## 环境变量 创建 `.env` 文件配置环境变量: ```bash # Anthropic API ANTHROPIC_API_KEY=your_api_key_here # 服务配置 HOST=0.0.0.0 PORT=8080 ``` ## 日志 - 开发日志: `~/fastapi-dev.log` - 查看实时日志: `tail -f ~/fastapi-dev.log` ## 故障排除 ### 端口被占用 ```bash # 查找占用端口的进程 lsof -i :8080 # 停止进程 kill -9 ``` ### 服务无法启动 ```bash # 查看日志 cat ~/fastapi-dev.log # 检查 Python 版本(需要 3.8+) python3 --version # 安装依赖 pip install -r requirements.txt ```