跳到正文

使用场景可靠性

当某个提供商宕机时,你的 AI 功能依然能作答。

在你已有的提供商账号之前放一条命名路由。在响应开始之前超时或失败的请求,会在你选择的下一个目标上重试,你的客户端看到的是一个答案,而不是一次故障。

POST /v1/chat/completions · model: support-chat示例
第 1 次尝试openai · 第一个字节前返回 503 · 0.4 s
第 2 次尝试azure-openai · 200 · 流式传输
客户端看到200,一个响应
追踪记录两次尝试,附有提供商自己的消息

路由示例。你的客户端发送一个请求;追踪记录保留每一次尝试。

问题所在

没有控制平面

  • 提供商的事故,在他们的事故持续期间,就是你产品的事故。
  • 回退逻辑存在于每个服务中,每个团队写得都不一样。
  • 已淘汰的模型是在其请求开始失败时才被发现的。

使用 INFRO

  • 路由在你自己的连接之间列出优先级或加权目标。
  • 故障转移发生在网关中,在你的客户端看到错误之前。
  • 淘汰会提前宣布,并从关停日期起指名拒绝。

运作方式

  1. 连接你已在付费的账号

    添加你自己两家或更多提供商的密钥,或同一家提供商的两个密钥和主机。不涉及任何再销售;每个提供商仍像现在一样向你收费。

  2. 为路由命名

    按优先级顺序或权重列出目标。你的代码调用路由的名称而不是模型 id,因此无需部署即可改变顺序。

  3. 决定失败意味着什么

    失败规则按失败类型选择是重试、转到下一个目标还是停止,if 规则则把匹配的请求发往各自的目标。

你能得到什么

每一项都有文档说明,并注明包含它的套餐。未注明套餐的,所有套餐都提供。

  • 命名路由

    基于你自己连接的优先级或加权目标,带健康检查、重试和故障转移。

    文档
  • 在第一个字节之前完成故障转移

    在响应开始之前超时或返回 5xx 的目标,会在别处重试,而你的客户端看不到。

    文档
  • If 规则和失败规则

    按元数据、功能、终端用户、密钥、项目、提示词大小、流式传输、工具或一天中的时段,把请求发往各自的目标。

    文档
  • 备用主机与密钥分散

    一个连接可以为同一个密钥列出多个主机;直接指定模型的请求会分摊到提供商的各个密钥上,备用密钥最后使用。

    文档
  • 模型退役

    仍在发送即将淘汰模型的组织会收到警告;从关停日期起,该模型在任何调用之前就会被拒绝,并指明替代模型。

    文档
  • 来自你自己密钥的可用性

    你自己的密钥返回的模型列表每三个小时读取一次,不再被列出的模型也不再被提供。

    文档

适用对象

  • 平台团队用一个地方来定义每个服务如何访问每个提供商,而不是每个仓库各有一个回退库。
  • 值班工程师每次失败的尝试都在追踪记录中,附有提供商自己的消息,因此第一个问题在你打开页面之前就有了答案。
  • 产品负责人提供商糟糕的一个下午,不再是你的用户糟糕的一个下午。

常见问题

故障转移会切换到我没有选择的模型吗?

不会。路由只会转到你在其上列出的目标,按你设定的顺序或权重。INFRO 绝不会代你用另一个模型作答。

如果流式传输中途失败会怎样?

故障转移在响应开始之前生效。一旦 token 已经到达你的客户端,请求就不会在别处重放;错误会被返回,并记录在追踪记录中。

我需要在多家提供商处开设账号吗?

有帮助,但不是必需的:一家提供商配两个密钥,或一个密钥配一个备用主机,就已经让路由有地方可去。每个账号仍归你所有,并直接向你收费。

完整约定见路由文档,其他所有问题见 FAQ。

开始使用

在你自己的提供商账号上试用。

连接一个提供商,创建一个网关密钥,修改一个基础 URL。你的提供商继续直接向你收费;模型支出零加价。