2026-04-13 23:57:16 +08:00
|
|
|
|
FROM python:3.11-slim
|
|
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
2026-04-16 00:31:33 +08:00
|
|
|
|
# =============================================================================
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# 非敏感环境变量(固化在镜像中,可通过 .env 覆盖)
|
2026-04-16 00:31:33 +08:00
|
|
|
|
# =============================================================================
|
2026-04-21 18:41:14 +08:00
|
|
|
|
ENV PYTHONPATH=/app
|
2026-04-16 00:31:33 +08:00
|
|
|
|
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# llama.cpp 服务配置(Docker 部署标准端口映射)
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 主 LLM 服务 - Docker host 端口 18000
|
2026-04-17 01:26:05 +08:00
|
|
|
|
ENV VLLM_BASE_URL=http://host.docker.internal:18000/v1
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# Embedding 服务 - Docker host 端口 18001
|
2026-04-17 01:26:05 +08:00
|
|
|
|
ENV LLAMACPP_EMBEDDING_URL=http://host.docker.internal:18001/v1
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# Reranker 服务 - Docker host 端口 18002
|
|
|
|
|
|
ENV LLAMACPP_RERANKER_URL=http://host.docker.internal:18002/v1
|
2026-04-16 00:31:33 +08:00
|
|
|
|
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 数据库 & 向量库配置(非敏感部分)
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 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
|
2026-04-16 00:31:33 +08:00
|
|
|
|
ENV QDRANT_COLLECTION_NAME=mem0_user_memories
|
|
|
|
|
|
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 应用行为配置
|
|
|
|
|
|
# =============================================================================
|
2026-04-16 00:31:33 +08:00
|
|
|
|
ENV MEMORY_SUMMARIZE_INTERVAL=10
|
|
|
|
|
|
ENV ENABLE_GRAPH_TRACE=false
|
|
|
|
|
|
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 日志配置(生产环境默认值)
|
|
|
|
|
|
# =============================================================================
|
2026-04-16 00:31:33 +08:00
|
|
|
|
ENV LOG_LEVEL=WARNING
|
|
|
|
|
|
ENV DEBUG=false
|
|
|
|
|
|
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 安装依赖
|
|
|
|
|
|
# =============================================================================
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# 复制本地模型文件到镜像(如果有)
|
|
|
|
|
|
COPY docker/models/*.whl /tmp/models/ 2>/dev/null || true
|
2026-04-21 00:00:56 +08:00
|
|
|
|
|
2026-04-21 22:07:20 +08:00
|
|
|
|
# 安装本地模型 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
|
2026-04-21 00:00:56 +08:00
|
|
|
|
|
2026-04-20 23:11:07 +08:00
|
|
|
|
# 设置 pip 国内镜像源
|
|
|
|
|
|
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
|
|
|
|
|
|
|
|
|
|
|
# 复制 requirement 并安装(增加超时时间)
|
2026-04-21 10:26:37 +08:00
|
|
|
|
COPY backend/requirements.txt .
|
|
|
|
|
|
RUN pip install --no-cache-dir --default-timeout=300 -r requirements.txt
|
2026-04-13 23:57:16 +08:00
|
|
|
|
|
2026-04-19 15:01:40 +08:00
|
|
|
|
# =============================================================================
|
2026-04-21 10:26:37 +08:00
|
|
|
|
# 复制项目代码
|
2026-04-19 15:01:40 +08:00
|
|
|
|
# =============================================================================
|
2026-04-21 10:26:37 +08:00
|
|
|
|
COPY backend/ ./
|
2026-04-13 23:57:16 +08:00
|
|
|
|
|
2026-04-16 00:31:33 +08:00
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# 暴露端口
|
|
|
|
|
|
# =============================================================================
|
2026-04-21 10:26:37 +08:00
|
|
|
|
EXPOSE 8079
|
|
|
|
|
|
|
2026-04-16 00:31:33 +08:00
|
|
|
|
# =============================================================================
|
2026-04-13 23:57:16 +08:00
|
|
|
|
# 启动命令
|
2026-04-16 00:31:33 +08:00
|
|
|
|
# =============================================================================
|
2026-04-21 10:26:37 +08:00
|
|
|
|
CMD ["python", "app/backend.py"]
|