This commit is contained in:
4
.env
4
.env
@@ -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
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 应用行为配置
|
||||
|
||||
38
.env.docker
38
.env.docker
@@ -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
|
||||
86
.env.example
86
.env.example
@@ -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
|
||||
@@ -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. 启动服务
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
### 注意事项
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"]
|
||||
@@ -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:
|
||||
|
||||
@@ -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}"
|
||||
|
||||
Reference in New Issue
Block a user