APIQIKAPIQIK
文档导航
用户指南

超时、重试与并发

设置连接与总超时,使用指数退避控制重试,并通过队列管理并发。

设置连接与总超时,使用指数退避控制重试,并通过队列管理并发。

平台提供节点级容灾,客户端仍需要用明确的超时、有限重试和并发控制保护自身服务。

超时设计

超时控制范围建议
连接超时建立 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 后降低发送速率,并优先遵循响应中可用的重试提示。

降级策略

  • 关闭非必要的长回答、深度推理或高成本功能。
  • 将低优先级请求排队,保护关键交互流量。
  • 在经过评测的前提下切换到更快或更经济的模型。
  • 对可缓存的问题返回已验证缓存,并向用户标明更新时间。