当前位置: 首页 > news >正文

LangChain API 参考文档简介

LangChain API 参考文档

📚 概述

LangChain 是一个用于构建由大型语言模型(LLM)驱动的应用程序和代理的框架。本文档整理了 LangChain 主要模块中的Classes(类)Functions(函数)Modules(模块)Types(类型)的完整列表及其功能说明。


🎯 Classes(类)

结构化输出错误类

类名功能说明
StructuredOutputError结构化输出错误的基类
MultipleStructuredOutputsError当模型返回多个结构化输出工具调用但只期望一个时的异常
StructuredOutputValidationError当结构化输出工具调用参数无法根据约束解析时发生

结构化输出策略类

类名功能说明
ToolStrategy使用工具调用策略处理模型响应
ProviderStrategy使用模型提供商的原生结构化输出方法
OutputToolBinding用于跟踪结构化输出工具的元数据信息
ProviderStrategyBinding用于跟踪原生结构化输出元数据的信息
AutoStrategy自动选择最佳的结构化输出策略

Shell 执行策略类

类名功能说明
BaseExecutionPolicy持久化 Shell 会话的配置契约
HostExecutionPolicy在宿主进程上直接运行 Shell
CodexSandboxExecutionPolicy通过 Codex CLI 沙箱运行 Shell
DockerExecutionPolicy在专用 Docker 容器中运行 Shell

模型调用限制中间件类

类名功能说明
ModelCallLimitStateModelCallLimitMiddleware 的状态架构
ModelCallLimitExceededError当模型调用限制超出时会抛出的异常
ModelCallLimitMiddleware追踪模型调用计数并强制执行限制的中间件

人在回路中间件类

类名功能说明
Action表示一个具有名称和参数的操作
ActionRequest表示具有名称、参数和描述的操作请求
ReviewConfig审查人在回路请求的策略配置
HITLRequest对人类反馈的请求,用于获取模型请求的一系列操作
ApproveDecision当人类批准操作时返回的响应
EditDecision当人类编辑操作时返回的响应
RejectDecision当人类拒绝操作时返回的响应
HITLResponseHITLRequest 的响应有效负载
InterruptOnConfig要求人在回路中的操作的配置
HumanInTheLoopMiddleware实现人在回路中的中间件

隐私数据保护类

类名功能说明
PIIDetectionError从内容中检测个人可识别信息(PII)失败时发生的异常
RedactionRule处理单一 PII 类型的配置
ResolvedRedactionRule解析好的、准备好执行的隐私保护规则
PIIMiddleware检测和处理对话中的个人可识别信息(PII)的中间件

对话摘要中间件类

类名功能说明
SummarizationMiddleware当接近令牌限制时对对话历史进行摘要的中间件

中间件基础类

类名功能说明
ModelRequest代理的模型请求信息
ModelResponse模型执行返回的响应,包括消息和可选的结构化输出
ExtendedModelResponse带有来自 ‘wrap_model_call’ 中间件的可选"命令"的模型响应
OmitFromSchema注解,用于标记状态属性是否从输入或输出架构中省略
AgentState代理的状态架构
AgentMiddleware代理中间件的基类

Shell 工具中间件类

类名功能说明
ShellToolState用于追踪 Shell 会话资源的代理状态扩展
CommandExecutionResult命令执行的结构化结果
ShellSession支持顺序命令执行的持久化 Shell 会话
ShellToolMiddleware为代理注册持久化 Shell 工具的中间件

工具调用限制类

类名功能说明
ToolCallLimitStateToolCallLimitMiddleware 的状态架构
ToolCallLimitExceededError当工具调用限制超出时会抛出的异常
ToolCallLimitMiddleware在代理执行期间追踪和强制工具调用限制的中间件

上下文编辑类

类名功能说明
ContextEdit描述上下文编辑策略的协议
ClearToolUsesEdit当令牌限制超出时清除工具输出的配置
ContextEditingMiddleware自动修剪工具结果以管理上下文大小的中间件

高级中间件类

类名功能说明
ToolRetryMiddleware使用可配置回退自动重试失败工具调用的中间件
ModelFallbackMiddleware在出错时自动回退到替代模型的中间件
FilesystemFileSearchMiddleware提供对文件系统文件的 Glob 和 Grep 搜索的中间件
ModelRetryMiddleware使用可配置回退自动重试失败模型调用的中间件

Todo 管理中间件类

类名功能说明
Todo一个单独的待办事项,包含内容和状态
PlanningStateTodo 中间件的状态架构
WriteTodosInputwrite_todos 工具的输入架构
TodoListMiddleware为代理提供待办事项列表管理功能的中间件

工具仿真和选择类

类名功能说明
LLMToolEmulator使用 LLM 而非执行他们的指定工具的仿真器
LLMToolSelectorMiddleware在调用主模型之前使用 LLM 选择相关工具的中间件

🔧 Functions(函数)

代理工厂函数

函数名功能说明
create_agent创建一个代理图,循环调用工具直到满足停止条件

PII 检测函数

函数名功能说明
detect_email检测内容中的电子邮件地址
detect_credit_card使用 Luhn 验证检测内容中的信用卡号码
detect_ip检测内容中的 IPv4 或 IPv6 地址
detect_mac_address检测内容中的 MAC 地址
detect_url使用正则表达式和标准库验证检测内容中的 URL

隐私保护策略函数

函数名功能说明
apply_strategy将配置的策略应用于内容中的匹配项
resolve_detector为给定的配置返回一个可调用的检测器

中间件装饰器函数

函数名功能说明
hook_config装饰器,用于在中间件方法中配置钩子行为
before_model装饰器,用于动态创建具有 before_model 钩子的中间件
after_model装饰器,用于动态创建具有 after_model 钩子的中间件
before_agent装饰器,用于动态创建具有 before_agent 钩子的中间件
after_agent装饰器,用于动态创建具有 after_agent 钩子的中间件
dynamic_prompt装饰器,用于为模型动态生成系统提示
wrap_model_call从函数创建 wrap_model_call 钩子中间件
wrap_tool_call从函数创建 wrap_tool_call 钩子中间件

Shell 和文件搜索函数

函数名功能说明
shell_tool提供 Shell 命令执行功能的工具
glob_search快速文件模式匹配工具,适用于任何代码库大小
grep_search快速内容搜索工具,适用于任何代码库大小

任务管理函数

函数名功能说明
write_todos为当前工作会话创建和管理结构化任务列表

重试功能函数

函数名功能说明
validate_retry_params验证重试参数
should_retry_exception检查异常是否应触发重试
calculate_delay计算带有指数退避和可选抖动的重试尝试的延迟

模型初始化函数

函数名功能说明
init_embeddings从模型名称和可选提供商初始化向量模型
init_chat_model使用统一接口从任何支持的提供商初始化聊天模型

📦 Modules(模块)

核心模块

模块名功能说明
langchainLangChain 的主入口点
tools工具集合模块
tool_node用于向后兼容导入的工具文件

代理模块

模块名功能说明
agents使用 LangChain 构建代理的入口点
agents.factory支持中间件的代理工厂
agents.structured_output用于设置代理响应格式的类型

中间件模块

模块名功能说明
agents.middleware使用代理中间件插件的入口点
agents.middleware.model_call_limit代理的调用追踪中间件
agents.middleware.human_in_the_loop人在回路中间件
agents.middleware.redactionPII 隐私数据保护(隐私数据脱敏)中间件
agents.middleware.summarization对话摘要中间件
agents.middleware.types中间件类型定义和基类
agents.middleware.shell_toolShell 工具中间件
agents.middleware.tool_call_limit工具调用限制追踪中间件
agents.middleware.context_editing上下文编辑和修剪中间件
agents.middleware._executionShell 执行策略模块
agents.middleware._redactionPII 检测和隐私保护实现
agents.middleware._retry重试逻辑的基础实现
agents.middleware.piiPII 中间件实现
agents.middleware.tool_retry工具调用重试中间件
agents.middleware.model_fallback模型回退中间件
agents.middleware.file_search文件搜索工具中间件
agents.middleware.todo任务管理中间件
agents.middleware.tool_emulator工具仿真中间件
agents.middleware.tool_selection基于 LLM 的工具选择中间件
agents.middleware.model_retry模型调用重试中间件

速率限制模块

模块名功能说明
rate_limiters速率限制器的基础抽象和内存实现

向量模块

模块名功能说明
embeddings向量模型
embeddings.base向量模型的工厂函数

聊天模型模块

模块名功能说明
chat_models在 LangChain 中使用聊天模型的入口点
chat_models.base聊天模型的工厂函数

消息模块

模块名功能说明
messages消息和消息内容类型

🏷️ Types(类型)

响应格式与决策类型

类型名功能说明
ResponseFormat所有支持的响应格式策略的联合类型
Decision人类决策响应的联合类型(批准、编辑或拒绝)

上下文与调用结果类型

类型名功能说明
ContextSize上下文大小规范的联合类型
ModelCallResult模型调用处理程序返回值的类型别名

重试配置类型

类型名功能说明
RetryOn用于指定要重试的异常的类型
OnFailure用于指定失败处理行为的类型

🚀 快速入门

安装 LangChain

pipinstalllangchain

创建简单代理

fromlangchain.agentsimportcreate_agentfromlangchain.toolsimporttoolfromlangchain.chat_modelsimportinit_chat_model# 定义工具@tooldefcalculator(expression:str)->str:"""Evaluate a math expression"""returnstr(eval(expression))# 初始化模型model=init_chat_model("gpt-4")# 创建代理agent=create_agent(model=model,tools=[calculator],)

使用中间件增强代理

fromlangchain.agents.middlewareimport(HumanInTheLoopMiddleware,ModelCallLimitMiddleware)# 添加人在回路中间件agent_with_hitl=agent.with_middleware(HumanInTheLoopMiddleware())# 添加模型调用限制agent_with_limits=agent_with_hitl.with_middleware(ModelCallLimitMiddleware(max_calls=10))

📖 相关资源

  • 官方文档: LangChain Docs
  • API 参考: API Reference
  • Chat LangChain: 在线对话
  • GitHub: LangChain Repository

提示: 这份文档是基于 LangChain 官方 API 参考生成的,如有更新请参考官方最新文档。

http://www.cnnetsun.cn/news/1929109.html

相关文章:

  • FanControl终极指南:5分钟掌握Windows风扇精准控制
  • 【学习笔记】Spring IOC为何重要?
  • 八大网盘直链下载助手:免费开源工具实现下载速度10倍提升
  • Linux C编程基础知识(文件目录操作)
  • FaceFusion使用技巧:如何设置参数获得最佳换脸效果?
  • 破局高速与疲劳测量难题:DIC技术的全场动态视界
  • Nucleus Co-Op深度解析:单机游戏分屏多人协作的完整技术指南
  • 大模型应用开发入门指南:小白程序员轻松进阶,收藏必备!
  • 从理论到实践:基于Python与RealSense的JAKA机械臂手眼标定全流程解析
  • 三步掌握百度网盘秒传脚本:永久分享文件的终极解决方案
  • STK 12.2 与 MATLAB R2021a 联调避坑全记录:从环境配置到第一个Python脚本跑通
  • 激光SLAM实战解析——从特征点提取到匹配优化全流程
  • SITS2026图谱紧急预警:3类正在被淘汰的AI应用模式,及2025年前必须升级的4项架构能力
  • csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:分糖果
  • Java组件安全实战:FastJson漏洞利用与WAF绕过技巧
  • BibTeX参考文献实战指南:从入门到精通各类文献格式
  • STL算法库中的极值查找:从min_element/max_element到minmax_element的实战演进
  • 避开这些坑!在Windows上用TensorFlow部署YOLOv8模型的完整指南
  • 【评测系列2】从零实现 AgentBench评测系统:架构设计与实战
  • 模型热更新必须绕开的3个GPU内存陷阱,附NVIDIA Triton 3.4+自定义Backend实测对比报告
  • 【技术解析】GSConv与Slim-Neck:轻量级目标检测的平衡之道
  • 【2026倒计时预警】:SITS圆桌确认的3类“AI原生应用”将淘汰传统RPA/低代码平台
  • 深入拆解:一个PT100测温模块的硬件成本与设计取舍(附BOM清单)
  • QNAP Container Station部署MySQL后,Navicat连不上的3个常见原因及解决办法
  • 从零开始:KataGo围棋AI的完整配置与实战对弈指南
  • MATLAB实战:从语音信号到Mel Spectrogram(梅尔频谱图)的完整实现与参数调优
  • 如何部署并优化AOD-NET图像去雾模型
  • 功能安全——严重度(Severity)评估实战指南
  • 告别Homebrew安装烦恼:从零配置到完美卸载的一站式指南
  • 如何完整备份QQ空间:终极免费工具使用指南