agentic_huge_data_base / wiki
页面 Mem0 · 6 AI 模型集成·DeepWiki 中文全文译文

6 · AI 模型集成

长期记忆与上下文管理 · 聚焦本章的模块关系、源码依据与实现要点。

项目Mem0 章节6 状态全文译文 模块模型调用与提供方适配、检索、召回与索引、接口与服务契约、界面与交互
源码线索
  • docs/components/embedders/config.mdx
  • docs/components/embedders/overview.mdx
  • docs/components/llms/config.mdx
  • docs/components/llms/overview.mdx
  • mem0-ts/src/oss/src/embeddings/ollama.ts
  • mem0-ts/src/oss/src/llms/ollama.ts
  • mem0-ts/src/oss/tests/ollama-embedder.test.ts
  • mem0/configs/embeddings/base.py
  • mem0/configs/llms/base.py
  • mem0/embeddings/base.py
模块标签
  • 模型调用与提供方适配
  • 检索、召回与索引
  • 接口与服务契约
  • 界面与交互
  • 系统架构

章节正文

AI 模型集成

AI 模型集成

相关源文件

本章引用的主要源码文件:

  • docs/components/embedders/config.mdx
  • docs/components/embedders/overview.mdx
  • docs/components/llms/config.mdx
  • docs/components/llms/overview.mdx
  • mem0-ts/src/oss/src/embeddings/ollama.ts
  • mem0-ts/src/oss/src/llms/ollama.ts
  • mem0-ts/src/oss/tests/ollama-embedder.test.ts
  • mem0/configs/embeddings/base.py
  • mem0/configs/llms/base.py
  • mem0/embeddings/base.py
  • mem0/embeddings/configs.py
  • mem0/embeddings/gemini.py
  • mem0/embeddings/huggingface.py
  • mem0/embeddings/ollama.py
  • mem0/embeddings/openai.py
  • mem0/llms/configs.py
  • mem0/llms/gemini.py
  • mem0/llms/xai.py
  • tests/embeddings/test_huggingface_embeddings.py
  • tests/embeddings/test_ollama_embeddings.py
  • tests/embeddings/test_openai_embeddings.py

目的与范围

本文档介绍 mem0 中的 AI 模型集成层,包括大语言模型(LLM)和嵌入向量模型。这些集成通过事实提取、冲突解决和语义搜索能力,支撑 mem0 的核心记忆操作。

关于如何通过工厂模式选择和实例化这些模型,请参见提供者生态。关于配置优先级和校验,请参见配置系统

集成架构总览

Mem0 通过基类和特定提供者的实现,为与多个 AI 提供者交互提供了统一接口。该架构将大语言模型(LLM)操作(文本生成、工具调用)与嵌入向量操作(向量生成)分离开来。

集成组件关系

标题:AI 集成组件关系

Mem0 · 集成组件关系 · 图 1
Mem0 · 集成组件关系 · 图 1

来源: mem0/llms/base.py:7-12mem0/embeddings/base.py:7-32mem0/configs/llms/base.py:7-67mem0/configs/embeddings/base.py:10-111mem0/llms/configs.py:6-9mem0/embeddings/configs.py:6-11

大语言模型基础架构

LLMBase 抽象类

所有大语言模型提供者都继承自 LLMBase,该类定义了文本生成操作的标准接口。基类确保所有提供者的行为一致。

大语言模型类层次结构

标题:大语言模型类层次结构

Mem0 · 大语言模型类层次结构 · 图 2
Mem0 · 大语言模型类层次结构 · 图 2

关键方法:

  • generate_response():文本生成的主要接口,接受消息、响应格式、工具和工具选择参数 mem0/llms/gemini.py:137-143
  • _parse_response():特定提供者的解析逻辑,用于提取内容和工具调用 mem0/llms/gemini.py:24-63

来源: mem0/llms/base.py:7-12mem0/llms/gemini.py:14-143mem0/llms/configs.py:6-36

BaseLlmConfig

BaseLlmConfig 类定义了所有大语言模型提供者的标准参数 mem0/configs/llms/base.py:7-28

参数类型默认值描述
modelOptional[Union[str, Dict]]None模型标识符(例如 "gpt-4.1-nano-2025-04-14")
temperaturefloat0.1控制随机性(0.0 = 确定性,2.0 = 创造性)
max_tokensint2000响应中的最大 Token 数
top_pfloat0.1核采样参数
top_kint1Top-k 采样参数
api_keyOptional[str]NoneAPI 认证密钥
enable_visionboolFalse启用多模态图像输入
vision_detailsOptional[str]"auto"视觉细节级别("low"、"high"、"auto")
reasoning_effortOptional[str]None推理模型的努力级别(o1、o3 等)
http_client_proxiesOptional[Union[Dict, str]]NoneHTTP 代理配置

来源: mem0/configs/llms/base.py:16-67

大语言模型提供者实现

关于包括 Anthropic、AWS Bedrock、Ollama 和 Groq 在内的 18 个以上受支持提供者的完整列表,请参见大语言模型提供者。受支持的提供者在 LlmConfig 校验器中进行校验 mem0/llms/configs.py:13-35

OpenAI 集成

Mem0 支持两种类型的 OpenAI 大语言模型格式:结构化输出(针对 JSON 优化)和非结构化输出(自由形式的自然语言)docs/components/llms/overview.mdx:42-63

Gemini 集成

GeminiLLM 集成了 Google 的 Gemini 模型 mem0/llms/gemini.py:14-22。它将消息重新格式化为 Google 的 types.Content 格式 mem0/llms/gemini.py:71-94,并递归地从工具定义中移除 additionalProperties,以满足 Gemini API 的要求 mem0/llms/gemini.py:107-133

来源: mem0/llms/gemini.py:14-196docs/components/llms/overview.mdx:42-63

大语言模型配置

配置遵循严格的优先级:显式设置的值 > 环境变量 > 实现默认值 docs/components/llms/config.mdx:26-34。关于详细的配置模式,请参见大语言模型配置

嵌入向量基础架构

EmbeddingBase 抽象类

所有嵌入向量提供者都继承自 EmbeddingBase,该类定义了向量生成的标准接口 mem0/embeddings/base.py:8

关键方法:

  • embed(text, memory_action):为文本生成嵌入向量。memory_action 可以是 "add"、"search" 或 "update" mem0/embeddings/huggingface.py:29-35

来源: mem0/embeddings/base.py:7-32mem0/embeddings/huggingface.py:29-35

BaseEmbedderConfig

BaseEmbedderConfig 类为所有嵌入向量提供者提供配置,包括特定提供者的 URL 和凭证 mem0/configs/embeddings/base.py:10-43

来源: mem0/configs/embeddings/base.py:10-111

嵌入向量提供者实现

关于 OpenAI、HuggingFace 和 VertexAI 等 11 个以上受支持提供者的详细信息,请参见嵌入向量提供者。受支持的提供者在 EmbedderConfig 校验器中进行校验 mem0/embeddings/configs.py:14-31

HuggingFace 集成

HuggingFaceEmbedding 支持两种模式:

  1. 本地模式:使用 sentence_transformers 进行本地推理 mem0/embeddings/huggingface.py:23-25
  2. API 模式:使用兼容 OpenAI 的客户端连接到 HuggingFace TEI(文本嵌入向量推理)端点 mem0/embeddings/huggingface.py:19-21

来源: mem0/embeddings/huggingface.py:15-45

Ollama 集成

OllamaEmbedding 管理本地嵌入向量模型 mem0/embeddings/ollama.py:24。它包含一个 _ensure_model_exists 检查,如果本地未找到模型,则从 Ollama 注册表中拉取模型 mem0/embeddings/ollama.py:38-49

来源: mem0/embeddings/ollama.py:24-66

OpenAI 和 Gemini 嵌入向量

OpenAIEmbedding 默认使用 text-embedding-3-small mem0/embeddings/openai.py:15GoogleGenAIEmbedding(Gemini)使用 models/gemini-embedding-001,并支持可调整的 output_dimensionality mem0/embeddings/gemini.py:15-16

来源: mem0/embeddings/openai.py:11-55mem0/embeddings/gemini.py:11-40

嵌入向量配置

配置嵌入向量涉及指定维度和任务特定的嵌入向量类型(例如 memory_add_embedding_typemem0/configs/embeddings/base.py:96-98。有关详细信息,请参见嵌入向量配置

重排序

Mem0 支持重排序提供者以优化搜索结果。关于配置和提供者详细信息,请参见重排序