主题
正常使用永远碰不到这些上限。它们存在的意义是拦住意外的洪泛,比如没有延时的重试循环;限制的是每秒请求数,而不是并行跑多少活。逐任务的限额见文件与请求限制;各套餐能同时跑多少任务见套餐。
| 端点 | 限额 | 作用范围 |
|---|---|---|
创建 Parse 任务,POST /api/v2/parse 与 POST /api/v1/parsing/upload | 每 10 秒 500 次请求,两条路径分别计数 | 组织 |
上传文件,POST /api/v1/beta/files | 每秒 50 次 | project |
| 创建 Classify 与 Split 任务 | 每秒 40 次 | 组织 |
| 取单个任务(Parse、Extract、Classify、Split) | 每秒 80 次 | 组织 |
| 列出任务(Parse、Extract、Classify) | 每秒 5 次 | 组织 |
| 其余所有路径 | 每秒 80 次读或 40 次写 | 组织 |
各套餐的限额都相同,且按组织计数:再多建 API key 或 project 也不会提高限额。Enterprise 客户可以使用定制限额。
429 响应
超出限额的请求会被拒绝并返回 429 Too Many Requests,响应体形如:
{ "detail": "Rate limit exceeded. The file upload limit is 50 requests per second." }该响应不带 Retry-After 头。稍等片刻再重试即可;见退避。
另有三种情况也会返回 429,但它们不是速率限制:
- 套餐对象数达到上限。
"You've already reached the maximum number of projects...",索引、用户、数据源与抽取智能体同理。请删除不再使用的资源或升级。 - 同时运行的 Extract 任务过多。
"Resources exhausted. Please wait for existing jobs to complete."等在运行的任务结束后重试。 - 短时间内连续调用索引同步。 已有同步在跑时再次调用返回的是
409 Conflict。请等待后重试。
退避
官方 SDK 会对 429 与 5xx 响应自行做指数退避重试。Python 客户端默认最多重试五次(合计六次尝试),若 429 持续出现则抛出 RateLimitError:
from llama_cloud import LlamaCloud
client = LlamaCloud(max_retries=8) # reads LLAMA_CLOUD_API_KEY from the environment对于直连 API 的代码,请把提交动作包进一个带抖动的退避循环。示例上传的是美国财政部 FY2024 财报摘要:
终端窗口
curl -fL -o report.pdf https://fiscal.treasury.gov/system/files/files/reports-statements/financial-report/2024/executive-summary-2024.pdfimport random
import time
from llama_cloud import LlamaCloud, RateLimitError
client = LlamaCloud()
def with_backoff(call, attempts=6, base=1.0, cap=60.0):
"""Retry `call` on 429 with exponential backoff and full jitter."""
for attempt in range(attempts):
try:
return call()
except RateLimitError:
if attempt == attempts - 1:
raise
time.sleep(random.uniform(0, min(cap, base * 2**attempt)))
file = with_backoff(lambda: client.files.create(file="report.pdf", purpose="parse"))
job = with_backoff(lambda: client.parsing.parse(
file_id=file.id, tier="cost_effective", version="latest", expand=["markdown"]
))按此设计
- 批量提交。 大量文件用一个批次 就能替代上千次逐个创建任务的请求。
- 别在紧密循环里轮询。 取单个任务在全组织范围内限每秒 80 次、列出任务限每秒 5 次。请用 SDK 的
wait_for_completion()或 webhook 让平台告诉你任务何时结束,列举任务时请分页而不是一次次重列。 - 把上传摊开在时间上。 Parse 的限制是 10 秒窗口,所以突发 500 次再停一下没问题;持续每秒 60 次则不行。
还需要更高限额,请发邮件到 support@runllama.ai,写清你的组织、目标端点、需要的请求速率以及要持续多久。Enterprise 客户通过自己的客户经理走。