h_id}/cancel\"}}]}]},{\"type\":\"group\",\"title\":\"工具包与框架\",\"icon\":\"ToolsOutlined\",\"children\":[{\"type\":\"page\",\"title\":\"OpenAI 兼容\",\"sidebarTitle\":\"OpenAI 兼容\",\"slug\":\"api-reference/toolkitframework/openai-compatible/overview\",\"frontmatter\":{\"title\":\"OpenAI 兼容接口\",\"sidebarTitle\":\"OpenAI 兼容\",\"description\":\"只需修改 base_url、api_key 和 model 三个参数,即可从 OpenAI 迁移到千问云。\",\"keywords\":[\"OpenAI 兼容\",\"Chat Completions\",\"Responses API\",\"批量处理\",\"迁移\"]}}]},{\"type\":\"group\",\"title\":\"更多\",\"icon\":\"TransformPointOutlined\",\"children\":[{\"type\":\"page\",\"title\":\"错误信息\",\"slug\":\"api-reference/more/error-messages\",\"frontmatter\":{\"title\":\"错误信息\",\"description\":\"API 错误码参考\",\"keywords\":[\"错误码\",\"报错排查\",\"HTTP 状态码\",\"异常处理\",\"InvalidParameter\"]}},{\"type\":\"page\",\"title\":\"临时 API Key\",\"sidebarTitle\":\"临时 API Key\",\"slug\":\"api-reference/more/generate-a-temporary-api-key\",\"frontmatter\":{\"title\":\"生成临时 API Key\",\"sidebarTitle\":\"临时 API Key\",\"description\":\"短期有效的临时访问令牌\",\"keywords\":[\"临时令牌\",\"前端安全\",\"expire_in_seconds\",\"访问凭证\",\"Bearer token\"]}},{\"type\":\"page\",\"title\":\"上传文件获取临时 URL\",\"slug\":\"api-reference/more/upload-file-get-temporary-url\",\"frontmatter\":{\"title\":\"上传文件获取临时 URL\",\"description\":\"将本地文件上传至免费临时存储空间并获取 oss:// 格式的临时 URL,供多模态、图像、视频或音频模型调用。\",\"keywords\":[\"文件上传\",\"临时存储\",\"oss URL\",\"上传凭证\",\"多模态\"]}},{\"type\":\"page\",\"title\":\"管理异步任务\",\"slug\":\"api-reference/more/manage-asynchronous-tasks\",\"frontmatter\":{\"title\":\"管理异步任务\",\"description\":\"查询和管理异步任务\",\"keywords\":[\"异步任务\",\"任务查询\",\"任务取消\",\"task_id\",\"批量状态\"]}},{\"type\":\"page\",\"title\":\"异步任务管理 API\",\"sidebarTitle\":\"异步任务管理 API\",\"slug\":\"api-reference/more/async-task-management\",\"frontmatter\":{\"title\":\"异步任务管理 API 参考\",\"description\":\"通过 HTTP API 查询单个异步任务结果、批量查询异步任务状态、以及取消异步任务的完整参考文档。\",\"keywords\":[\"异步任务\",\"task_id\",\"任务取消\",\"批量查询\",\"task_status\"],\"sidebarTitle\":\"异步任务管理 API\"}},{\"type\":\"page\",\"title\":\"连接池\",\"sidebarTitle\":\"连接池\",\"slug\":\"api-reference/more/connection-pooling\",\"frontmatter\":{\"title\":\"连接复用与连接池\",\"sidebarTitle\":\"连接池\",\"description\":\"面向高并发场景的 HTTP 连接复用和 WebSocket 连接池配置指南。\",\"keywords\":[\"连接池\",\"高并发\",\"WebSocket\",\"TTS\",\"连接复用\"]}}]}]},{\"id\":\"tab-3\",\"title\":\"资源\",\"href\":\"/resources/billing-overview\",\"items\":[{\"type\":\"group\",\"title\":\"计费\",\"icon\":\"InvoiceOutlined\",\"children\":[{\"type\":\"page\",\"title\":\"充值及查看余额\",\"slug\":\"resources/billing-overview\",\"frontmatter\":{\"title\":\"充值及查看余额\",\"description\":\"为账户充值并查看可用额度\",\"keywords\":[\"充值\",\"余额\",\"对公汇款\",\"可用额度\",\"支付宝\",\"银联\"]}},{\"type\":\"page\",\"title\":\"免费额度\",\"slug\":\"resources/free-quota\",\"frontmatter\":{\"description\":\"新用户免费额度\",\"keywords\":[\"免费 Token\",\"新用户福利\",\"额度有效期\",\"实时推理\"],\"title\":\ 限流 - 千问云
跳转到主要内容
管理

限流

了解和管理 API 限流

速率限制的工作原理

速率限制控制您的账户每分钟可以对每个模型消耗的 API 请求数和 Token 数。限制分为两种:
  • RPM(Requests Per Minute):每分钟最大 API 调用次数。
  • TPM(Tokens Per Minute):每分钟最大处理 Token 数。
速率限制在账户级别生效,同一账户下的所有业务空间和 API Key 共享配额。
速率限制同时按秒生效:RPS = RPM / 60,TPS = TPM / 60。即使每分钟的总用量未超限,单秒内的突发请求也可能触发限流。

查看速率限制

前往用量分析页面,查看账户下每个模型的速率限制和实时用量。 用量分析页面显示以下信息:
  • 汇总指标:所选时间范围内的总调用次数、失败次数、平均首包耗时和平均延迟。
  • 按模型明细:展示每个模型的平均 TPM、平均 RPM、总请求数、成功请求数、平均成功率、平均首包耗时和平均延迟。
使用时间范围选择器(如 3 小时、24 小时)调整监控窗口。

按业务空间设置速率限制

您可以在业务空间中为单个模型设置自定义的 RPM 和 TPM 限制。
1

进入业务空间页面

前往设置 > 业务空间,点击子业务空间的编辑按钮。
2

添加模型并设置限制

模型权限下,点击全部模型添加模型。为每个模型设置 Times / min(RPM)和 Token / min(TPM),然后点击应用
3

提交

点击提交以应用新的速率限制。
为业务空间设置的 RPM 和 TPM 不能超过该模型的账户级别限制。默认业务空间使用账户级别限制,无法修改。

临时提升频率限制

如果某个模型需要更高的吞吐量,可以通过账户设置申请临时提升。
1

进入限流提额页面

前往限流提额页面。
2

申请提升

点击临时提升频率限制,选择模型,输入目标 Token Rate Limit(每 60 秒的 Token 数)。对话框会显示当前配额和上限。
3

提交

点击提交以应用临时提升。
请根据实际需求申请配额。长期未使用的配额可能会被缩减至默认限制。
限流提额页面还展示所有临时提升申请的历史记录,包括每次申请的提交时间、模型代码和账号 TPM 上限。

速率限制错误

触发速率限制时,API 返回 HTTP 状态码 429,错误信息会指出触发了哪种限制:
错误信息原因
Requests rate limit exceededYou exceeded your current requests list达到 RPM 限制
Allocated quota exceededYou exceeded your current quota达到 TPM 限制
Request rate increased too quickly请求量突增触发了稳定性保护,即使 RPM/TPM 未超限
限制在一分钟内重置。 其他错误请参阅错误信息

最佳实践

平滑请求速率

将请求均匀分散在时间维度上,避免突发集中发送。使用恒定速率调度、指数退避或请求队列来避免触发每秒限制。

使用备用模型

请求被限流时,可回退到备用模型以保持服务可用性:
import os
import asyncio
from openai import AsyncOpenAI, APIStatusError

API_KEY = os.getenv("DASHSCOPE_API_KEY")
MODEL = "qwen-plus-2025-07-28"
BACKUP_MODEL = "qwen-plus-2025-07-14"
QUESTION = "Who are you?"
NUM_REQUESTS = 10

client = AsyncOpenAI(
  api_key=API_KEY,
  base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)

async def send_request(model):
  try:
    await client.chat.completions.create(
      model=model,
      messages=[{"role": "user", "content": QUESTION}]
    )
    return True
  except APIStatusError as e:
    if e.status_code == 429:
      print(f"[触发速率限制] 模型 {model}")
      return False
    raise
  except Exception as e:
    print(f"[请求失败] 模型 {model},错误:{e}")
    return False

async def task(i):
  if await send_request(MODEL):
    return True
  return await send_request(BACKUP_MODEL)

async def main():
  results = await asyncio.gather(*(task(i) for i in range(NUM_REQUESTS)))
  print(f"成功:{sum(results)},失败:{len(results) - sum(results)}")

if __name__ == "__main__":
  asyncio.run(main())

拆分大任务

长对话或大文档会快速消耗大量 Token。将大批量任务拆分为小批次,分时提交,以控制在 TPM 限制内。

选择高配额模型

稳定版或最新版模型通常比旧版快照有更高的速率限制。建议尽量使用模型的最新版本。

使用批量推理

如果不需要实时结果,可以使用 Batch API。批量任务不受实时速率限制,但可能存在排队和处理延迟。