7.3.3 错误处理:handle_errors参数

受限于模型能力,大模型输出的内容可能并不符合格式要求,ToolStrategy通过其handle_errors参数提供了结构化过程错误处理策略,以下是主要的几种方式及其用途:

图片[1]-7.3.3 错误处理:handle_errors参数-大赛人网

情况1:设置为True/False/固定字符串
设计思路:模型对于单条信息的格式化输出请求,输出了多个工具调用请求。也称为多结构化输出错误。

图片[2]-7.3.3 错误处理:handle_errors参数-大赛人网
图片[3]-7.3.3 错误处理:handle_errors参数-大赛人网

1)handle_errors设置为True
运行后结果如下:

图片[4]-7.3.3 错误处理:handle_errors参数-大赛人网

模型接收到错误反馈后,再次生成新的调用请求,直至成功或达到内部的最大重试次数。
ToolStrategy中自定义的tool_message_content控制的是成功后的消息内容,不影响错误消息内容。
2)handle_errors设置为False
运行后结果如下:

图片[5]-7.3.3 错误处理:handle_errors参数-大赛人网

图片[6]-7.3.3 错误处理:handle_errors参数-大赛人网

情况2:设置为指定异常类型
默认情况下,LangChain会处理结构化输出处理时抛出的两类异常:

  1. MultipleStructuredOutputsError
    多结构化输出错误,当返回的工具调用请求数量大于1时,抛出该异常,默认情况下LangChain会拦截异常并提醒模型重试。
  2. StructuredOutputValidationError
    输出结构化验证错误,当输出格式不符合结构化要求时,抛出上述异常。默认情况下LangChain会拦截该异常并自动重试。
图片[7]-7.3.3 错误处理:handle_errors参数-大赛人网
图片[8]-7.3.3 错误处理:handle_errors参数-大赛人网
图片[9]-7.3.3 错误处理:handle_errors参数-大赛人网

情况3:设置为自定义错误处理函数
指定异常处理函数并返回字符串时,LangChain会在遇到异常时自动重试并将异常处理函数的返回值作为ToolMessage的内容。
我们也可以选择在异常处理函数中抛出异常。

图片[10]-7.3.3 错误处理:handle_errors参数-大赛人网
图片[11]-7.3.3 错误处理:handle_errors参数-大赛人网
图片[12]-7.3.3 错误处理:handle_errors参数-大赛人网
图片[13]-7.3.3 错误处理:handle_errors参数-大赛人网
图片[14]-7.3.3 错误处理:handle_errors参数-大赛人网
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容