agentic_huge_data_base / wiki
页面 Mem0 · 6.2 LLM 配置·DeepWiki 中文全文译文

6.2 · LLM 配置(LLM Configuration)

长期记忆与上下文管理 · 本章是 Mem0 DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Mem0 章节6.2 状态全文译文 模块模型调用与提供方适配、系统架构、接口与服务契约、界面与交互
源码线索
  • docs/components/embedders/config.mdx
  • docs/components/embedders/overview.mdx
  • docs/components/llms/config.mdx
  • docs/components/llms/overview.mdx
  • mem0/configs/llms/azure.py
  • mem0/configs/llms/base.py
  • mem0/configs/llms/openai.py
  • mem0/embeddings/configs.py
  • mem0/llms/base.py
  • mem0/llms/configs.py
模块标签
  • 模型调用与提供方适配
  • 系统架构
  • 接口与服务契约
  • 界面与交互
  • 测试、发布与运维

中文译文

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.mdx
  • docs/components/embedders/overview.mdx
  • docs/components/llms/config.mdx
  • docs/components/llms/overview.mdx
  • mem0/configs/llms/azure.py
  • mem0/configs/llms/base.py
  • mem0/configs/llms/openai.py
  • mem0/embeddings/configs.py
  • mem0/llms/base.py
  • mem0/llms/configs.py
  • mem0/llms/openai.py
  • mem0/llms/xai.py
  • tests/llms/test_groq.py
  • tests/llms/test_openai.py
  • tests/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)提供商的通用参数。这些参数控制模型行为和连接设置的基本方面。

核心参数
参数类型默认值描述
modelstrNone模型标识符(例如 "gpt-4o-mini"、"claude-3-5-sonnet-20240620")
temperaturefloat0.1控制随机性(0.0-2.0)
api_keystrNone提供商的 API 密钥
max_tokensint2000生成的最大 Token 数(1-4096)
top_pfloat0.1核采样参数(0.0-1.0)
top_kint1Top-k 采样参数(1-40)
enable_visionboolFalse启用视觉能力
vision_detailsstr"auto"视觉处理级别("low"、"high"、"auto")
reasoning_effortstrNone推理模型的努力级别("low"、"medium"、"high")
http_client_proxiesdict/strNone内部 httpx.Client 的代理设置

如果提供了 http_client_proxiesBaseLlmConfig 会初始化一个 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_urlstrNone自定义 OpenAI API 基础 URL
modelsList[str]None用于 OpenRouter 路由的模型列表
routestr"fallback"OpenRouter 路由策略
openrouter_base_urlstrNoneOpenRouter API 基础 URL
site_urlstrNone用于 OpenRouter 请求头的站点 URL
app_namestrNone用于 OpenRouter 请求头的应用名称
storeboolNone是否在 OpenAI 服务器上存储对话(选择加入)
response_callbackCallableNone用于监控大语言模型(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 中,如果提供了工具,响应会被结构化为一个包含 contenttool_calls 列表的字典。每个工具调用包含函数 name 和解析后的 arguments mem0/llms/openai.py:65-80

推理模型支持

LLMBase 类包含过滤推理模型(例如 o1、o3、gpt-5)参数的逻辑。这些模型通常不支持 temperaturetop_p 等参数 mem0/llms/base.py:43-102

  • _is_reasoning_model:通过模型名称前缀(例如 o1-o3-)检测模型 mem0/llms/base.py:43-70
  • _get_supported_params:过滤掉推理模型的通用参数,仅保留 messagesresponse_formattoolstool_choicereasoning_effort mem0/llms/base.py:85-102

来源:mem0/llms/openai.py:54-82, mem0/llms/base.py:43-105, mem0/llms/openai.py:141-149

配置校验和优先级

值优先级规则

配置值按以下顺序解析:

  1. 显式值:在传递给构造函数的 config 字典中设置 docs/components/llms/config.mdx:30
  2. 环境变量:例如 OPENAI_API_KEYOPENAI_BASE_URL docs/components/llms/config.mdx:31
  3. 默认值:在特定大语言模型(LLM)实现中定义(例如,如果未提供模型,OpenAILLM 默认使用 gpt-5-minimem0/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