langchain-core: 0.3.29#
langchain-core
定义了 LangChain 生态系统的基本抽象。
核心组件的接口,如聊天模型、LLMs、向量存储、检索器等,都在这里定义。通用的调用协议(Runnables)以及组合组件的语法(LangChain表达式语言)也在这里定义。
这里没有定义第三方集成。依赖关系特意保持得非常轻量级。
agents#
类
表示代理执行操作的请求。 |
|
表示由代理执行的操作。 |
|
ActionAgent 的最终返回值。 |
|
运行AgentAction的结果。 |
beta#
类
可运行对象的上下文。 |
|
|
带有前缀的可运行对象的上下文。 |
函数
异步使用上下文获取器和设置器修补可运行配置。 |
|
使用上下文获取器和设置器修补可运行配置。 |
缓存#
类
用于LLMs和聊天模型的缓存层接口。 |
|
|
缓存,将内容存储在内存中。 |
回调#
类
LangChain的异步回调处理程序。 |
|
LangChain 的基础回调处理程序。 |
|
|
LangChain 的基础回调管理器。 |
用于回调管理器的Mixin。 |
|
用于链回调的Mixin。 |
|
用于LLM回调的Mixin。 |
|
用于Retriever回调的Mixin。 |
|
用于运行管理器的混合类。 |
|
用于工具回调的Mixin。 |
|
|
写入文件的回调处理程序。 |
|
处理来自LangChain的回调的异步回调管理器。 |
链式组的异步回调管理器。 |
|
用于链运行的异步回调管理器。 |
|
用于LLM运行的异步回调管理器。 |
|
|
用于检索器运行的异步回调管理器。 |
用于工具运行的异步回调管理器。 |
|
异步父运行管理器。 |
|
|
异步运行管理器。 |
|
运行管理器的基础类(一个绑定的回调管理器)。 |
|
LangChain的回调管理器。 |
链组的回调管理器。 |
|
用于链运行的回调管理器。 |
|
用于LLM运行的回调管理器。 |
|
用于检索器运行的回调管理器。 |
|
工具运行的回调管理器。 |
|
|
同步父运行管理器。 |
|
同步运行管理器。 |
打印到标准输出的回调处理程序。 |
|
用于流式传输的回调处理程序。 |
函数
向处理程序分派一个临时事件。 |
|
|
AsyncCallbackManager 的异步通用事件处理程序。 |
获取一个异步回调管理器,用于上下文管理器中的链组。 |
|
分发一个临时事件。 |
|
|
CallbackManager的通用事件处理程序。 |
确保一个可等待的方法始终不会被取消。 |
|
在上下文管理器中获取链组的回调管理器。 |
聊天历史#
类
用于存储聊天消息历史的抽象基类。 |
|
聊天消息历史的内存实现。 |
chat_loaders#
类
聊天加载器的基类。 |
chat_sessions#
类
聊天会话表示单个对话、频道或其他消息组。 |
document_loaders#
类
用于blob解析器的抽象接口。 |
|
文档加载器的接口。 |
|
用于实现blob加载器的抽象接口。 |
|
将LangSmith数据集示例加载为文档。 |
文档#
类
用于表示媒体内容。 |
|
Blob 表示通过引用或值的原始数据。 |
|
用于存储一段文本和相关元数据的类。 |
|
文档压缩器的基类。 |
|
文档转换的抽象基类。 |
embeddings#
类
嵌入模型的接口。 |
|
用于单元测试的确定性假嵌入模型。 |
|
用于单元测试的假嵌入模型。 |
example_selectors#
类
用于选择要包含在提示中的示例的接口。 |
|
根据长度选择示例。 |
|
|
基于最大边际相关性选择示例。 |
|
根据语义相似性选择示例。 |
函数
返回按键排序的字典值列表。 |
异常#
类
|
|
通用的LangChain异常。 |
|
|
输出解析器应引发的异常,表示解析错误。 |
追踪器模块异常的基类。 |
函数
|
globals#
函数
获取debug全局设置的值。 |
|
获取llm_cache全局设置的值。 |
|
获取verbose全局设置的值。 |
|
|
为debug全局设置设置一个新值。 |
|
设置一个新的LLM缓存,覆盖之前的值(如果有的话)。 |
|
为verbose全局设置一个新值。 |
索引#
类
当索引操作失败时引发。 |
|
返回索引操作结果的详细分解。 |
|
删除操作的通用响应。 |
|
|
用于测试目的的内存记录管理器。 |
|
表示记录管理器接口的抽象基类。 |
用于upsert操作的通用响应。 |
|
函数
|
异步将加载器中的数据索引到向量存储中。 |
|
将加载器中的数据索引到向量存储中。 |
language_models#
类
用于与语言模型交互的抽象基类。 |
|
|
用于与语言模型交互的抽象基类。 |
|
用于与语言模型交互的抽象基类。 |
用于追踪的LangSmith参数。 |
|
聊天模型的基础类。 |
|
简化的聊天模型实现,供继承使用。 |
|
用于测试的假LLM。 |
|
用于测试的假错误。 |
|
用于测试的假流式列表LLM。 |
|
用于测试的假聊天模型包装器。 |
|
用于测试的假聊天模型。 |
|
用于测试的假聊天模型。 |
|
可用于测试聊天模型接口的通用假聊天模型。 |
|
通用的假聊天模型,可用于测试聊天模型接口。 |
|
基础LLM抽象接口。 |
|
实现自定义LLM的简单接口。 |
函数
从流中异步生成。 |
|
从流中生成。 |
|
|
获取已经缓存的提示。 |
|
更新缓存并获取LLM输出。 |
为给定的LLM创建一个重试装饰器 |
|
|
获取已经缓存的提示。 |
|
更新缓存并获取LLM输出。 |
load#
类
|
用于JSON对象的恢复器。 |
序列化对象的基类。 |
|
可序列化的基类。 |
|
序列化构造函数。 |
|
未实现的序列化。 |
|
序列化的秘密。 |
函数
|
返回一个可序列化对象或SerializedNotImplemented对象的默认值。 |
|
返回对象的字典表示。 |
|
返回对象的JSON字符串表示。 |
|
|
|
|
序列化一个“未实现”的对象。 |
|
|
尝试确定一个值是否与默认值不同。 |
消息#
类
来自AI的消息。 |
|
来自AI的消息块。 |
|
输入令牌计数的详细分解。 |
|
输出令牌计数的细分。 |
|
消息的使用元数据,例如令牌计数。 |
|
基础抽象消息类。 |
|
消息块,可以与其他消息块连接。 |
|
可以分配任意发言者(即角色)的消息。 |
|
聊天消息块。 |
|
用于将执行工具的结果传递回模型的消息。 |
|
函数消息块。 |
|
来自人类的消息。 |
|
人类消息块。 |
|
负责删除其他消息的消息。 |
|
用于引导AI行为的消息。 |
|
系统消息块。 |
|
允许LLM产生的错误。 |
|
表示调用工具的请求。 |
|
工具调用的一部分(例如,作为流的一部分)。 |
|
用于将执行工具的结果传递回模型的消息。 |
|
工具消息块。 |
|
用于工具可以直接返回的对象的Mixin。 |
函数
|
将多个AIMessageChunks合并在一起。 |
|
递归地添加两个UsageMetadata对象。 |
|
递归地减去两个UsageMetadata对象。 |
|
获取消息的标题表示。 |
|
合并两个消息内容。 |
|
将消息转换为字典。 |
|
将一系列消息转换为字典列表。 |
尽力解析工具块。 |
|
|
尽力解析工具。 |
|
|
|
|
|
|
|
将一系列消息转换为消息列表。 |
将LangChain消息转换为OpenAI消息字典。 |
|
|
根据名称、类型或ID过滤消息。 |
|
将一系列消息转换为字符串并将它们连接成一个字符串。 |
|
合并相同类型的连续消息。 |
将消息块转换为消息。 |
|
|
将一系列消息从字典转换为消息对象。 |
|
将消息修剪到低于某个标记计数。 |
output_parsers#
类
解析LLM调用输出的基类。 |
|
用于解析模型输出的抽象基类。 |
|
用于解析LLM调用输出的基类。 |
|
将LLM调用的输出解析为JSON对象。 |
|
|
|
将LLM调用的输出解析为逗号分隔的列表。 |
|
将LLM调用的输出解析为列表。 |
|
解析一个Markdown列表。 |
|
解析一个编号列表。 |
|
|
将输出解析为Json对象的元素。 |
将输出解析为Json对象。 |
|
解析一组值中的输出。 |
|
|
将输出解析为pydantic对象的属性。 |
|
将输出解析为pydantic对象。 |
从OpenAI响应中解析工具。 |
|
从OpenAI响应中解析工具。 |
|
从OpenAI响应中解析工具。 |
|
使用 pydantic 模型解析输出。 |
|
将LLMResult解析为最可能的字符串的OutputParser。 |
|
|
用于处理流式输入的输出解析器的基类。 |
|
用于处理流式输入的输出解析器的基类。 |
用于处理流式输入的输出解析器的基类。 |
|
|
用于处理流式输入的输出解析器的基类。 |
|
用于处理流式输入的输出解析器的基类。 |
使用xml格式解析输出。 |
函数
|
删除迭代器的最后n个元素。 |
从原始工具调用创建一个InvalidToolCall。 |
|
解析单个工具调用。 |
|
解析工具调用列表。 |
|
|
从路径中获取嵌套元素。 |
outputs#
类
单个聊天生成输出。 |
|
ChatGeneration 块,可以与其他 ChatGeneration 块连接。 |
|
用于表示使用单个提示调用聊天模型的结果。 |
|
单个文本生成输出。 |
|
生成块,可以与其他生成块连接。 |
|
用于存储LLM调用结果的容器。 |
|
包含Chain或模型单次执行的元数据的类。 |
prompt_values#
类
聊天提示值。 |
|
聊天提示值,明确列出其接受的消息类型。 |
|
图像提示值。 |
|
图片URL。 |
|
任何语言模型输入的基抽象类。 |
|
字符串提示值。 |
prompts#
类
所有提示模板的基类,返回一个提示。 |
|
|
所有提示模板的基类,返回一个提示。 |
AI 消息提示模板。 |
|
聊天提示模板的基类。 |
|
消息提示模板的基类。 |
|
使用字符串提示模板的消息提示模板的基类。 |
|
聊天消息提示模板。 |
|
聊天模型的提示模板。 |
|
人类消息提示模板。 |
|
假设变量已经是消息列表的提示模板。 |
|
系统消息提示模板。 |
|
支持少量示例的聊天提示模板。 |
|
包含少量示例的提示模板。 |
|
包含少量示例的提示模板。 |
|
用于多模态模型的图像提示模板。 |
|
语言模型的提示模板。 |
|
暴露格式方法的字符串提示,返回一个提示。 |
|
函数
|
异步将文档格式化为基于提示模板的字符串。 |
|
根据提示模板将文档格式化为字符串。 |
|
从LangChainHub或本地文件系统加载提示的统一方法。 |
从配置字典加载提示。 |
|
检查模板字符串是否有效。 |
|
从模板中获取变量。 |
|
|
使用jinja2格式化模板。 |
|
使用mustache格式化模板。 |
|
从mustache模板中获取变量。 |
|
从mustache模板中获取变量。 |
|
验证输入变量是否对模板有效。 |
已弃用的类
rate_limiters#
类
|
|
|
retrievers#
类
文档检索系统的抽象基类。 |
|
用于跟踪的LangSmith参数。 |
runnables#
类
一个可以被调用、批处理、流式处理、转换和组合的工作单元。 |
|
用额外的功能包装一个Runnable。 |
|
将调用委托给另一个Runnable并带有一组kwargs的Runnable。 |
|
将调用委托给另一个Runnable的Runnable,处理输入序列中的每个元素。 |
|
将调用委托给另一个Runnable,并使用输入序列中的每个元素。 |
|
|
运行生成器函数的Runnable。 |
|
RunnableLambda 将一个 Python 可调用对象转换为 Runnable。 |
|
|
并行运行一组Runnable的映射,并返回它们输出的映射。 |
|
Runnable 的序列,其中每个 Runnable 的输出是下一个 Runnable 的输入。 |
|
可以序列化为JSON的Runnable。 |
|
根据条件选择要运行的分支的可运行对象。 |
|
将上下文复制到子线程的ThreadPoolExecutor。 |
|
空字典类型。 |
|
Runnable 的配置。 |
|
可动态配置的可序列化Runnable。 |
|
可以动态配置的Runnable。 |
|
可以动态配置的Runnable。 |
|
|
字符串枚举。 |
如果失败,可以回退到其他Runnable的Runnable。 |
|
|
图中的分支。 |
|
Mermaid支持的不同曲线样式的枚举 |
|
图中的边。 |
|
节点和边的图。 |
图中节点和边的标签字典。 |
|
|
Mermaid支持的不同绘制方法的枚举 |
|
图中的节点。 |
|
用于不同节点类型的十六进制颜色代码的架构。 |
|
|
|
用于绘制ASCII的类。 |
用于定义顶点框边界的类,这些边界将在grandalf构建图时被考虑。 |
|
|
用于将状态图绘制到PNG文件中的辅助类。 |
管理另一个Runnable的聊天消息历史的Runnable。 |
|
将键值对分配给Dict[str, Any]输入的Runnable。 |
|
用于传递输入不变或带有额外键的Runnable。 |
|
从Dict[str, Any]输入中选择键的Runnable。 |
|
如果Runnable失败,则重试。 |
|
路由器输入。 |
|
根据Input['key']路由到一组Runnables的可运行对象。 |
|
流事件。 |
|
用户创建的自定义流事件。 |
|
与流事件相关的数据。 |
|
遵循LangChain约定的事件数据的标准流事件。 |
|
可以添加到另一个字典的字典。 |
|
|
可以由用户配置的字段。 |
可以由用户配置多个默认值的字段。 |
|
可以由用户配置的字段,带有默认值。 |
|
可以由用户配置的字段。 |
|
获取函数访问的非局部变量。 |
|
获取lambda函数的源代码。 |
|
检查函数的第一个参数是否为字典。 |
|
|
检查名称是否为本地字典。 |
获取访问的非局部变量。 |
|
|
支持加法的对象的协议。 |
函数
装饰一个函数使其成为一个可运行的对象。 |
|
将一个类似Runnable的对象强制转换为Runnable。 |
|
异步调用函数,可以选择性地接受一个run_manager和/或配置。 |
|
调用可能选择性地接受 run_manager 和/或 config 的函数。 |
|
|
确保配置是一个包含所有键的字典。 |
|
获取配置的异步回调管理器。 |
获取配置的回调管理器。 |
|
|
从单个配置或配置列表中获取配置列表。 |
获取配置的执行器。 |
|
|
将多个配置合并为一个。 |
|
使用新值修补配置。 |
在executor中运行一个函数。 |
|
为ConfigurableFieldSingleOption或ConfigurableFieldMultiOption创建一个ConfigurableFieldSpec。 |
|
为ConfigurableFieldSpec的id添加前缀。 |
|
|
检查字符串是否为有效的UUID。 |
|
将节点的数据转换为可JSON序列化的格式。 |
|
将节点的数据转换为字符串。 |
|
构建一个DAG并以ASCII形式绘制。 |
|
使用提供的图形数据绘制Mermaid图。 |
使用提供的语法将Mermaid图绘制为PNG。 |
|
异步身份函数。 |
|
恒等函数。 |
|
|
异步地将一系列可添加对象相加。 |
|
检查一个可调用对象是否接受配置参数。 |
|
检查一个可调用对象是否接受上下文参数。 |
|
检查一个可调用对象是否接受 run_manager 参数。 |
|
将一系列可添加对象相加。 |
|
使用信号量运行一个协程。 |
限制并发协程数量的协程收集器。 |
|
如果函数的第一个参数是字典,则获取其键。 |
|
获取lambda函数的源代码。 |
|
从配置规范序列中获取唯一的配置规范。 |
|
在第一行之后缩进所有文本行。 |
|
检查一个函数是否是异步的。 |
|
检查一个函数是否是异步生成器。 |
stores#
类
键值存储的抽象接口。 |
|
使用字典实现的BaseStore的内存实现。 |
|
用于存储字节的内存存储。 |
|
用于存储任何类型数据的内存存储。 |
|
当键无效时引发;例如,使用了不正确的字符。 |
structured_query#
类
|
比较运算符的枚举器。 |
与值的比较。 |
|
所有表达式的基础类。 |
|
过滤表达式。 |
|
对其他指令的逻辑操作。 |
|
|
操作符的枚举器。 |
结构化查询。 |
|
定义使用访问者模式进行IR翻译的接口。 |
sys_info#
函数
|
打印环境信息以用于调试目的。 |
工具#
类
LangChain工具必须实现的接口。 |
|
基础工具包,表示一组相关工具的集合。 |
|
用于标注一个不应由模型生成的工具参数的注释。 |
|
用于注入 tool_call_id 的注解。 |
|
当 'args_schema' 缺失或类型注释不正确时引发。 |
|
工具在执行错误时抛出的可选异常。 |
|
检索器的输入。 |
|
直接接收函数或协程的工具。 |
|
可以在任意数量的输入上操作的工具。 |
函数
从函数的签名创建一个pydantic模式。 |
|
|
将Runnable转换为BaseTool。 |
将函数转换为工具,可以带参数或不带参数使用。 |
|
以纯文本形式呈现工具名称和描述。 |
|
以纯文本形式呈现工具名称、描述和参数。 |
|
|
创建一个用于文档检索的工具。 |
tracers#
类
|
异步基础接口用于追踪器。 |
|
追踪器的基础接口。 |
每当运行被持久化时,运行评估器的追踪器。 |
|
关于运行的信息。 |
|
实现SharedTracer,向LangChain端点发送POST请求。 |
|
运行日志中的单个条目。 |
|
将运行日志流式传输到流的追踪器。 |
|
|
运行日志。 |
运行日志的补丁。 |
|
运行状态。 |
|
异步追踪器,在运行开始、结束和出错时调用监听器。 |
|
在运行开始、结束和错误时调用监听器的追踪器。 |
|
收集所有嵌套运行的追踪器。 |
|
|
将输出打印到控制台的追踪器。 |
调用带有单个字符串参数的函数的追踪器。 |
函数
收集上下文中的所有运行轨迹。 |
|
注册一个配置钩子。 |
|
|
抛出一个错误,因为此功能已被 tracing_v2_enabled 取代。 |
指示 LangChain 将所有上下文中的运行记录到 LangSmith。 |
|
等待所有追踪器完成。 |
|
获取客户端。 |
|
|
记录一次错误。 |
等待所有追踪器完成。 |
|
抛出一个错误,因为这已被 LangChainTracer 替换。 |
|
|
抛出一个错误,因为此功能已被 get_headers 替换。 |
获取运行的耗时。 |
|
|
尝试将对象转换为JSON字符串。 |
已弃用的类
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
已弃用的函数
utils#
类
提供正确接口但不提供保护的虚拟锁。 |
|
|
创建 |
|
用于安全地完成异步清理资源(如异步生成器)的异步上下文管理器,调用其 |
|
|
检查额外键的格式化程序。 |
|
表示一个可调用函数,用于发送给LLM。 |
|
表示一个可调用函数到OpenAI API。 |
|
提供正确接口但不提供保护的虚拟锁。 |
|
|
创建 |
|
|
Chevron 错误的自定义异常。 |
函数
|
用于异步可迭代对象的实用批处理函数。 |
|
用于测试目的的anext()的纯Python实现。 |
|
|
|
检查环境变量是否已设置。 |
|
从字典或环境变量中获取一个值。 |
|
从字典或环境变量中获取值。 |
将原始函数/类转换为OpenAI函数。 :param function: 一个字典、Pydantic BaseModel类、TypedDict类、LangChain工具对象或Python函数。如果传入的是字典,则假定它已经是有效的OpenAI函数、具有顶级'title'键的JSON模式、Anthropic格式工具或Amazon Bedrock Converse格式工具。 :param strict: 如果为True,模型输出将严格匹配函数定义中提供的JSON模式。如果为None, |
|
将一个类似工具的对象转换为OpenAI工具模式。 |
|
|
从原始HTML字符串中提取所有链接并将其转换为绝对路径。 |
|
从原始HTML字符串中提取所有链接。 |
获取加粗文本。 |
|
|
获取项目到支持颜色的映射。 |
|
获取带颜色的文本。 |
|
打印带有高亮且无结束字符的文本。 |
确定是否在IPython或Jupyter中运行。 |
|
|
实用批处理函数。 |
|
|
从Markdown字符串中解析JSON字符串并检查其是否包含预期的键。 |
|
|
从Markdown字符串中解析JSON字符串。 |
|
解析可能缺少闭合括号的JSON字符串。 |
|
尝试替换JSON Schema中的$refs。 |
|
从模板中解析一个文字。 |
|
进行初步检查以查看标签是否可以是独立的。 |
|
从模板中解析标签。 |
|
进行最终检查,以查看标签是否可以独立存在。 |
|
渲染一个mustache模板。 |
|
对mustache模板进行分词。 |
|
使用给定的字段定义创建一个pydantic模型。 |
|
使用给定的字段定义创建一个pydantic模型。 |
获取Pydantic模型的字段名称。 |
|
获取Pydantic的主版本号。 |
|
检查给定的类是否是Pydantic BaseModel的实例。 |
|
检查给定的类是否是Pydantic BaseModel的子类。 |
|
检查安装的Pydantic版本是否为1.x版本。 |
|
检查安装的Pydantic版本是否为1.x版本。 |
|
|
用于在模型初始化之前运行函数的装饰器。 |
|
将列表转换为逗号分隔的字符串。 |
将字典转换为字符串。 |
|
将值转换为字符串。 |
|
|
从值和extra_kwargs构建额外的kwargs。 |
|
检查包的版本。 |
如果需要,将字符串转换为SecretStr。 |
|
创建一个工厂方法,从环境变量中获取值。 |
|
获取pydantic类的字段名称,包括别名。 |
|
|
动态导入一个模块,如果模块未安装则抛出异常。 |
|
用于在单元测试中模拟 datetime.now() 的上下文管理器。 |
|
使用响应文本引发错误。 |
从环境变量中获取密钥。 |
|
|
验证指定的关键字参数是互斥的。 |
已弃用的函数
vectorstores#
类
向量存储的接口。 |
|
VectorStore 的基础检索器类。 |
|
内存中的向量存储实现。 |
函数
计算最大边际相关性。 |