All checks were successful
构建并部署 AI Agent 服务 / deploy (push) Successful in 12m9s
## 核心改动 ### 1. 单图方案重构 - 删除了多图(self.graphs),改为单图(self.graph) - 新增 MainGraphState.current_model 字段用于运行时注入模型 - llm_call 节点改为动态选择模型(create_dynamic_llm_call_node) ### 2. chat_services 优化 - 添加 _cached_services 缓存,避免重复初始化 - 新增 get_cached_chat_services() 函数,用于单图注入 - 新增 _check_http_service_available() 统一HTTP探测逻辑 - 减少重复代码,LocalVLLMChatProvider和LocalSmallModelProvider共用探测方法 ### 3. AIAgentService 重构 - initialize() 只构建一次图,传入 chat_services 字典 - 新增 _resolve_model() 模型回退逻辑 - 新增 _build_invocation() 统一构建调用参数 - process_message() 和 process_message_stream() 改为注入 current_model - 流式处理代码拆分,增加可读性 ### 4. 新增和删除文件 - 新增:backend/app/main_graph/main_graph_builder.py(图构建) - 新增:backend/app/main_graph/subgraph_wrapper.py(子图封装) - 新增:tools/test/test_tavily_search.py(测试) - 删除:backend/app/main_graph/graph.py(旧图) - 删除:backend/app/main_graph/utils/main_graph_builder.py(旧构建器) - 删除:backend/app/main_graph/utils/__init__.py ### 5. 其他更新 - README.md:新增模型服务使用情况详解章节 - backend/app/model_services/__init__.py:新增 get_cached_chat_services 导出 ## 方案优势 - 内存优化:N张图 → 1张图 - 灵活性:运行时动态选择模型,支持同会话不同模型 - 性能:模型服务缓存,初始化仅一次 - 可维护性:减少重复代码,统一HTTP探测逻辑
107 lines
4.3 KiB
Docker
107 lines
4.3 KiB
Docker
# =============================================================================
|
||
# Docker 部署环境配置文件
|
||
# 用法: cp .env.docker .env 然后修改配置值用于Docker部署
|
||
# =============================================================================
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# AI 模型 API 密钥(必需 - 请填入真实值)
|
||
# -----------------------------------------------------------------------------
|
||
ZHIPUAI_API_KEY=你的智谱API密钥
|
||
DEEPSEEK_API_KEY=你的深度求索API密钥
|
||
LLAMACPP_API_KEY=huang1998
|
||
SILICONFLOW_API_KEY=你的硅基流动API密钥(可选,本地服务故障时降级使用)
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# llama.cpp 服务配置(Docker环境下使用host.docker.internal访问宿主服务)
|
||
# -----------------------------------------------------------------------------
|
||
# 主 LLM 服务 (Gemma-4-E2B GGUF) - 宿主端口 18000
|
||
VLLM_BASE_URL=http://host.docker.internal:18000/v1
|
||
|
||
# Embedding 服务 (Qwen3-Embedding-0.6B GGUF) - 宿主端口 18001
|
||
LLAMACPP_EMBEDDING_URL=http://host.docker.internal:18001/v1
|
||
|
||
# Reranker 服务 (bge-reranker-v2-m3) - 宿主端口 18002
|
||
LLAMACPP_RERANKER_URL=http://host.docker.internal:18002/v1
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# Qdrant 向量数据库配置(使用远程服务)
|
||
# -----------------------------------------------------------------------------
|
||
QDRANT_URL=http://115.190.121.151:6333
|
||
QDRANT_API_KEY=你的QdrantAPI密钥
|
||
QDRANT_COLLECTION_NAME=mem0_user_memories
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# PostgreSQL 数据库配置(使用远程服务)
|
||
# -----------------------------------------------------------------------------
|
||
DB_HOST=115.190.121.151
|
||
DB_PORT=5432
|
||
DB_USER=postgres
|
||
DB_PASSWORD=你的PostgreSQL密码
|
||
DB_NAME=langgraph_db
|
||
# 完整连接字符串(可选,优先使用分离配置)
|
||
DB_URI=postgresql://postgres:你的PostgreSQL密码@115.190.121.151:5432/langgraph_db?sslmode=disable
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 后端服务配置
|
||
# -----------------------------------------------------------------------------
|
||
BACKEND_PORT=8079
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 前端配置(Docker内部通信)
|
||
# -----------------------------------------------------------------------------
|
||
API_URL=http://backend:8079/chat
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 应用行为配置
|
||
# -----------------------------------------------------------------------------
|
||
# 记忆提取间隔:每 N 轮对话执行一次记忆提取
|
||
MEMORY_SUMMARIZE_INTERVAL=10
|
||
|
||
# 是否启用 Graph 执行追踪(调试用)
|
||
ENABLE_GRAPH_TRACE=true
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# Tavily 搜索配置
|
||
# 免费额度:1000次/天,官网:https://app.tavily.com
|
||
# -----------------------------------------------------------------------------
|
||
TAVILY_API_KEY=你的Tavily_API密钥
|
||
TAVILY_MAX_RESULTS=5
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 稀疏模型配置
|
||
# -----------------------------------------------------------------------------
|
||
FASTEMBED_CACHE_PATH=/app/fastembed_cache
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# RAG 索引构建配置
|
||
# -----------------------------------------------------------------------------
|
||
# Qdrant 集合名称
|
||
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
|
||
|
||
# 切分策略:basic(基础)、semantic(语义)、parent-child(父子块)
|
||
RAG_STRATEGY=parent-child
|
||
|
||
# 存储类型:postgres(PostgreSQL)、local(本地文件)
|
||
RAG_STORAGE_TYPE=postgres
|
||
|
||
# 文档加载器配置(可选)
|
||
# OCR 语言列表(逗号分隔)
|
||
RAG_OCR_LANGUAGES=chi_sim,eng
|
||
# 文档主语言列表(逗号分隔)
|
||
RAG_DOC_LANGUAGES=zh
|
||
|
||
# -----------------------------------------------------------------------------
|
||
# 日志配置
|
||
# -----------------------------------------------------------------------------
|
||
LOG_LEVEL=DEBUG
|
||
DEBUG=true |