修改端口信息
Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Failing after 12m40s

This commit is contained in:
2026-04-16 00:31:33 +08:00
parent a92a220ff3
commit a5b8820d13
9 changed files with 114 additions and 96 deletions

4
.env
View File

@@ -36,8 +36,8 @@ DB_URI=postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?
# -----------------------------------------------------------------------------
# 前端配置
# -----------------------------------------------------------------------------
# 后端 API 地址(本地开发使用 8003 端口,避免与 vLLM 冲突)
API_URL=http://localhost:8003/chat
# 后端 API 地址(本地开发使用 8083 端口,避免与 llama.cpp 冲突)
API_URL=http://localhost:8083/chat
# -----------------------------------------------------------------------------
# 应用行为配置

View File

@@ -1,15 +1,33 @@
# =============================================================================
# Docker Compose 服务器部署配置
# 用法: cp .env.docker .env 然后修改 API Key
# 用法: cp .env.docker .env 然后填入 API Key
# =============================================================================
# -----------------------------------------------------------------------------
# AI 模型 API 密钥(必需 - 请填入真实值)
# -----------------------------------------------------------------------------
ZHIPUAI_API_KEY=your_api_key_here
# ⭐ 敏感密钥配置(必须在此配置)
# =============================================================================
# AI 模型 API 密钥
ZHIPUAI_API_KEY=your_zhipuai_api_key_here
DEEPSEEK_API_KEY=your_deepseek_api_key_here
# llama.cpp 服务认证 Token与容器启动参数一致
LLAMACPP_API_KEY=token-abc123
# ⭐ 日志调试配置(部署时可灵活调整)
# =============================================================================
# 日志级别DEBUG, INFO, WARNING, ERROR, CRITICAL
# 生产环境推荐 WARNING排查问题时改为 DEBUG
LOG_LEVEL=WARNING
# 是否启用 DEBUG 模式
# true: 输出详细调试信息,包含完整的工具调用、数据库查询等
# false: 仅输出关键信息,适合生产环境
DEBUG=false
# 是否启用 Graph 流转追踪
# true: 输出每个节点的输入输出状态,便于调试工作流
# false: 关闭追踪,减少日志量
ENABLE_GRAPH_TRACE=false
# -----------------------------------------------------------------------------
# llama.cpp 服务配置
# -----------------------------------------------------------------------------
@@ -22,7 +40,6 @@ VLLM_EMBEDDING_URL=http://localhost:8082/v1
# -----------------------------------------------------------------------------
# Mem0 记忆层配置
# -----------------------------------------------------------------------------
# ⭐ 注意Mem0 现在直接复用主 LLM 实例,无需单独配置
# Qdrant 向量数据库(远程服务器上的独立容器)
QDRANT_URL=http://115.190.121.151:6333
QDRANT_COLLECTION_NAME=mem0_user_memories
@@ -37,16 +54,9 @@ DB_URI=postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?
# 前端配置
# -----------------------------------------------------------------------------
# Docker Compose 内部网络,使用服务名 'backend'
API_URL=http://backend:8001/chat
API_URL=http://backend:8083/chat
# -----------------------------------------------------------------------------
# 应用行为配置
# -----------------------------------------------------------------------------
MEMORY_SUMMARIZE_INTERVAL=10
ENABLE_GRAPH_TRACE=false
# -----------------------------------------------------------------------------
# 日志配置
# -----------------------------------------------------------------------------
LOG_LEVEL=WARNING
DEBUG=false

View File

@@ -1,69 +1,41 @@
# =============================================================================
# Agent1 环境配置模板
# 用法: cp .env.example .env 然后修改配置值
# 用法: cp .env.example .env 然后根据实际需求修改
# =============================================================================
# -----------------------------------------------------------------------------
# AI 模型 API 密钥(必需 - 请填入真实值)
# -----------------------------------------------------------------------------
ZHIPUAI_API_KEY=your_api_key_here
# ⭐ 敏感密钥配置
# =============================================================================
# AI 模型 API 密钥
ZHIPUAI_API_KEY=your_zhipuai_api_key_here
DEEPSEEK_API_KEY=your_deepseek_api_key_here
# llama.cpp 服务认证 Token与容器启动参数一致
LLAMACPP_API_KEY=token-abc123
# -----------------------------------------------------------------------------
# llama.cpp 服务配置
# -----------------------------------------------------------------------------
# 主 LLM 服务 (Gemma-4-E2B GGUF)
# 本地开发: http://localhost:8081/v1
# Docker 部署: 根据实际部署调整
VLLM_BASE_URL=http://localhost:8081/v1
# ⭐ 日志调试配置(本地开发可灵活调整)
# =============================================================================
# 日志级别DEBUG, INFO, WARNING, ERROR, CRITICAL
# 本地开发推荐 DEBUG生产环境使用 WARNING
LOG_LEVEL=DEBUG
# Embedding 服务 (embeddinggemma-300M GGUF)
# 本地开发: http://localhost:8082/v1
VLLM_EMBEDDING_URL=http://localhost:8082/v1
# 是否启用 DEBUG 模式
DEBUG=true
# -----------------------------------------------------------------------------
# Mem0 记忆层配置
# -----------------------------------------------------------------------------
# ⭐ 注意Mem0 现在直接复用主 LLM 实例,无需单独配置
# Qdrant 向量数据库地址
# 本地开发: http://localhost:6333
# 远程服务器: http://115.190.121.151:6333
# Docker Compose: http://qdrant:6333
QDRANT_URL=http://115.190.121.151:6333
QDRANT_COLLECTION_NAME=mem0_user_memories
# -----------------------------------------------------------------------------
# 数据库配置
# -----------------------------------------------------------------------------
# PostgreSQL 连接字符串
# 本地开发: postgresql://postgres:mysecretpassword@localhost:5432/langgraph_db?sslmode=disable
# 远程服务器: postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?sslmode=disable
# Docker Compose: postgresql://postgres:mysecretpassword@postgres:5432/langgraph_db?sslmode=disable
DB_URI=postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?sslmode=disable
# -----------------------------------------------------------------------------
# 前端配置
# -----------------------------------------------------------------------------
# 后端 API 地址
# 本地开发: http://localhost:8001/chat
# Docker Compose: http://backend:8001/chat
API_URL=http://localhost:8001/chat
# -----------------------------------------------------------------------------
# 应用行为配置
# -----------------------------------------------------------------------------
# 记忆提取间隔:每 N 轮对话执行一次记忆提取(默认 10
MEMORY_SUMMARIZE_INTERVAL=10
# 是否启用 Graph 执行追踪(调试用,默认 true
# 是否启用 Graph 流转追踪
ENABLE_GRAPH_TRACE=true
# -----------------------------------------------------------------------------
# 日志配置
# -----------------------------------------------------------------------------
# 日志级别: DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_LEVEL=INFO
# ⭐ 可选配置(如需覆盖 Dockerfile/docker-compose.yml 中的默认值)
# =============================================================================
# 数据库连接(如需使用本地数据库而非远程服务器)
# DB_URI=postgresql://postgres:mysecretpassword@localhost:5432/langgraph_db?sslmode=disable
# 是否启用调试模式(默认 false
DEBUG=false
# Qdrant 地址(如需使用本地 Qdrant 而非远程服务器
# QDRANT_URL=http://localhost:6333
QDRANT_COLLECTION_NAME=mem0_user_memories
# llama.cpp 服务地址(如端口有变化)
# VLLM_BASE_URL=http://localhost:8081/v1
# VLLM_EMBEDDING_URL=http://localhost:8082/v1
# 前端 API 地址(本地开发时需显式配置)
API_URL=http://localhost:8083/chat

View File

@@ -104,7 +104,7 @@ DB_URI=postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?
QDRANT_URL=http://115.190.121.151:6333
# 本地开发时,后端也在 localhost
API_URL=http://localhost:8003/chat
API_URL=http://localhost:8083/chat
```
#### 3. 启动服务

View File

@@ -269,7 +269,7 @@ model_configs = {
| `VLLM_EMBEDDING_URL` | Embedding 服务地址 | `http://localhost:8082/v1` | `http://localhost:8082/v1` |
| `QDRANT_URL` | Qdrant 地址 | `http://115.190.121.151:6333` | `http://115.190.121.151:6333` |
| `DB_URI` | PostgreSQL 连接字符串 | `postgresql://...@115.190.121.151:5432/...` | `postgresql://...@115.190.121.151:5432/...` |
| `API_URL` | 后端 API 地址 | `http://localhost:8003/chat` | (由 docker-compose.yml 注入) |
| `API_URL` | 后端 API 地址 | `http://localhost:8083/chat` | (由 docker-compose.yml 注入) |
### 配置示例
@@ -282,7 +282,7 @@ VLLM_BASE_URL=http://localhost:8081/v1
VLLM_EMBEDDING_URL=http://localhost:8082/v1
QDRANT_URL=http://115.190.121.151:6333
DB_URI=postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?sslmode=disable
API_URL=http://localhost:8003/chat
API_URL=http://localhost:8083/chat
```
#### Docker 部署 (.env.docker)
@@ -294,7 +294,7 @@ VLLM_BASE_URL=http://localhost:8081/v1
VLLM_EMBEDDING_URL=http://localhost:8082/v1
QDRANT_URL=http://115.190.121.151:6333
DB_URI=postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?sslmode=disable
# API_URL 在 docker-compose.yml 中配置为 http://backend:8003/chat
# API_URL 在 docker-compose.yml 中配置为 http://backend:8083/chat
```
### 注意事项

View File

@@ -150,6 +150,6 @@ async def websocket_endpoint(
if __name__ == "__main__":
import uvicorn
# 使用环境变量或默认端口 8003避免与 vLLM 的 8001 端口冲突)
port = int(os.getenv("BACKEND_PORT", "8003"))
# 使用环境变量或默认端口 8083避免与 llama.cpp 的 8081 端口冲突)
port = int(os.getenv("BACKEND_PORT", "8083"))
uvicorn.run(app, host="0.0.0.0", port=port)

View File

@@ -2,21 +2,46 @@ FROM python:3.11-slim
WORKDIR /app
# 复制依赖文件并安装(利用 Docker 层缓存)
# =============================================================================
# 非敏感环境变量(固化在镜像中,无需通过 .env 配置)
# =============================================================================
ENV PYTHONPATH=/app
# llama.cpp 服务配置(本地部署标准端口)
ENV VLLM_BASE_URL=http://localhost:8081/v1
ENV VLLM_EMBEDDING_URL=http://localhost:8082/v1
# Mem0 记忆层配置
ENV QDRANT_COLLECTION_NAME=mem0_user_memories
# 应用行为配置(可通过 .env 覆盖)
ENV MEMORY_SUMMARIZE_INTERVAL=10
ENV ENABLE_GRAPH_TRACE=false
# 日志配置
ENV LOG_LEVEL=WARNING
ENV DEBUG=false
# =============================================================================
# 安装依赖
# =============================================================================
COPY requirement.txt .
RUN pip install --no-cache-dir -r requirement.txt
# =============================================================================
# 复制项目代码
# =============================================================================
COPY app/ ./app/
COPY frontend/ ./frontend/
COPY data/ ./data/
COPY scripts/ ./scripts/
# 设置 PYTHONPATH 确保模块能被找到
ENV PYTHONPATH=/app
# 暴露端口(文档用途)
EXPOSE 8001
# =============================================================================
# 暴露端口
# =============================================================================
EXPOSE 8083
# =============================================================================
# 启动命令
CMD ["python", "app/backend.py"]
# =============================================================================
CMD ["python", "app/backend.py"]

View File

@@ -8,14 +8,25 @@ services:
dockerfile: docker/Dockerfile.backend
container_name: ai-backend
environment:
# ⭐ 敏感密钥:通过 .env 注入
- ZHIPUAI_API_KEY=${ZHIPUAI_API_KEY}
- VLLM_LOCAL_KEY=${VLLM_LOCAL_KEY}
# ⭐ 使用远程服务器地址
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}
- LLAMACPP_API_KEY=${LLAMACPP_API_KEY}
# ⭐ 日志调试配置:通过 .env 注入(支持灵活调整)
- LOG_LEVEL=${LOG_LEVEL:-WARNING}
- DEBUG=${DEBUG:-false}
- ENABLE_GRAPH_TRACE=${ENABLE_GRAPH_TRACE:-false}
# ⭐ 基础设施配置:固化在 compose 文件中
# PostgreSQL 连接(远程服务器)
- DB_URI=postgresql://postgres:mysecretpassword@115.190.121.151:5432/langgraph_db?sslmode=disable
# Qdrant 向量数据库(远程服务器)
- QDRANT_URL=http://115.190.121.151:6333
- QDRANT_COLLECTION_NAME=user_memories
- EMBEDDING_MODEL=text-embedding-3-small
- MEMORY_SUMMARIZE_INTERVAL=${MEMORY_SUMMARIZE_INTERVAL:-10}
# 前端通信地址Docker 内部网络)
- API_URL=http://backend:8083/chat
volumes:
- ../data/user_docs:/app/data/user_docs # 挂载文档目录
- ../logs:/app/logs
@@ -24,7 +35,7 @@ services:
# ⭐ 移除对 postgres 和 qdrant 的依赖
restart: unless-stopped
ports:
- "8001:8001"
- "8083:8083"
frontend:
build:
@@ -33,7 +44,7 @@ services:
container_name: ai-frontend
environment:
# Docker 内部网络使用服务名 'backend' 解析后端服务
- API_URL=http://backend:8001/chat
- API_URL=http://backend:8083/chat
ports:
- "8501:8501"
networks:

View File

@@ -133,7 +133,7 @@ check_config() {
echo ""
echo "🔌 检查端口占用..."
for port in 8001 8501; do
for port in 8081 8082 8083 8501; do
if lsof -i :$port &> /dev/null; then
check_warn "端口 $port 已被占用"
else
@@ -280,7 +280,7 @@ start_embedding() {
# 启动 Python 服务
# =============================================================================
start_backend() {
echo -e "\n${BLUE}🚀 启动后端服务 (端口 8003)...${NC}"
echo -e "\n${BLUE}🚀 启动后端服务 (端口 8083)...${NC}"
cd "$PROJECT_DIR"
# 加载 .env 文件中的环境变量
@@ -289,7 +289,7 @@ start_backend() {
set +a
export PYTHONPATH="$PROJECT_DIR"
export BACKEND_PORT=8003
export BACKEND_PORT=8083
python app/backend.py &
BACKEND_PID=$!
echo -e "${GREEN}✓ 后端服务已启动 (PID: $BACKEND_PID)${NC}"