当前位置: 首页 > 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 ChatOpenAIdotenv.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)
http://www.xdnf.cn/news/275077.html

相关文章:

  • 基于PHP实现的easy管理系统
  • 委托构造函数是什么?
  • 如何使用责任链模式优雅实现功能(滴滴司机、家政服务、请假审批等)
  • idea内存过低 设置 Maximum Heap Size 终极解决方案
  • ReentrantLock实现公平锁和非公平锁
  • 【毕设通关】——Word交叉引用
  • 聊聊对Mysql的理解
  • 《AI大模型应知应会100篇》第48篇:构建企业级大模型应用的架构设计
  • PiscTrace针对YOLO深度适配:从v8到v12
  • vue3 - keepAlive缓存组件
  • Python变量作用域陷阱:为什么函数内赋值会引发_局部变量未定义
  • C++多态(上)
  • 互联网大厂Java求职面试:核心技术点深度解析
  • 12.Excel:查找替换
  • 单例模式(Singleton Pattern)
  • Three.js在vue中的使用(二)-动画、材质
  • 深入解析 MQTT 协议:物联网通信的基石
  • Flink基础整理
  • 实验三 触发器及基本时序电路
  • js逆向绕过指纹识别
  • 打电话玩手机检测数据集VOC+YOLO格式8061张1类别
  • PostgreSQL 的 pg_stat_file 函数
  • 【MySQL数据库】用户管理
  • AUTOSAR_BSW_从入门到精通学习笔记系列_EcuM
  • 网络Tips20-003
  • 【学习笔记】深度学习:典型应用
  • ActiveMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 的选型参考(二)
  • LeetCode刷题链表
  • 自监督学习(Self-supervised Learning)李宏毅
  • FiLo++的框架图介绍