Docs

可靠性与信任

请求失败时会发生什么、AnyPath 会重试什么、你的数据和凭证如何处理,以及哪些事情不作承诺。

本页目录
  1. 请求如何路由
  2. 状态与可用性
  3. 时间花在哪里
  4. 哪些情况会替你重试
  5. 哪些情况绝不重试
  6. 你为什么付费
  7. 数据与凭证
  8. 反馈问题时
  9. AnyPath 不承诺的内容

接入生产流量前请先读这一页。它说明你可以依赖什么,以及边界在哪里。

请求如何路由

Key 设置AnyPath 的行为
智能路由(默认)在所有能服务该模型的供应商中,为你请求的模型选择一条符合条件且健康的路由
指定供应商限定在一个供应商内,仍会在该供应商的路由之间选择

指定供应商固定的是供应商,不是某一个资源提供方账号。一条路由只有在最近一次连接检查通过、资源提供方状态正常、且实时价格不低于其保护倍率时,才符合条件。

状态与可用性

公开页面显示的是实测数字;请求量太少、无法判断时会如实标注。建议结合查看:

  • 实时供给与价格:按供应商查看供给、成功率和延迟
  • GET /v1/models:你的 Key 此刻可用的模型
  • 控制台 请求:每次请求的结果

时间花在哪里

每个成功的响应都带有 Server-Timing 响应头,单位是毫秒:

条目含义
gw-total从请求到达 AnyPath,到 AnyPath 开始向你返回
gw-upstream其中等待模型厂商的部分:流式请求算到厂商开始响应,非流式请求算到厂商返回完整结果

两者之差就是 AnyPath 增加的耗时:校验 Key、选择线路、预留和结算余额。可以用它区分是厂商慢还是网关慢。

哪些情况会替你重试

只有在确定第一次尝试没有产生任何输出时,AnyPath 才会重试:模型厂商在输出开始前返回了完整的限流拒绝(429)。同时,请求必须是可以安全重发的纯文本请求。

  • 默认总共最多尝试四次,包含第一次。
  • 重试会先换地方:先换同一资源提供方的另一个 Key,再换另一个资源提供方;智能路由下还可以换到服务同一模型的其他供应商。指定供应商下,重试留在该供应商内。
  • 每次重试都会重新检查模型权限、路由资格和余额,且不会提高这次请求的预留金额。
  • 所有尝试共用最初的截止时间:非流式 3,600 秒,流式 600 秒。

哪些情况绝不重试

超时、连接失败、5xx 响应、鉴权或额度失败、安全拒绝,以及任何已经开始输出的响应,都会原样返回给你。带有续接 ID、文件、缓存引用、签名推理块、工具或后台执行的请求也是如此。

报错并不能证明模型厂商什么都没做。不要盲目重发失败的生成请求;请在你的客户端里设置明确的重试预算。

你为什么付费

  • 只有成功的请求才扣费。失败的尝试不向你收费,也不向资源提供方付费。
  • 扣费金额按厂商报告的用量和请求开始时的价格计算,且不会超过预留金额。
  • 如果你在流式过程中断开连接,模型厂商那边仍会继续生成。AnyPath 会把流读到结束,并按实际生成量扣费。
  • 如果流在没有可用用量数据的情况下结束(厂商报错、达到 600 秒上限,或终态事件不含用量),预留金额会退回,你不会被扣费。

数据与凭证

  • API Key 只在创建时显示一次。
  • 资源提供方的凭证加密保存,任何 API 都不会返回原文。
  • 调用方看不到是哪位资源提供方承接了请求;资源提供方也无法通过 AnyPath 看到调用方的提示和响应内容。
  • AnyPath 会替换认证头,并可能添加追踪元数据,但不会改变请求体的含义。

反馈问题时

请提供请求 ID、API Key 名称(不要提供密钥原文)、模型和端点,以及大致时间和时区。

AnyPath 不承诺的内容

  • 每个模型对每个 Key 随时可用。
  • 连续的请求落到同一个资源提供方账号。
  • 异步、批处理或轮询端点。
  • 由客户指定上游地址。
  • 数据驻留在指定地区。地区排除是运营控制,不是逐请求的保证。