提供方生态(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/mem0ai/mem0/2.2-provider-ecosystem
翻译时间:2026-05-27T08:45:07.690Z
翻译模型:deepseek-chat
原文字符数:13891
项目:Mem0 (mem0)
---
提供方生态系统
相关源文件
以下文件被用作生成此 Wiki 页面的上下文:
docs/components/embedders/config.mdxdocs/components/embedders/models/aws_bedrock.mdxdocs/components/embedders/overview.mdxdocs/components/llms/config.mdxdocs/components/llms/overview.mdxdocs/components/vectordbs/dbs/opensearch.mdxevaluation/metrics/llm_judge.pymem0-ts/src/oss/src/embeddings/ollama.tsmem0-ts/src/oss/src/llms/ollama.tsmem0-ts/src/oss/tests/ollama-embedder.test.tsmem0/configs/embeddings/base.pymem0/configs/llms/aws_bedrock.pymem0/configs/llms/azure.pymem0/configs/llms/base.pymem0/configs/llms/openai.pymem0/embeddings/aws_bedrock.pymem0/embeddings/base.pymem0/embeddings/configs.pymem0/embeddings/gemini.pymem0/embeddings/huggingface.pymem0/embeddings/ollama.pymem0/embeddings/openai.pymem0/llms/aws_bedrock.pymem0/llms/base.pymem0/llms/configs.pymem0/llms/gemini.pymem0/llms/groq.pymem0/llms/litellm.pymem0/llms/ollama.pymem0/llms/openai.pymem0/llms/together.pymem0/llms/xai.pytests/embeddings/test_huggingface_embeddings.pytests/embeddings/test_ollama_embeddings.pytests/embeddings/test_openai_embeddings.pytests/llms/test_aws_bedrock.pytests/llms/test_groq.pytests/llms/test_litellm.pytests/llms/test_ollama.pytests/llms/test_openai.pytests/llms/test_together.py
本文档记录了 mem0 中所有组件类型所支持的提供方:大语言模型(LLM)、向量存储、嵌入器、图存储和重排序器。它解释了基于工厂的选择机制,以及提供方如何通过字符串标识符进行动态实例化。
有关工厂模式实现的信息,请参见工厂模式与组件系统。有关配置详情,请参见配置系统。
工厂系统总览
Mem0 使用五个工厂类来抽象提供方的选择和实例化过程。每个工厂维护一个注册表,将字符串标识符映射到实现类及其配置类型。
提供方选择流程
graph TB
subgraph "自然语言空间"
UserConfig["用户配置<br/>{provider: 'openai', config: {...}}"]
end
subgraph "代码实体空间"
Factory["LlmFactory.create()"]
Registry["LlmFactory.provider_to_class"]
LoadClass["load_class() 辅助函数"]
ConfigClass["OpenAIConfig"]
Instance["OpenAILLM 实例"]
UserConfig --> Factory
Factory --> Registry
Registry --> LoadClass
LoadClass --> ConfigClass
ConfigClass --> Instance
end
Registry -.-> |"将 'openai' 映射到<br/>(OpenAILLM, OpenAIConfig)"| LoadClass
来源: mem0/utils/factory.py:1-284, mem0/llms/openai.py:14-150
工厂系统分三个阶段运行:
- 注册表查找:将提供方字符串(例如
"openai")映射到(class_path, config_class)元组mem0/utils/factory.py:37-56。 - 类加载:使用
importlib通过load_class辅助函数动态导入提供方类mem0/utils/factory.py:24-27。 - 实例化:根据提供方特定的配置类验证配置,并实例化提供方实例
mem0/utils/factory.py:81-112。
工厂类及其注册表
| 工厂类 | 用途 | 方法 | 注册表位置 |
|---|---|---|---|
LlmFactory | 大语言模型提供方实例化 | create() | mem0/utils/factory.py:37-56 |
EmbedderFactory | 嵌入模型实例化 | create() | mem0/utils/factory.py:140-152 |
VectorStoreFactory | 向量数据库实例化 | create() | mem0/utils/factory.py:168-192 |
GraphStoreFactory | 图数据库实例化 | create() | mem0/utils/factory.py:217-223 |
RerankerFactory | 重排序器实例化 | create() | mem0/utils/factory.py:242-248 |
来源: mem0/utils/factory.py:24-284
大语言模型提供方
LlmFactory 通过 provider_to_class 注册表支持 18 个以上的大语言模型提供方。每个提供方映射到 mem0/llms/ 中的一个实现和一个配置类。
大语言模型提供方注册表
graph LR
subgraph "自然语言空间"
Input["提供方名称字符串"]
end
subgraph "代码实体空间"
LlmFactory["LlmFactory.create()"]
subgraph "实现"
OpenAI["OpenAILLM<br/>(mem0/llms/openai.py)"]
Ollama["OllamaLLM<br/>(mem0/llms/ollama.py)"]
Groq["GroqLLM<br/>(mem0/llms/groq.py)"]
Bedrock["AWSBedrockLLM<br/>(mem0/llms/aws_bedrock.py)"]
end
subgraph "配置"
OConfig["OpenAIConfig"]
OlConfig["OllamaConfig"]
BConfig["AWSBedrockConfig"]
end
end
Input --> LlmFactory
LlmFactory --> OpenAI
LlmFactory --> Ollama
LlmFactory --> Groq
LlmFactory --> Bedrock
OpenAI --- OConfig
Ollama --- OlConfig
Bedrock --- BConfig
来源: mem0/utils/factory.py:37-56, mem0/llms/openai.py:14-36, mem0/llms/ollama.py:15-41, mem0/llms/aws_bedrock.py:34-76
完整的大语言模型提供方列表
| 提供方字符串 | 实现类 | 配置类 | 模块路径 |
|---|---|---|---|
openai | OpenAILLM | OpenAIConfig | mem0/utils/factory.py:39 |
anthropic | AnthropicLLM | AnthropicConfig | mem0/utils/factory.py:46 |
azure_openai | AzureOpenAILLM | AzureOpenAIConfig | mem0/utils/factory.py:44 |
ollama | OllamaLLM | OllamaConfig | mem0/utils/factory.py:38 |
groq | GroqLLM | BaseLlmConfig | mem0/utils/factory.py:40 |
together | TogetherLLM | BaseLlmConfig | mem0/utils/factory.py:41 |
aws_bedrock | AWSBedrockLLM | AWSBedrockConfig | mem0/utils/factory.py:42 |
litellm | LiteLLM | BaseLlmConfig | mem0/utils/factory.py:43 |
openai_structured | OpenAIStructuredLLM | OpenAIConfig | mem0/utils/factory.py:45 |
azure_openai_structured | AzureOpenAIStructuredLLM | AzureOpenAIConfig | mem0/utils/factory.py:47 |
gemini | GeminiLLM | BaseLlmConfig | mem0/utils/factory.py:48 |
deepseek | DeepSeekLLM | DeepSeekConfig | mem0/utils/factory.py:49 |
minimax | MiniMaxLLM | MinimaxConfig | mem0/utils/factory.py:50 |
xai | XAILLM | BaseLlmConfig | mem0/utils/factory.py:51 |
sarvam | SarvamLLM | BaseLlmConfig | mem0/utils/factory.py:52 |
lmstudio | LMStudioLLM | LMStudioConfig | mem0/utils/factory.py:53 |
vllm | VllmLLM | VllmConfig | mem0/utils/factory.py:54 |
langchain | LangchainLLM | BaseLlmConfig | mem0/utils/factory.py:55 |
来源: mem0/utils/factory.py:37-56, mem0/llms/configs.py:12-32, docs/components/llms/overview.mdx:22-39
向量存储提供方
VectorStoreFactory 支持 24 个以上的向量数据库提供方。配置通过 VectorStoreConfig Pydantic 模型进行验证。
向量存储提供方注册表
graph TB
VectorStoreFactory["VectorStoreFactory.create()"]
subgraph "开源数据库"
Qdrant["qdrant<br/>Qdrant<br/>QdrantConfig"]
ChromaDB["chroma<br/>ChromaDB<br/>ChromaDbConfig"]
Milvus["milvus<br/>MilvusDB<br/>MilvusDBConfig"]
Weaviate["weaviate<br/>Weaviate<br/>WeaviateConfig"]
FAISS["faiss<br/>FAISS<br/>FAISSConfig"]
end
subgraph "PostgreSQL 扩展"
PGVector["pgvector<br/>PGVector<br/>PGVectorConfig"]
Supabase["supabase<br/>Supabase<br/>SupabaseConfig"]
end
subgraph "云/托管服务"
Pinecone["pinecone<br/>PineconeDB<br/>PineconeConfig"]
AzureAI["azure_ai_search<br/>AzureAISearch<br/>AzureAISearchConfig"]
VertexAI["vertex_ai_vector_search<br/>GoogleMatchingEngine<br/>GoogleMatchingEngineConfig"]
Neptune["neptune<br/>NeptuneAnalyticsVector<br/>NeptuneAnalyticsConfig"]
end
VectorStoreFactory --> Qdrant
VectorStoreFactory --> ChromaDB
VectorStoreFactory --> PGVector
VectorStoreFactory --> Pinecone
VectorStoreFactory --> Milvus
来源: mem0/utils/factory.py:168-192, mem0/vector_stores/configs.py:13-38
嵌入器提供方
EmbedderFactory 支持 11 个嵌入模型提供方。嵌入器生成用于语义搜索的向量表示。
完整的嵌入器提供方列表
| 提供方字符串 | 实现类 | 默认模型 | 模块路径 |
|---|---|---|---|
openai | OpenAIEmbedding | text-embedding-3-small | mem0/embeddings/openai.py:11 |
ollama | OllamaEmbedding | nomic-embed-text | mem0/utils/factory.py:142 |
huggingface | HuggingFaceEmbedding | multi-qa-MiniLM-L6-cos-v1 | mem0/embeddings/huggingface.py:15 |
azure_openai | AzureOpenAIEmbedding | - | mem0/utils/factory.py:144 |
gemini | GoogleGenAIEmbedding | models/text-embedding-004 | mem0/utils/factory.py:145 |
vertexai | VertexAIEmbedding | - | mem0/utils/factory.py:146 |
together | TogetherEmbedding | - | mem0/utils/factory.py:147 |
lmstudio | LMStudioEmbedding | - | mem0/utils/factory.py:148 |
langchain | LangchainEmbedding | - | mem0/utils/factory.py:149 |
aws_bedrock | AWSBedrockEmbedding | - | mem0/utils/factory.py:150 |
fastembed | FastEmbedEmbedding | - | mem0/utils/factory.py:151 |
来源: mem0/utils/factory.py:140-152, mem0/embeddings/huggingface.py:15-45, mem0/configs/embeddings/base.py:10-111, mem0/embeddings/openai.py:11-35
图存储提供方
GraphStoreFactory 支持 5 个用于实体关系存储的图数据库提供方。
| 提供方字符串 | 实现类 | 图技术 |
|---|---|---|
default | MemoryGraph | Neo4j |
memgraph | MemoryGraph | Memgraph |
neptune | MemoryGraph | AWS Neptune(图) |
neptunedb | MemoryGraph | AWS Neptune(数据库) |
kuzu | MemoryGraph | Kuzu |
来源: mem0/utils/factory.py:214-231
重排序器提供方
RerankerFactory 支持 5 个用于提升搜索结果质量的重排序提供方。
| 提供方字符串 | 实现类 | 配置类 |
|---|---|---|
cohere | CohereReranker | CohereRerankerConfig |
sentence_transformer | SentenceTransformerReranker | SentenceTransformerRerankerConfig |
zero_entropy | ZeroEntropyReranker | ZeroEntropyRerankerConfig |
llm_reranker | LLMReranker | LLMRerankerConfig |
huggingface | HuggingFaceReranker | HuggingFaceRerankerConfig |
来源: mem0/utils/factory.py:239-284
可选依赖
提供方的依赖被组织在 pyproject.toml 中的可选组中,从而允许最小化的核心安装。
依赖组结构
graph TB
BaseInstall["pip install mem0ai<br/>核心 + Qdrant + OpenAI"]
VectorGroup["[vector_stores]<br/>向量存储提供方"]
LlmsGroup["[llms]<br/>大语言模型提供方"]
ExtrasGroup["[extras]<br/>附加功能"]
BaseInstall --> CoreDeps["核心依赖<br/>qdrant-client<br/>pydantic<br/>openai<br/>posthog<br/>sqlalchemy"]
VectorGroup --> VectorDeps["chromadb<br/>pinecone<br/>weaviate-client<br/>faiss-cpu<br/>pymilvus<br/>redis<br/>+ 更多"]
LlmsGroup --> LlmDeps["groq<br/>together<br/>litellm<br/>ollama<br/>google-generativeai<br/>vertexai"]
ExtrasGroup --> ExtrasDeps["boto3<br/>sentence-transformers<br/>langchain<br/>fastembed"]
来源: pyproject.toml:26-74
依赖组摘要
| 组 | 安装命令 | 关键提供方 |
|---|---|---|
vector_stores | pip install mem0ai[vector_stores] | Chroma、Pinecone、Milvus、Redis、Elasticsearch、PGVector 等 pyproject.toml:30-54 |
llms | pip install mem0ai[llms] | Groq、Together、LiteLLM、Ollama、VertexAI、Gemini pyproject.toml:55-64 |
extras | pip install mem0ai[extras] | Boto3、Langchain、Sentence-Transformers、FastEmbed pyproject.toml:65-74 |
来源: pyproject.toml:26-74, Makefile:13-16