langchain1.X学习笔记-28-中间件Middleware之自定义中间件(一)节点风格钩子
文章目录1 模型初始化2 自定义中间件2.1 hook函数(钩子函数)2.2 LangChain的hook函数2.2.1 类型1:Node-style hooks(节点风格钩子)2.2.2 类型2:Wrap-style hooks(包装风格钩子)2.2.3 功能对比3 Node-style hooks函数用法3.1 基本用法3.1.1 基于装饰器实现(@before_model和@after_model)3.1.2 基于类实现(继承AgentMiddleware并重写方法)3.2 两种方法的统一3.3 Node-style hooks函数参数说明3.3.1 输入参数(state和runtime)3.3.2 返回值(None或字典或jump_to)3.4 装饰器参数:can_jump_to3.4.1 基于装饰器实现3.4.2 基于类实现Node-style(节点式):它们是在Agent执行流程的固定节点上按顺序触发。它们不掌握模型或工具调用的控制权,不能决定模型是否被调用。它们的作用是在到达该节点时,观察状态、修改状态或进行简单的拦截跳转。1 模型初始化from langchain_openaiimportChatOpenAI from dotenvimportload_dotenvimportos load_dotenv(override=True)#通过ChatOpenAI 连接模型API_KEY=os.getenv("API_KEY")BASE_URL=/