提供方生态
提供方生态系统
相关源文件
本章引用的主要源码文件:
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 使用五个工厂类来抽象提供方的选择和实例化过程。每个工厂维护一个注册表,将字符串标识符映射到实现类及其配置类型。
提供方选择流程
来源: 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/ 中的一个实现和一个配置类。
大语言模型提供方注册表
来源: 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 模型进行验证。
向量存储提供方注册表
来源: 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 中的可选组中,从而允许最小化的核心安装。
依赖组结构
来源: 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