限流默认关闭。站点开启后按「每个密钥最近 60 秒的请求数」统计:超过阈值返回 429,并带 Retry-After: 10 响应头:
{
"error": {
"message": "请求过于频繁,已触发限流(每分钟 120 次)",
"type": "rate_limit_exceeded",
"code": null
}
}
建议客户端在收到 429 后退避重试(例如 1s、2s、4s 递增),不要立刻重发。
| 环节 | 默认 | 说明 |
|---|---|---|
| 非流式请求 | 300 秒 | 网关等待上游返回的时长 |
| 流式请求 | 600 秒 | 长回答(写长文、深度思考)需要更久 |
| 反向代理 | 由服务器决定 | Nginx 的 fastcgi_read_timeout 必须 ≥ 上面的值 |
| PHP | 由 php.ini 决定 | 流式开始时网关会尝试 set_time_limit(0) |
超时表现为 502 或连接中断,日志里会留下上游的错误信息。要跑长任务(比如生成一万字),请用流式,并把 Nginx 与 PHP 的超时一起放宽。
网关本身没有并发数限制(受服务器与上游配额限制),但要注意:
pm.max_children 调大,否则表现为「偶发 502 / 排队」;一次请求最多经历两层重试:
注意:非幂等的副作用(比如上游按次计费已经扣了钱)不会因为重试而回滚,网关只保证最终返回一个结果或错误。