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

Runnable组件容灾回退机制 with_fallback 深度解析降低程序错误率

一、前言

在某些场合中,对于 Runnable 组件的出错,并不想执行重试方案,而是执行特定的备份/回退方案,例如 OpenAILLM 大模型出现异常时,自动切换到 文心一言 的模型上,在 LangChain 中也提供了对应的回退机制—— with_fallback

当构建高可用AI系统时,with_fallback 机制可实现:

  • 服务降级:主服务异常时自动切换备用服务
  • 混合云支持:公有云服务不可用时切换私有化部署模型
  • 异常隔离:错误类型定向处理

二、参数配置详解

参数说明表

参数名类型必填默认值说明
fallbacksList[Runnable]按顺序尝试的回退组件链
exceptions_to_handleTuple[Exception]Exception触发回退的异常白名单
exception_keystrNone将异常对象注入备用组件的参数键名

三. 资料推荐

  • 🔗 官方文档参考
  • 💡大模型中转API推荐
  • ✨中转使用教程

四、运行流程图示

在这里插入图片描述


五、代码示例

例如,我们的回退备选方案是这样的,当 OpenAI 模型调用失败时,自动切换到文心一言执行任务:

import dotenv
from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

dotenv.load_dotenv()

# 1.构建prompt与LLM,并将model切换为gpt-3.5-turbo-18k引发出错
prompt = ChatPromptTemplate.from_template("{query}")
llm = ChatOpenAI(model="gpt-3.5-turbo-18k").with_fallbacks([QianfanChatEndpoint()])

# 2.构建链应用
chain = prompt | llm | StrOutputParser()

# 3.调用链并输出结果
content = chain.invoke({"query": "你好,你是?"})
print(content)

相关文章:

  • 单链表的实现 | 附学生信息管理系统的实现
  • 3D打印技术助力高精密零件制造与维修工具革新
  • C# Winform 入门(13)之通过WebServer查询天气预报
  • 网络钓鱼攻击的威胁和执法部门的作用(第一部分)
  • 架构师面试(二十六):系统拆分
  • 【Csharp】获取实时的鼠标光标位置,测试用——做窗口软件绘图需要确定光标位置
  • GenerationMixin概述
  • Python Cookbook-5.5 根据内嵌的数字将字符串排序
  • 清明假期间
  • 数据分析-Excel-学习笔记
  • AI大模型:(二)2.1 从零训练自己的大模型概述
  • 【LeetCode 热题100】55:跳跃游戏(详细解析)(Go语言版)
  • 用python来操作mysql(复习一,主要是mysql连接和授权)
  • 【清明折柳】写在扬马三周目后
  • 【NLP 54、大模型训练相关知识】
  • Sentinel核心源码分析(上)
  • InfoSec Prep: OSCP靶场渗透
  • 定义和初始化 vector 对象(三十八)
  • TypeScript学习第十六篇 - interface和type的区别?
  • 【在线OJ项目测试报告】
  • WordPress 插件修改界面/快速排名seo
  • 外贸在哪个网站做/品牌运营公司
  • 安装完wordpress怎么打开/东莞整站优化推广公司找火速
  • 浙江省专业网站制作网站建设/网站运营管理
  • 微信微网站模板下载/线上营销培训
  • 佛山企业网站推广/品牌传播推广方案