Files
ailine/backend/app/model_services/README.md
root 8db63e7a8d 重构:添加模型服务模块,支持嵌入和重排服务的自动降级
新增功能:
- 创建 app/model_services 模块,提供统一的模型服务获取接口
- 实现 BaseServiceProvider 基类和 FallbackServiceChain 降级链
- 实现 get_embedding_service():优先本地 llama.cpp,降级到智谱 API
- 实现 get_rerank_service():优先本地 llama.cpp,降级到智谱 API
- 支持单例管理,确保全局只有一个服务实例

修改内容:
- 更新 app/config.py,添加智谱 API 相关配置
- 修改 rag_core/vector_store.py:支持接受外部传入的 embeddings
- 修改 rag_core/retriever_factory.py:支持接受外部传入的 embeddings
- 修改 app/agent/rag_initializer.py:使用 get_embedding_service()
- 修改 app/rag/pipeline.py:使用 get_rerank_service()
- 修改 app/memory/mem0_client.py:智能判断可用服务配置 mem0
- 修改 rag_indexer/index_builder.py:支持使用新服务,保持向后兼容
- 修改 rag_indexer/config.py:添加智谱配置

环境变量:
- ZHIPUAI_API_KEY:智谱 API 密钥(必选)
- ZHIPU_EMBEDDING_MODEL:可选,默认 embedding-3
- ZHIPU_RERANK_MODEL:可选,默认 rerank-2
- ZHIPU_API_BASE:可选,默认 https://open.bigmodel.cn/api/paas/v4
2026-04-24 22:52:36 +08:00

32 lines
1003 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
模型服务模块model_services
提供统一的嵌入和重排模型服务获取接口,支持自动降级:
1. 优先使用本地 llama.cpp 服务
2. 本地服务不可用时,自动降级到智谱 API 服务
使用方法:
from app.model_services import get_embedding_service, get_rerank_service, BaseReranker
# 获取嵌入服务LangChain 兼容的 Embeddings
embeddings = get_embedding_service()
# 获取重排服务
reranker = get_rerank_service()
sorted_docs = reranker.compress_documents(documents, query, top_n=5)
环境变量配置:
# 智谱 API 配置
ZHIPUAI_API_KEY=your_api_key
ZHIPU_EMBEDDING_MODEL=embedding-3 # 可选embedding-2、embedding-3
ZHIPU_RERANK_MODEL=rerank-2 # 可选rerank-1、rerank-2
ZHIPU_API_BASE=https://open.bigmodel.cn/api/paas/v4
# 本地 llama.cpp 服务配置(原有配置保持不变)
LLAMACPP_EMBEDDING_URL=http://localhost:port/v1
LLAMACPP_RERANKER_URL=http://localhost:port/v1
LLAMACPP_API_KEY=your_api_key
"""