LLM 配置(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/mem0ai/mem0/6.2-llm-configuration
翻译时间:2026-05-27T08:45:00.989Z
翻译模型:deepseek-chat
原文字符数:9876
项目:Mem0 (mem0)
---
大语言模型(LLM)配置
相关源文件
以下文件为本 Wiki 页面的生成提供了上下文:
docs/components/embedders/config.mdxdocs/components/embedders/overview.mdxdocs/components/llms/config.mdxdocs/components/llms/overview.mdxmem0/configs/llms/azure.pymem0/configs/llms/base.pymem0/configs/llms/openai.pymem0/embeddings/configs.pymem0/llms/base.pymem0/llms/configs.pymem0/llms/openai.pymem0/llms/xai.pytests/llms/test_groq.pytests/llms/test_openai.pytests/llms/test_together.py
本文档介绍了 Mem0 中的大语言模型(LLM)配置系统,包括基础配置类、特定提供商的设置、工具调用和响应处理。重点说明如何在 Mem0 记忆系统中配置和定制大语言模型(LLM)提供商。
配置架构
Mem0 中的大语言模型(LLM)配置系统采用分层结构,基础配置类定义了通用参数,而特定提供商的实现则在此基础上扩展专用设置。
配置类层次结构
classDiagram
class BaseLlmConfig {
+model: str
+temperature: float
+api_key: str
+max_tokens: int
+top_p: float
+top_k: int
+enable_vision: bool
+vision_details: str
+reasoning_effort: str
+http_client: httpx.Client
+__init__()
}
class OpenAIConfig {
+openai_base_url: str
+models: List[str]
+route: str
+openrouter_base_url: str
+site_url: str
+app_name: str
+store: bool
+response_callback: Callable
+__init__()
}
class LlmConfig {
+provider: str
+config: dict
+validate_config()
}
class LLMBase {
<<abstract>>
+config: BaseLlmConfig
+generate_response()
#_get_supported_params()
#_is_reasoning_model()
}
class OpenAILLM {
+client: OpenAI
+generate_response()
#_parse_response()
}
class XAILLM {
+client: OpenAI
+generate_response()
}
BaseLlmConfig <|-- OpenAIConfig
LLMBase <|-- OpenAILLM
LLMBase <|-- XAILLM
LlmConfig ..> LLMBase : "配置"
OpenAILLM ..> OpenAIConfig : "使用"
来源:mem0/configs/llms/base.py:7-68, mem0/configs/llms/openai.py:6-88, mem0/llms/configs.py:6-36, mem0/llms/base.py:7-142, mem0/llms/openai.py:14-150, mem0/llms/xai.py:10-53
基础大语言模型(LLM)配置参数
BaseLlmConfig 类提供了适用于所有大语言模型(LLM)提供商的通用参数。这些参数控制模型行为和连接设置的基本方面。
核心参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | 模型标识符(例如 "gpt-4o-mini"、"claude-3-5-sonnet-20240620") |
temperature | float | 0.1 | 控制随机性(0.0-2.0) |
api_key | str | None | 提供商的 API 密钥 |
max_tokens | int | 2000 | 生成的最大 Token 数(1-4096) |
top_p | float | 0.1 | 核采样参数(0.0-1.0) |
top_k | int | 1 | Top-k 采样参数(1-40) |
enable_vision | bool | False | 启用视觉能力 |
vision_details | str | "auto" | 视觉处理级别("low"、"high"、"auto") |
reasoning_effort | str | None | 推理模型的努力级别("low"、"medium"、"high") |
http_client_proxies | dict/str | None | 内部 httpx.Client 的代理设置 |
如果提供了 http_client_proxies,BaseLlmConfig 会初始化一个 httpx.Client mem0/configs/llms/base.py:67-67。
来源:mem0/configs/llms/base.py:16-68
提供商配置系统
LlmConfig 类使用 Pydantic 校验和管理特定提供商的配置。
配置结构
graph TD
config_dict["LlmConfig (Pydantic 模型)"] --> provider["provider: str"]
config_dict --> config_nested["config: dict"]
provider --> validation["LlmConfig.validate_config()"]
validation --> supported_providers["支持的提供商"]
supported_providers --> openai["openai"]
supported_providers --> ollama["ollama"]
supported_providers --> anthropic["anthropic"]
supported_providers --> groq["groq"]
supported_providers --> aws_bedrock["aws_bedrock"]
supported_providers --> litellm["litellm"]
supported_providers --> azure_openai["azure_openai"]
supported_providers --> gemini["gemini"]
supported_providers --> deepseek["deepseek"]
supported_providers --> xai["xai"]
supported_providers --> sarvam["sarvam"]
supported_providers --> lmstudio["lmstudio"]
supported_providers --> vllm["vllm"]
supported_providers --> langchain["langchain"]
来源:mem0/llms/configs.py:6-36
特定提供商的配置参数
OpenAI 和 OpenRouter 配置
OpenAIConfig 类扩展了 BaseLlmConfig,增加了针对 OpenAI、OpenRouter 和监控的专用参数。
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
openai_base_url | str | None | 自定义 OpenAI API 基础 URL |
models | List[str] | None | 用于 OpenRouter 路由的模型列表 |
route | str | "fallback" | OpenRouter 路由策略 |
openrouter_base_url | str | None | OpenRouter API 基础 URL |
site_url | str | None | 用于 OpenRouter 请求头的站点 URL |
app_name | str | None | 用于 OpenRouter 请求头的应用名称 |
store | bool | None | 是否在 OpenAI 服务器上存储对话(选择加入) |
response_callback | Callable | None | 用于监控大语言模型(LLM)响应的函数 |
store 参数被显式处理,以避免将未知字段泄露到兼容 OpenAI 的后端(如 Gemini 或 Groq)mem0/llms/openai.py:129-133。
来源:mem0/configs/llms/openai.py:12-87, mem0/llms/openai.py:112-133
工具调用和响应处理
Mem0 实现了一种标准化的方式来处理大语言模型(LLM)响应,特别是在涉及工具调用(函数调用)时。
响应数据流
sequenceDiagram
participant LLM as "OpenAILLM.generate_response()"
participant API as "大语言模型(LLM)提供商 API"
participant Parser as "OpenAILLM._parse_response()"
participant Callback as "response_callback"
LLM->>API: 聊天补全请求(消息、工具、tool_choice)
API-->>LLM: 原始 API 响应
LLM->>Parser: _parse_response(response, tools)
alt 提供了工具
Parser->>Parser: 提取内容 & tool_calls
Parser->>Parser: json.loads(tool_call.arguments)
else 没有工具
Parser->>Parser: 提取内容字符串
end
Parser-->>LLM: 处理后的响应
LLM->>Callback: 如果配置了则调用
LLM-->>LLM: 返回处理后的响应
工具调用解析
在 OpenAILLM._parse_response 中,如果提供了工具,响应会被结构化为一个包含 content 和 tool_calls 列表的字典。每个工具调用包含函数 name 和解析后的 arguments mem0/llms/openai.py:65-80。
推理模型支持
LLMBase 类包含过滤推理模型(例如 o1、o3、gpt-5)参数的逻辑。这些模型通常不支持 temperature 或 top_p 等参数 mem0/llms/base.py:43-102。
- _is_reasoning_model:通过模型名称前缀(例如
o1-、o3-)检测模型mem0/llms/base.py:43-70。 - _get_supported_params:过滤掉推理模型的通用参数,仅保留
messages、response_format、tools、tool_choice和reasoning_effortmem0/llms/base.py:85-102。
来源:mem0/llms/openai.py:54-82, mem0/llms/base.py:43-105, mem0/llms/openai.py:141-149
配置校验和优先级
值优先级规则
配置值按以下顺序解析:
- 显式值:在传递给构造函数的
config字典中设置docs/components/llms/config.mdx:30。 - 环境变量:例如
OPENAI_API_KEY或OPENAI_BASE_URLdocs/components/llms/config.mdx:31。 - 默认值:在特定大语言模型(LLM)实现中定义(例如,如果未提供模型,
OpenAILLM默认使用gpt-5-mini)mem0/llms/openai.py:38-39。
实现示例:OpenAI
OpenAILLM 类处理复杂的初始化逻辑,先检查 OpenRouter 特定的密钥,然后回退到标准的 OpenAI 变量 mem0/llms/openai.py:41-52。
# 来自 mem0/llms/openai.py:41-52
if os.environ.get("OPENROUTER_API_KEY"): # 使用 OpenRouter
self.client = OpenAI(
api_key=os.environ.get("OPENROUTER_API_KEY"),
base_url=self.config.openrouter_base_url
or os.getenv("OPENROUTER_API_BASE")
or "https://openrouter.ai/api/v1",
)
else:
api_key = self.config.api_key or os.getenv("OPENAI_API_KEY")
base_url = self.config.openai_base_url or os.getenv("OPENAI_BASE_URL") or "https://api.openai.com/v1"
self.client = OpenAI(api_key=api_key, base_url=base_url)
来源:docs/components/llms/config.mdx:26-34, mem0/llms/openai.py:15-52, mem0/configs/llms/base.py:16-68