5.4 Wrap-style hooks函数用法

5.4.1 基本用法

  1. wrap_model_call
    ① 基于装饰器实现
    我们可以同时在模型调用前后做事,所以命名为wrap_model_call ,wrap意为包裹。
    源码:
图片[1]-5.4 Wrap-style hooks函数用法-大赛人网

代码实现:

图片[2]-5.4 Wrap-style hooks函数用法-大赛人网
图片[3]-5.4 Wrap-style hooks函数用法-大赛人网
图片[4]-5.4 Wrap-style hooks函数用法-大赛人网

模型调用前消息列表的最后一条是HumanMessage,调用后最后一条是AIMessage,可以看到,模型调用前后的更改都生效了。
② 基于类实现

图片[5]-5.4 Wrap-style hooks函数用法-大赛人网

使用场景:用于拦截、重试、缓存模型调用。
场景1:重试逻辑

图片[6]-5.4 Wrap-style hooks函数用法-大赛人网

场景2:响应缓存

图片[7]-5.4 Wrap-style hooks函数用法-大赛人网
图片[8]-5.4 Wrap-style hooks函数用法-大赛人网

场景3:修改系统提示

图片[9]-5.4 Wrap-style hooks函数用法-大赛人网
return handler(31 modified_request)
  1. wrap_tool_call
    我们可以同时在工具调用前后做事,所以命名为wrap_tool_call 。
    ① 基于装饰器实现
图片[10]-5.4 Wrap-style hooks函数用法-大赛人网
图片[11]-5.4 Wrap-style hooks函数用法-大赛人网
图片[12]-5.4 Wrap-style hooks函数用法-大赛人网

在@wrap_tool_call装饰的函数中两次调用函数并更改参数。
② 基于类实现

图片[13]-5.4 Wrap-style hooks函数用法-大赛人网
图片[14]-5.4 Wrap-style hooks函数用法-大赛人网

使用场景:用于监控、重试、修改工具执行。
比如:

图片[15]-5.4 Wrap-style hooks函数用法-大赛人网

5.4.2 两种方法的统一
同上,装饰器方法底层也会创建一个AgentMiddleware的实例。
5.4.3 参数说明
request:被封装的请求对象,可以是模型或工具调用请求
handler:处理器,用于处理请求并返回调用结果。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容