agentic_huge_data_base / wiki
页面 Mem0 · 16 Legacy:Embedchain·DeepWiki 中文全文译文

16 · Legacy:Embedchain(Legacy: Embedchain)

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

项目Mem0 章节16 状态全文译文 模块记忆与上下文、模型调用与提供方适配、测试、发布与运维、配置治理
源码线索
  • embedchain/docs/api-reference/app/add.mdx
  • embedchain/embedchain/chunkers/base_chunker.py
  • embedchain/embedchain/config/llm/base.py
  • embedchain/embedchain/config/model_prices_and_context_window.json
  • embedchain/embedchain/data_formatter/data_formatter.py
  • embedchain/embedchain/embedchain.py
  • embedchain/embedchain/loaders/base_loader.py
  • embedchain/embedchain/loaders/web_page.py
  • embedchain/embedchain/vectordb/chroma.py
  • embedchain/poetry.lock
模块标签
  • 记忆与上下文
  • 模型调用与提供方适配
  • 测试、发布与运维
  • 配置治理
  • 入库与解析

章节正文

Legacy:Embedchain

遗留系统:Embedchain

相关源文件

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

  • embedchain/docs/api-reference/app/add.mdx
  • embedchain/embedchain/chunkers/base_chunker.py
  • embedchain/embedchain/config/llm/base.py
  • embedchain/embedchain/config/model_prices_and_context_window.json
  • embedchain/embedchain/data_formatter/data_formatter.py
  • embedchain/embedchain/embedchain.py
  • embedchain/embedchain/loaders/base_loader.py
  • embedchain/embedchain/loaders/web_page.py
  • embedchain/embedchain/vectordb/chroma.py
  • embedchain/poetry.lock
  • embedchain/pyproject.toml
  • embedchain/tests/llm/test_openai.py
  • embedchain/tests/loaders/test_web_page.py

目的与范围

本文档涵盖了 Embedchain,它是前身检索增强生成(RAG)框架,后来演变为 Mem0。Embedchain 被设计为一个简单的开源框架,用于在自定义数据源上构建问答系统。虽然 Mem0 代表了 AI 应用的现代记忆层,但 Embedchain 代码仍保留在仓库的 embedchain/ 目录下,以提供向后兼容性和遗留支持。

有关当前 Mem0 记忆系统的信息,请参阅记忆系统。有关适用于两个系统的配置模式,请参阅配置系统

什么是 Embedchain?

Embedchain 是一个检索增强生成(RAG)框架,它简化了在自定义数据上创建聊天机器人和问答系统的过程。它提供自动数据类型检测、可配置的大语言模型(LLM)/嵌入向量提供程序,并通过 LangChain 与多个向量存储集成。

主要特性:

  • 包名: embedchain(版本 0.1.128)embedchain/pyproject.toml:2-3
  • 描述: "最简单的开源检索增强生成(RAG)框架" embedchain/pyproject.toml:4
  • 核心依赖: LangChain(^0.3.1)embedchain/pyproject.toml:98
  • 当前状态: 为向后兼容而维护的遗留代码库。
  • 后继者: Mem0(作为依赖包含:mem0ai ^0.1.54embedchain/pyproject.toml:108

来源: embedchain/pyproject.toml:1-108

与 Mem0 的关系

Embedchain 已演变为 Mem0,现代代码库位于 mem0/ 目录下,而遗留代码保留在 embedchain/ 目录下。pyproject.toml 通过将 Mem0 列为依赖项展示了这一过渡,从而允许逐步迁移。

系统演进:从 Embedchain 到 Mem0

以下图表说明了遗留检索增强生成(RAG)框架与现代记忆层之间的关系。

Mem0 · 系统演进:从 Embedchain 到 Mem0 · 图 1
Mem0 · 系统演进:从 Embedchain 到 Mem0 · 图 1

迁移路径:

  • Embedchain 用户可以逐步迁移到 Mem0 以记忆为中心的 API。
  • 两个系统共享相似的提供程序生态系统(大语言模型(LLM)、向量存储、嵌入向量器)。
  • 配置模式相似,但 Mem0 提供了额外的记忆特定功能。

来源: embedchain/pyproject.toml:95-108embedchain/embedchain/embedchain.py:38-96

核心架构

有关这些组件的技术细节,请参阅以下子页面:

EmbedChain 类

遗留系统的核心是 EmbedChain 类,它编排了大语言模型(LLM)、向量数据库和嵌入向量器。

类初始化:

class EmbedChain(JSONSerializable):
    def __init__(
        self,
        config: BaseAppConfig,
        llm: BaseLlm,
        db: BaseVectorDB = None,
        embedder: BaseEmbedder = None,
        system_prompt: Optional[str] = None,
    ):
        # ... 初始化逻辑 ...

embedchain/embedchain/embedchain.py:38-46

该类通过 add() 方法处理数据添加的生命周期,该方法会触发加载、片段切分和嵌入向量化 embedchain/embedchain/embedchain.py:117-154

配置类

Embedchain 使用分层配置系统,包含大语言模型(LLM)和嵌入向量器的基类。BaseLlmConfig 类为语言模型提供了全面的配置,包括温度、最大 Token 数和自定义提示模板的参数 embedchain/embedchain/config/llm/base.py:111-142

来源: embedchain/embedchain/embedchain.py:38-154embedchain/embedchain/config/llm/base.py:111-142

数据处理管线

Embedchain 的管线弥合了原始数据源与向量存储之间的差距。

数据流:从源到向量存储

此图表将自然语言空间(源数据)映射到负责处理它的代码实体。

Mem0 · 数据流:从源到向量存储 · 图 2
Mem0 · 数据流:从源到向量存储 · 图 2

关键管线组件:

  • DataFormatter:DataType 映射到特定的加载器和片段切分器 embedchain/embedchain/data_formatter/data_formatter.py:12-35
  • BaseLoader: 子类(如 WebPageLoader)获取原始内容 embedchain/embedchain/loaders/web_page.py:22-62
  • BaseChunker: 处理文本分割和元数据丰富 embedchain/embedchain/chunkers/base_chunker.py:12-74
  • BaseVectorDB:ChromaDB 等数据库交互以存储和查询向量 embedchain/embedchain/vectordb/chroma.py:29-64

来源: embedchain/embedchain/data_formatter/data_formatter.py:12-35embedchain/embedchain/loaders/web_page.py:22-62embedchain/embedchain/chunkers/base_chunker.py:12-74embedchain/embedchain/vectordb/chroma.py:29-64

提示系统

Embedchain 包含针对不同用例预定义的提示模板,位于大语言模型(LLM)配置模块中。

模板名称用途文件指针
DEFAULT_PROMPT标准问答专家系统指令。embedchain/embedchain/config/llm/base.py:15-29
DEFAULT_PROMPT_WITH_HISTORY带对话历史上下文的问答。embedchain/embedchain/config/llm/base.py:31-52
DEFAULT_PROMPT_WITH_MEM0_MEMORY与 Mem0 用户偏好集成。embedchain/embedchain/config/llm/base.py:54-81
DOCS_SITE_DEFAULT_PROMPT专门用于开发者支持和代码。embedchain/embedchain/config/llm/base.py:83-99

来源: embedchain/embedchain/config/llm/base.py:15-108

模型定价与上下文

为协助 Token 跟踪和成本估算,系统维护了一个 model_prices_and_context_window.json 文件。该文件包含各种提供程序的元数据,包括 OpenAI、Azure 和 Anthropic embedchain/embedchain/config/model_prices_and_context_window.json:1-219

来源: embedchain/embedchain/config/model_prices_and_context_window.json:1-219

总结

遗留的 Embedchain 是一个以检索增强生成(RAG)为中心的框架,它为 Mem0 更高级的记忆能力提供了基础。虽然 EmbedChain 类及其相关的加载器/片段切分器仍然可用,但鼓励用户探索记忆系统以满足现代 AI 记忆需求。

有关特定遗留子系统的详细文档,请参阅: