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 请求数和 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 限制。
进入业务空间页面
前往设置 > 业务空间,点击子业务空间的编辑按钮。 添加模型并设置限制
在模型权限下,点击全部模型添加模型。为每个模型设置 Times / min(RPM)和 Token / min(TPM),然后点击应用。
为业务空间设置的 RPM 和 TPM 不能超过该模型的账户级别限制。默认业务空间使用账户级别限制,无法修改。
临时提升频率限制
如果某个模型需要更高的吞吐量,可以通过账户设置申请临时提升。
申请提升
点击临时提升频率限制,选择模型,输入目标 Token Rate Limit(每 60 秒的 Token 数)。对话框会显示当前配额和上限。
请根据实际需求申请配额。长期未使用的配额可能会被缩减至默认限制。
限流提额页面还展示所有临时提升申请的历史记录,包括每次申请的提交时间、模型代码和账号 TPM 上限。
速率限制错误
触发速率限制时,API 返回 HTTP 状态码 429,错误信息会指出触发了哪种限制:
| 错误信息 | 原因 |
|---|
Requests rate limit exceeded 或 You exceeded your current requests list | 达到 RPM 限制 |
Allocated quota exceeded 或 You 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。批量任务不受实时速率限制,但可能存在排队和处理延迟。