文档
langchain_core.documents ¶
用于数据检索和处理工作流的文档模块。
该模块为处理检索增强生成 (RAG) 管道、向量存储和文档处理工作流中的数据提供了核心抽象。
文档 vs. 消息内容
此模块与 langchain_core.messages.content 不同,后者为 LLM 聊天 I/O 提供多模态内容块(消息中的文本、图像、音频等)。
关键区别
-
文档 (本模块):用于数据检索和处理工作流
- 向量存储、检索器、RAG 管道
- 文本分块、嵌入和语义搜索
- 示例:存储在向量数据库中的 PDF 块
-
内容块 (
messages.content):用于 LLM 对话式 I/O- 发送到模型或从模型发出的多模态消息内容
- 聊天中的工具调用、推理、引用
- 示例:在聊天消息中发送给视觉模型的图像(通过
ImageContentBlock)
虽然两者都可以表示相似的数据类型(文本、文件),但它们在 LangChain 应用程序中服务于不同的架构目的。
langchain_core.documents.base.Document ¶
基类: BaseMedia
用于存储一段文本和相关元数据的类。
注意
Document 用于检索工作流,而非聊天 I/O。要在对话中向 LLM 发送文本,请使用 langchain.messages 中的消息类型。
示例
| 方法 | 描述 |
|---|---|
__init__ |
将 page_content 作为位置参数或命名参数传入。 |
is_lc_serializable |
返回 True,因为这个类是可序列化的。 |
get_lc_namespace |
获取 LangChain 对象的命名空间。 |
__str__ |
重写 str 以将其限制为 page_content 和 metadata。 |
lc_id |
为此类返回一个用于序列化目的的唯一标识符。 |
to_json |
将对象序列化为 JSON。 |
to_json_not_implemented |
序列化一个“未实现”的对象。 |
lc_secrets property ¶
构造函数参数名称到密钥 ID 的映射。
例如,{"openai_api_key": "OPENAI_API_KEY"}
id class-attribute instance-attribute ¶
文档的可选标识符。
理想情况下,这在文档集合中应该是唯一的,并格式化为 UUID,但这不会被强制执行。
metadata class-attribute instance-attribute ¶
与内容相关的任意元数据。
get_lc_namespace classmethod ¶
lc_id classmethod ¶
为此类返回一个用于序列化目的的唯一标识符。
唯一标识符是一个描述对象路径的字符串列表。
例如,对于类 langchain.llms.openai.OpenAI,id 是 ["langchain", "llms", "openai", "OpenAI"]。
to_json ¶
将对象序列化为 JSON。
| 引发 | 描述 |
|---|---|
ValueError
|
如果类有已弃用的属性。 |
| 返回 | 描述 |
|---|---|
SerializedConstructor | SerializedNotImplemented
|
一个可 JSON 序列化的对象或一个 |
to_json_not_implemented ¶
序列化一个“未实现”的对象。
| 返回 | 描述 |
|---|---|
SerializedNotImplemented
|
|
langchain_core.documents.base.Blob ¶
基类: BaseMedia
用于文档加载和文件处理的原始数据抽象。
表示原始字节或文本,可以是在内存中或通过文件引用。主要由文档加载器使用,以将数据加载与解析解耦。
灵感来源于 Mozilla 的 Blob
从内存中的数据初始化一个 blob
从内存加载并指定 MIME 类型和元数据
从文件加载 blob
| 方法 | 描述 |
|---|---|
check_blob_is_valid |
验证是否提供了 data 或 path。 |
as_string |
将数据作为字符串读取。 |
as_bytes |
将数据作为字节读取。 |
as_bytes_io |
将数据作为字节流读取。 |
from_path |
从类似路径的对象加载 blob。 |
from_data |
从内存中的数据初始化 |
__repr__ |
返回 blob 的表示形式。 |
__init__ |
|
is_lc_serializable |
这个类是否可序列化? |
get_lc_namespace |
获取 LangChain 对象的命名空间。 |
lc_id |
为此类返回一个用于序列化目的的唯一标识符。 |
to_json |
将对象序列化为 JSON。 |
to_json_not_implemented |
序列化一个“未实现”的对象。 |
encoding class-attribute instance-attribute ¶
encoding: str = 'utf-8'
如果将字节解码为字符串,则使用的编码。
如果解码为字符串,则使用 utf-8 作为默认编码。
source property ¶
source: str | None
blob 的源位置,如果已知则为字符串,否则为 none。
如果 Blob 关联了路径,它将默认为该路径位置。
除非通过名为 "source" 的元数据字段显式设置,在这种情况下将使用该值。
lc_secrets property ¶
构造函数参数名称到密钥 ID 的映射。
例如,{"openai_api_key": "OPENAI_API_KEY"}
id class-attribute instance-attribute ¶
文档的可选标识符。
理想情况下,这在文档集合中应该是唯一的,并格式化为 UUID,但这不会被强制执行。
metadata class-attribute instance-attribute ¶
与内容相关的任意元数据。
check_blob_is_valid classmethod ¶
验证是否提供了 data 或 path。
as_bytes_io ¶
as_bytes_io() -> Generator[BytesIO | BufferedReader, None, None]
将数据作为字节流读取。
| 引发 | 描述 |
|---|---|
NotImplementedError
|
如果 blob 无法表示为字节流。 |
| YIELDS | 描述 |
|---|---|
BytesIO | BufferedReader
|
作为字节流的数据。 |
from_path classmethod ¶
from_data classmethod ¶
is_lc_serializable classmethod ¶
is_lc_serializable() -> bool
这个类是否可序列化?
根据设计,即使一个类继承自 Serializable,它默认也是不可序列化的。这是为了防止意外序列化不应被序列化的对象。
| 返回 | 描述 |
|---|---|
bool
|
类是否可序列化。默认为 |
get_lc_namespace classmethod ¶
lc_id classmethod ¶
为此类返回一个用于序列化目的的唯一标识符。
唯一标识符是一个描述对象路径的字符串列表。
例如,对于类 langchain.llms.openai.OpenAI,id 是 ["langchain", "llms", "openai", "OpenAI"]。
to_json ¶
将对象序列化为 JSON。
| 引发 | 描述 |
|---|---|
ValueError
|
如果类有已弃用的属性。 |
| 返回 | 描述 |
|---|---|
SerializedConstructor | SerializedNotImplemented
|
一个可 JSON 序列化的对象或一个 |
to_json_not_implemented ¶
序列化一个“未实现”的对象。
| 返回 | 描述 |
|---|---|
SerializedNotImplemented
|
|
langchain_core.documents.base.BaseMedia ¶
基类: Serializable
用于检索和数据处理工作流中内容内容的基类。
为需要存储、索引或搜索的内容提供通用字段。
注意
对于聊天消息中的多模态内容(发送到/来自 LLM 的图像、音频),请改用 langchain.messages 内容块。
| 方法 | 描述 |
|---|---|
__init__ |
|
is_lc_serializable |
这个类是否可序列化? |
get_lc_namespace |
获取 LangChain 对象的命名空间。 |
lc_id |
为此类返回一个用于序列化目的的唯一标识符。 |
to_json |
将对象序列化为 JSON。 |
to_json_not_implemented |
序列化一个“未实现”的对象。 |
id class-attribute instance-attribute ¶
文档的可选标识符。
理想情况下,这在文档集合中应该是唯一的,并格式化为 UUID,但这不会被强制执行。
metadata class-attribute instance-attribute ¶
与内容相关的任意元数据。
lc_secrets property ¶
构造函数参数名称到密钥 ID 的映射。
例如,{"openai_api_key": "OPENAI_API_KEY"}
is_lc_serializable classmethod ¶
is_lc_serializable() -> bool
这个类是否可序列化?
根据设计,即使一个类继承自 Serializable,它默认也是不可序列化的。这是为了防止意外序列化不应被序列化的对象。
| 返回 | 描述 |
|---|---|
bool
|
类是否可序列化。默认为 |
get_lc_namespace classmethod ¶
lc_id classmethod ¶
为此类返回一个用于序列化目的的唯一标识符。
唯一标识符是一个描述对象路径的字符串列表。
例如,对于类 langchain.llms.openai.OpenAI,id 是 ["langchain", "llms", "openai", "OpenAI"]。
to_json ¶
将对象序列化为 JSON。
| 引发 | 描述 |
|---|---|
ValueError
|
如果类有已弃用的属性。 |
| 返回 | 描述 |
|---|---|
SerializedConstructor | SerializedNotImplemented
|
一个可 JSON 序列化的对象或一个 |
to_json_not_implemented ¶
序列化一个“未实现”的对象。
| 返回 | 描述 |
|---|---|
SerializedNotImplemented
|
|