用户指南
超时、重试与并发
设置连接与总超时,使用指数退避控制重试,并通过队列管理并发。
设置连接与总超时,使用指数退避控制重试,并通过队列管理并发。
平台提供节点级容灾,客户端仍需要用明确的超时、有限重试和并发控制保护自身服务。
超时设计
| 超时 | 控制范围 | 建议 |
|---|---|---|
| 连接超时 | 建立 TCP/TLS 连接 | 设置较短,避免网络不可达长期占用线程。 |
| 首 Token 超时 | 发送请求到收到首个流式数据块 | 根据模型推理特性与交互体验设定。 |
| 读取超时 | 连续数据块之间的等待 | 长文本或推理模型需要更宽松。 |
| 业务总超时 | 从进入业务到最终响应 | 包含排队、平台路由与模型生成时间。 |
Python 客户端配置
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIQIK_API_KEY"],
base_url="https://api.dimleap.cn/v1",
timeout=60.0,
max_retries=2,
)SDK 重试与业务重试会叠加。设定业务总超时前,应计算最坏情况下的尝试次数和每次等待时间。
重试原则
- 仅重试临时性错误,例如部分
429、500、502、503、504和网络中断。 - 不要重试参数错误、鉴权失败或余额不足,先修正原因。
- 采用指数退避并加入随机抖动,避免大量客户端同时重试。
- 设置最大次数和总时间预算,超过后快速失败并返回可理解提示。
- 若请求会触发外部副作用,先建立幂等机制,再允许自动重试。
并发控制
业务请求 → 有界队列 并发信号量 → Dimleap
使用有界队列限制同时在途请求数。队列已满时应拒绝或降级,而不是持续创建任务直至耗尽内存。收到 429 后降低发送速率,并优先遵循响应中可用的重试提示。
降级策略
- 关闭非必要的长回答、深度推理或高成本功能。
- 将低优先级请求排队,保护关键交互流量。
- 在经过评测的前提下切换到更快或更经济的模型。
- 对可缓存的问题返回已验证缓存,并向用户标明更新时间。