diff --git a/.env.docker b/.env.docker index 65c2efe..450ed17 100644 --- a/.env.docker +++ b/.env.docker @@ -1,16 +1,14 @@ # ============================================================================= -# Docker Compose 服务器部署配置 -# 用法: cp .env.docker .env 然后填入 API Key +# Docker Compose 服务器部署配置模板 +# 用法: cp .env.docker .env 然后填入敏感密钥 # ============================================================================= -# ⭐ 敏感密钥配置(必须在此配置) -# ============================================================================= -# AI 模型 API 密钥 -ZHIPUAI_API_KEY=your_zhipuai_api_key_here -DEEPSEEK_API_KEY=your_deepseek_api_key_here - -# llama.cpp 服务认证 Token(与容器启动参数一致) -LLAMACPP_API_KEY=huang1998 +# ----------------------------------------------------------------------------- +# AI 模型 API 密钥(⭐ 敏感配置 - 必须填入真实值) +# ----------------------------------------------------------------------------- +ZHIPUAI_API_KEY=your_zhipuai_api_key_here # ⭐ 敏感密钥配置 +DEEPSEEK_API_KEY=your_deepseek_api_key_here # ⭐ 敏感密钥配置 +LLAMACPP_API_KEY=your_llamacpp_api_key_here # ⭐ 敏感密钥配置 # ----------------------------------------------------------------------------- # PostgreSQL 数据库配置(分离配置,易于管理) @@ -18,33 +16,47 @@ LLAMACPP_API_KEY=huang1998 DB_HOST=115.190.121.151 DB_PORT=5432 DB_USER=postgres -DB_PASSWORD=huang1998 +DB_PASSWORD=your_db_password_here # ⭐ 敏感密钥配置 DB_NAME=langgraph_db # 完整连接字符串(也支持直接配置,优先使用分离配置) -DB_URI=postgresql://postgres:huang1998@115.190.121.151:5432/langgraph_db?sslmode=disable +DB_URI=postgresql://postgres:${DB_PASSWORD}@115.190.121.151:5432/langgraph_db?sslmode=disable # ----------------------------------------------------------------------------- # Qdrant 向量数据库配置(URL + API密钥 配对) # ----------------------------------------------------------------------------- QDRANT_URL=http://115.190.121.151:6333 -QDRANT_API_KEY=huang1998 +QDRANT_API_KEY=your_qdrant_api_key_here # ⭐ 敏感密钥配置 QDRANT_COLLECTION_NAME=mem0_user_memories # ----------------------------------------------------------------------------- # llama.cpp 服务配置(URL + API密钥 配对) # ----------------------------------------------------------------------------- -# 主 LLM 服务 (Gemma-4-E2B GGUF) - 端口 8081 +# 主 LLM 服务 (Gemma-4-E2B GGUF) - 端口 18000 (Docker host 映射) VLLM_BASE_URL=http://host.docker.internal:18000/v1 -# Embedding 服务 (embeddinggemma-300M GGUF) - 端口 8082 +# Embedding 服务 (Qwen3-Embedding-0.6B GGUF) - 端口 18001 LLAMACPP_EMBEDDING_URL=http://host.docker.internal:18001/v1 -# LLAMACPP_API_KEY=huang1998 (已在上面配置) +# LLAMACPP_API_KEY=your_llamacpp_api_key_here (已在上面配置) -# Reranker 服务 (bge-reranker-v2-m3) - 端口 8083 +# Reranker 服务 (bge-reranker-v2-m3) - 端口 18002 LLAMACPP_RERANKER_URL=http://host.docker.internal:18002/v1 -# ⭐ 日志调试配置(部署时可灵活调整) -# ============================================================================= +# ----------------------------------------------------------------------------- +# RAG 索引构建配置(非敏感,可直接使用) +# ----------------------------------------------------------------------------- +RAG_COLLECTION_NAME=rag_documents +RAG_CHUNK_SIZE=500 +RAG_CHUNK_OVERLAP=50 +RAG_PARENT_CHUNK_SIZE=1000 +RAG_CHILD_CHUNK_SIZE=200 +RAG_PARENT_CHUNK_OVERLAP=100 +RAG_CHILD_CHUNK_OVERLAP=20 +RAG_STRATEGY=parent-child +RAG_STORAGE_TYPE=postgres + +# ----------------------------------------------------------------------------- +# 日志调试配置(部署时可灵活调整) +# ----------------------------------------------------------------------------- # 日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL # 生产环境推荐 WARNING,排查问题时改为 DEBUG LOG_LEVEL=WARNING @@ -59,17 +71,13 @@ DEBUG=false # false: 关闭追踪,减少日志量 ENABLE_GRAPH_TRACE=false +# ----------------------------------------------------------------------------- +# 应用行为配置 +# ----------------------------------------------------------------------------- +MEMORY_SUMMARIZE_INTERVAL=10 + # ----------------------------------------------------------------------------- # 前端配置 # ----------------------------------------------------------------------------- # Docker Compose 内部网络,使用服务名 'backend' API_URL=http://backend:8079/chat - -# ⭐ 前端通信地址(Docker 内部网络) -# 注意:这里只需要域名和端口,不需要 /chat 路径 -# API_URL=http://backend:8079 - -# ----------------------------------------------------------------------------- -# 应用行为配置 -# ----------------------------------------------------------------------------- -MEMORY_SUMMARIZE_INTERVAL=10 diff --git a/backend/app/graph/visualize_graph.py b/backend/app/graph/visualize_graph.py index 83d1f13..9059ce8 100644 --- a/backend/app/graph/visualize_graph.py +++ b/backend/app/graph/visualize_graph.py @@ -2,22 +2,7 @@ """ LangGraph 图结构可视化脚本 快速查看节点和边的连接关系 - -================================================================================ -运行方式(推荐用第一种): -================================================================================ - -方式 1: 从项目根目录直接运行脚本(推荐,最稳定) ----------------------------------------------------------------------- -cd /home/huang/Study/AIProject/Agent1 -python backend/app/graph/visualize_graph.py - -方式 2: 如果非要用模块方式运行,需要先设置 PYTHONPATH ----------------------------------------------------------------------- -cd /home/huang/Study/AIProject/Agent1 -export PYTHONPATH=/home/huang/Study/AIProject/Agent1/backend:$PYTHONPATH -python -m backend.app.graph.visualize_graph -================================================================================ +运行方式:python backend/app/graph/visualize_graph.py """ import sys from pathlib import Path diff --git a/docker/backend/Dockerfile b/docker/backend/Dockerfile index f665859..0084353 100644 --- a/docker/backend/Dockerfile +++ b/docker/backend/Dockerfile @@ -3,35 +3,69 @@ FROM python:3.11-slim WORKDIR /app # ============================================================================= -# 非敏感环境变量(固化在镜像中,无需通过 .env 配置) +# 非敏感环境变量(固化在镜像中,可通过 .env 覆盖) # ============================================================================= ENV PYTHONPATH=/app -# llama.cpp 服务配置(本地部署标准端口) +# ============================================================================= +# llama.cpp 服务配置(Docker 部署标准端口映射) +# ============================================================================= +# 主 LLM 服务 - Docker host 端口 18000 ENV VLLM_BASE_URL=http://host.docker.internal:18000/v1 +# Embedding 服务 - Docker host 端口 18001 ENV LLAMACPP_EMBEDDING_URL=http://host.docker.internal:18001/v1 -ENV LLAMACPP_RERENT_URL=http://host.docker.internal:18002/v1 +# Reranker 服务 - Docker host 端口 18002 +ENV LLAMACPP_RERANKER_URL=http://host.docker.internal:18002/v1 -# Mem0 记忆层配置 +# ============================================================================= +# 数据库 & 向量库配置(非敏感部分) +# ============================================================================= +# PostgreSQL(敏感信息通过 .env 注入) +ENV DB_HOST=115.190.121.151 +ENV DB_PORT=5432 +ENV DB_USER=postgres +ENV DB_NAME=langgraph_db + +# Qdrant(敏感信息通过 .env 注入) +ENV QDRANT_URL=http://115.190.121.151:6333 ENV QDRANT_COLLECTION_NAME=mem0_user_memories -# 应用行为配置(可通过 .env 覆盖) +# ============================================================================= +# RAG 索引构建配置(非敏感) +# ============================================================================= +ENV RAG_COLLECTION_NAME=rag_documents +ENV RAG_CHUNK_SIZE=500 +ENV RAG_CHUNK_OVERLAP=50 +ENV RAG_PARENT_CHUNK_SIZE=1000 +ENV RAG_CHILD_CHUNK_SIZE=200 +ENV RAG_PARENT_CHUNK_OVERLAP=100 +ENV RAG_CHILD_CHUNK_OVERLAP=20 +ENV RAG_STRATEGY=parent-child +ENV RAG_STORAGE_TYPE=postgres + +# ============================================================================= +# 应用行为配置 +# ============================================================================= ENV MEMORY_SUMMARIZE_INTERVAL=10 ENV ENABLE_GRAPH_TRACE=false -# 日志配置 +# ============================================================================= +# 日志配置(生产环境默认值) +# ============================================================================= ENV LOG_LEVEL=WARNING ENV DEBUG=false # ============================================================================= # 安装依赖 # ============================================================================= -# 复制本地模型文件到镜像 -COPY docker/models/*.whl /tmp/models/ +# 复制本地模型文件到镜像(如果有) +COPY docker/models/*.whl /tmp/models/ 2>/dev/null || true -# 安装 -RUN pip install --no-cache-dir /tmp/models/*.whl && \ - rm -rf /tmp/models +# 安装本地模型 wheel(如果有) +RUN if [ -n "$(ls -A /tmp/models/ 2>/dev/null)" ]; then \ + pip install --no-cache-dir /tmp/models/*.whl && \ + rm -rf /tmp/models; \ + fi # 设置 pip 国内镜像源 RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple @@ -50,7 +84,6 @@ COPY backend/ ./ # ============================================================================= EXPOSE 8079 - # ============================================================================= # 启动命令 # ============================================================================= diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 2c02265..f7045cc 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -5,37 +5,75 @@ services: dockerfile: docker/backend/Dockerfile container_name: ai-backend environment: - # ⭐ 敏感密钥:通过 .env 注入 - - ZHIPUAI_API_KEY=${ZHIPUAI_API_KEY} - - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} - - LLAMACPP_API_KEY=${LLAMACPP_API_KEY} + # ========================================================================= + # ⭐ 敏感密钥配置 - 必须通过 .env 文件注入 + # ========================================================================= + - ZHIPUAI_API_KEY=${ZHIPUAI_API_KEY:?请在 .env 中配置 ZHIPUAI_API_KEY} # ⭐ 敏感密钥配置 + - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:?请在 .env 中配置 DEEPSEEK_API_KEY} # ⭐ 敏感密钥配置 + - LLAMACPP_API_KEY=${LLAMACPP_API_KEY:?请在 .env 中配置 LLAMACPP_API_KEY} # ⭐ 敏感密钥配置 - # ⭐ 日志调试配置:通过 .env 注入(支持灵活调整) + # ========================================================================= + # PostgreSQL 数据库配置 + # ========================================================================= + - DB_HOST=115.190.121.151 + - DB_PORT=5432 + - DB_USER=postgres + - DB_PASSWORD=${DB_PASSWORD:?请在 .env 中配置 DB_PASSWORD} # ⭐ 敏感密钥配置 + - DB_NAME=langgraph_db + + # ========================================================================= + # Qdrant 向量数据库配置(URL + API密钥 配对) + # ========================================================================= + - QDRANT_URL=http://115.190.121.151:6333 + - QDRANT_API_KEY=${QDRANT_API_KEY:?请在 .env 中配置 QDRANT_API_KEY} # ⭐ 敏感密钥配置 + - QDRANT_COLLECTION_NAME=mem0_user_memories + + # ========================================================================= + # llama.cpp 服务配置(URL + API密钥 配对) + # ========================================================================= + # 主 LLM 服务 (Gemma-4-E2B GGUF) - Docker host 端口 18000 + - VLLM_BASE_URL=http://host.docker.internal:18000/v1 + # Embedding 服务 (Qwen3-Embedding-0.6B GGUF) - Docker host 端口 18001 + - LLAMACPP_EMBEDDING_URL=http://host.docker.internal:18001/v1 + # Reranker 服务 (bge-reranker-v2-m3) - Docker host 端口 18002 + - LLAMACPP_RERANKER_URL=http://host.docker.internal:18002/v1 + + # ========================================================================= + # RAG 索引构建配置(非敏感) + # ========================================================================= + - RAG_COLLECTION_NAME=rag_documents + - RAG_CHUNK_SIZE=500 + - RAG_CHUNK_OVERLAP=50 + - RAG_PARENT_CHUNK_SIZE=1000 + - RAG_CHILD_CHUNK_SIZE=200 + - RAG_PARENT_CHUNK_OVERLAP=100 + - RAG_CHILD_CHUNK_OVERLAP=20 + - RAG_STRATEGY=parent-child + - RAG_STORAGE_TYPE=postgres + + # ========================================================================= + # 日志调试配置(可通过 .env 覆盖) + # ========================================================================= - LOG_LEVEL=${LOG_LEVEL:-WARNING} - DEBUG=${DEBUG:-false} - ENABLE_GRAPH_TRACE=${ENABLE_GRAPH_TRACE:-false} - # ⭐ 基础设施配置:从 .env 读取敏感信息 - # PostgreSQL 连接(远程服务器)- 分离凭据配置 - - DB_HOST=115.190.121.151 - - DB_PORT=5432 - - DB_USER=postgres - - DB_PASSWORD=${DB_PASSWORD} - - DB_NAME=langgraph_db - - # Qdrant 向量数据库(远程服务器)- 配对配置 - - QDRANT_URL=http://115.190.121.151:6333 - - QDRANT_API_KEY=${QDRANT_API_KEY} - - QDRANT_COLLECTION_NAME=mem0_user_memories + # ========================================================================= + # 应用行为配置 + # ========================================================================= + - MEMORY_SUMMARIZE_INTERVAL=${MEMORY_SUMMARIZE_INTERVAL:-10} + # ========================================================================= # 前端通信地址(Docker 内部网络) + # ========================================================================= - API_URL=http://backend:8079/chat + volumes: - ../data/user_docs:/app/data/user_docs # 挂载文档目录 - ../logs:/app/logs networks: - ai-network - # ⭐ 移除对 postgres 和 qdrant 的依赖 + # ⭐ 移除对 postgres 和 qdrant 的依赖(使用远程服务) restart: unless-stopped ports: - "8079:8079"