产品详细介绍
reliableGPT 是 BerriAI 开源的一个“可靠性中间层”(reliability middleware),主要用于在调用 OpenAI 等大语言模型(LLM)接口时,自动处理各种常见错误与不稳定因素,让你的 AI 应用在生产环境中更加稳定、可观测、可维护。
它的核心目标是:在不大幅改动现有代码的前提下,为 LLM 调用增加一层“保险”,自动完成重试、故障切换、超时控制、日志记录和告警通知等工作,从而减少 5xx 错误、限流报错、网络抖动等带来的用户体验问题。
核心功能与特点
-
自动重试与退避策略
- 对常见的临时性错误(如 429 限流、5xx 服务错误、网络超时)自动重试。
- 支持指数退避(exponential backoff)等策略,避免对上游接口造成二次冲击。
- 可配置最大重试次数与重试间隔。
-
多模型/多服务故障切换(Failover)
- 当主模型或主服务不可用时,可自动切换到备用模型或备用服务提供商。
- 支持配置多个模型顺序,例如:先用 gpt-4,失败后自动降级到 gpt-3.5 或其他兼容模型。
- 降级策略可自定义,保证在服务异常时仍能给用户返回“可用答案”。
-
超时控制与请求保护
- 为每次 LLM 调用设置统一或单次的超时时间,避免请求长时间挂起。
- 对异常长响应、网络阻塞等情况进行保护,及时返回错误并触发重试或降级。
- 可与应用自身的超时机制配合,构建多层防护。
-
错误分类与智能处理
- 将错误区分为:客户端错误(如参数错误)、服务端错误(5xx)、限流错误(429)、网络错误等。
- 对不同类型错误采用不同策略:立即失败、重试、切换模型、告警等。
- 降低“误重试”或“无意义重试”的概率,提高整体吞吐与成功率。
-
日志记录与可观测性
- 对每次调用的请求参数(可脱敏)、响应时间、错误类型、重试次数等进行结构化记录。
- 便于后续在日志平台或监控系统中进行统计分析(如成功率、平均延迟、错误分布)。
- 为排查线上问题、优化模型选择与提示词提供数据基础。
-
告警与通知集成
- 当出现连续失败、错误率飙升、某个模型长时间不可用等情况时,可触发告警。
- 可与常见告警渠道集成(如邮件、Slack、Webhook 等),让运维与开发及时感知问题。
- 支持自定义告警阈值与频率,避免告警风暴。
-
与现有代码低侵入集成
- 以中间层/包装器(wrapper)的形式存在,通常只需替换原有的 OpenAI 客户端或调用入口。
- 对上层业务逻辑基本透明,不改变你原本的业务接口设计。
- 适合已有项目“平滑接入”,也适合新项目从一开始就引入。
-
开源与可扩展性
- 项目托管在 GitHub,代码开放,可根据自身业务需求进行二次开发。
- 可扩展支持更多 LLM 服务商或自建模型网关。
- 可自定义策略模块(如自定义重试规则、路由规则、日志落地方式等)。
典型应用场景
- 生产环境的聊天机器人、智能客服、问答系统:减少因 OpenAI 接口波动导致的对话中断。
- 内容生成平台(文案、代码、图文混排等):保证批量生成任务在长时间运行中稳定完成。
- 内部工具与自动化脚本:在夜间批处理、定时任务中自动处理偶发错误,减少人工干预。
- 多模型策略实验平台:在同一层中统一管理不同模型的调用与切换策略,便于 A/B 测试与成本控制。
简单使用教程
以下为基于典型使用方式整理的简明教程,帮助你快速上手 reliableGPT。具体代码示例与最新接口请以 GitHub 仓库为准。
一、安装与基础配置
-
安装依赖
在你的 Python 项目中,使用包管理工具安装(示例):- 使用
pip:pip install reliablegpt(具体包名与命令以仓库说明为准)。
- 使用
-
配置环境变量
- 设置 OpenAI 等 LLM 服务的 API Key,例如:
OPENAI_API_KEY。 - 如需使用多服务商或多模型,在配置文件或代码中写入对应的密钥与模型名称。
- 设置 OpenAI 等 LLM 服务的 API Key,例如:
-
初始化 reliableGPT 客户端
在代码中引入并创建一个包装后的客户端实例,例如:- 传入基础配置:默认模型、超时时间、最大重试次数等。
- 可选配置:备用模型列表、告警 Webhook 地址、日志输出方式等。
二、替换原有 LLM 调用
-
原始调用方式(示意)
# 原来直接调用 OpenAI import openai response = openai.ChatCompletion.create( model="gpt-4", messages=[{"role": "user", "content": "你好"}] ) -
使用 reliableGPT 包装调用(示意)
from reliablegpt import ReliableOpenAI client = ReliableOpenAI( primary_model="gpt-4", backup_models=["gpt-3.5-turbo"], max_retries=3, timeout=30, ) response = client.chat_completion( messages=[{"role": "user", "content": "你好"}] ) -
保持业务逻辑不变
- 上层业务依然只关心
response的内容解析。 - reliableGPT 在内部自动完成重试、降级与错误处理。
- 上层业务依然只关心
三、配置重试与故障切换策略
-
设置重试策略
- 在初始化时指定
max_retries、retry_backoff(退避策略)等参数。 - 可根据业务重要性与延迟容忍度调整重试次数和间隔。
- 在初始化时指定
-
配置多模型降级链路
- 通过
backup_models或类似参数传入备用模型列表。 - 可按“性能优先”或“成本优先”排序,例如:
["gpt-4", "gpt-4-mini", "gpt-3.5-turbo"]。 - 当主模型不可用时,reliableGPT 会按顺序尝试下一个模型。
- 通过
-
自定义错误处理逻辑(可选)
- 对特定错误码(如 400 参数错误)直接抛出异常,不重试。
- 对 429、5xx、网络错误启用重试与降级。
- 可在配置中挂载自定义回调,用于记录特殊错误或执行补偿逻辑。
四、日志与监控接入
-
启用日志输出
- 在初始化时开启详细日志模式,指定日志级别(info/debug)。
- 将日志输出到控制台或文件,便于本地调试。
-
接入监控系统
- 将调用结果(成功/失败)、延迟、错误类型等指标上报到你的监控平台(如 Prometheus、Datadog 等)。
- 根据这些指标设置告警规则,例如:错误率 > 5% 持续 5 分钟触发告警。
-
配置告警通知(可选)
- 在 reliableGPT 配置中填入告警 Webhook 或通知渠道。
- 当出现连续失败、模型不可用等情况时,自动发送告警消息。
五、在生产环境中的使用建议
-
先在测试环境验证策略
- 在测试环境中模拟限流、网络错误等场景,观察重试与降级是否符合预期。
- 调整重试次数、超时时间与备用模型顺序。
-
逐步放量上线
- 先在少量流量上启用 reliableGPT,观察稳定性与延迟变化。
- 确认无明显问题后,再扩大到全部生产流量。
-
持续优化
- 根据日志与监控数据,优化模型选择策略与提示词。
- 结合业务成本与性能需求,动态调整主模型与降级链路。
通过以上步骤,你可以将 reliableGPT 作为 LLM 调用的“可靠性护盾”,在不大幅改造现有系统的前提下,显著提升大模型应用在真实生产环境中的稳定性与可维护性。




