OneHop Docs

限流与错误

理解限流策略、重试,以及网关错误契约。

OneHop 在上游供应商限制之上施加自己的限流策略。该策略管控每账号每分钟请求数和并发流数, 并按请求逐次解析 —— 先看密钥的策略,再看账号的策略,最后回退平台默认。

处理 429

超过限制时,网关按入口协议的错误格式返回 RATE_LIMITED,HTTP 429

{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit exceeded"
  }
}

退避后重试

429 当作瞬态。用带抖动的指数退避重试,而不是猛打端点。如果你持续撞限, 请联系客服申请更高的策略档位。

各协议的错误格式

错误按你调用的家族格式返回,所以你现有的 SDK 错误处理照常工作:

  • /v1/*/responses —— OpenAI 错误格式。
  • /anthropic/*/v1/messages —— Anthropic 错误格式。
  • /vertex-ai/* —— Gemini / Google 错误格式。

网关错误参考

错误码HTTP含义
API_KEY_REQUIRED401没有发 API 密钥。
INVALID_API_KEY401密钥不存在或已撤销。
AMBIGUOUS_API_KEY400同时发了多个密钥头。
USER_BLOCKED403所属账号已被禁用。
INSUFFICIENT_CREDITS422钱包余额低于地板。
RATE_LIMITED429命中 RPM、并发或策略限制。
MODEL_NOT_FOUND404目录中无此模型。
MODEL_PROTOCOL_NOT_SUPPORTED400模型未开放该协议。
MODEL_TEMPORARILY_UNAVAILABLE503已发布的模型被暂停,而非移除。
SUB2API_POOL_UNAVAILABLE503无可用上游容量。
UPSTREAM_TIMEOUT504上游超时。
UPSTREAM_ERROR502上游返回 5xx。

幂等

X-Idempotency-Key 头,让请求可安全重试:

curl https://api.onehop.ai/v1/chat/completions \
  -H "Authorization: Bearer $ONEHOP_API_KEY" \
  -H "X-Idempotency-Key: idem_2026_06_19_001" \
  -H "Content-Type: application/json" \
  -d '{ "model": "openai/gpt-4o-mini", "messages": [{ "role": "user", "content": "hi" }] }'
  • 如果同一键的请求仍在途中,你会得到 IDEMPOTENCY_IN_PROGRESS(409),且不会再次调用上游。
  • 如果它已经完成,你会得到 IDEMPOTENCY_REPLAY_UNAVAILABLE(409)—— 请求不会被重复扣费, 但原始响应体不会被重放。

幂等键按账号范围生效,防止重试与对账造成重复扣费。