services: backend: build: context: .. # 构建上下文为项目根目录 dockerfile: docker/backend/Dockerfile container_name: ai-backend environment: # ========================================================================= # ⭐ 敏感密钥配置 - 必须配置(本地:.env 文件 | CI/CD:Secrets) # ========================================================================= - ZHIPUAI_API_KEY=${ZHIPUAI_API_KEY:?请配置 ZHIPUAI_API_KEY(本地:.env 文件 | CI/CD:Secrets)} # ⭐ 敏感密钥配置 - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:?请配置 DEEPSEEK_API_KEY(本地:.env 文件 | CI/CD:Secrets)} # ⭐ 敏感密钥配置 - LLAMACPP_API_KEY=${LLAMACPP_API_KEY:?请配置 LLAMACPP_API_KEY(本地:.env 文件 | CI/CD:Secrets)} # ⭐ 敏感密钥配置 # ========================================================================= # PostgreSQL 数据库配置 # ========================================================================= - DB_HOST=115.190.121.151 - DB_PORT=5432 - DB_USER=postgres - DB_PASSWORD=${DB_PASSWORD:?请配置 DB_PASSWORD(本地:.env 文件 | CI/CD:Secrets)} # ⭐ 敏感密钥配置 - DB_NAME=langgraph_db # ========================================================================= # Qdrant 向量数据库配置(URL + API密钥 配对) # ========================================================================= - QDRANT_URL=http://115.190.121.151:6333 - QDRANT_API_KEY=${QDRANT_API_KEY:?请配置 QDRANT_API_KEY(本地:.env 文件 | CI/CD:Secrets)} # ⭐ 敏感密钥配置 - 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} # ========================================================================= # 应用行为配置 # ========================================================================= - 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 的依赖(使用远程服务) restart: unless-stopped ports: - "8079:8079" frontend: build: context: .. dockerfile: docker/frontend/Dockerfile container_name: ai-frontend environment: # Docker 内部网络使用服务名 'backend' 解析后端服务 - API_URL=http://backend:8079/chat ports: - "8501:8501" networks: - ai-network depends_on: - backend restart: unless-stopped networks: ai-network: driver: bridge