速率限制
OfoxAI 的速率限制保障平台穩定性。了解限制規則並最佳化呼叫策略。
預設限制
OfoxAI 按量付費,所有使用者共享統一的速率策略:
| 限制項 | 額度 |
|---|---|
| RPM(請求/分鐘) | 200 |
| TPM(Token/分鐘) | 不限 |
如需更高 RPM 配額,請聯繫 OfoxAI 支援 申請調整。
Rate Limit Header
每個 API 回應都包含速率限制資訊:
x-ratelimit-limit-requests: 200
x-ratelimit-remaining-requests: 195
x-ratelimit-reset-requests: 12s| Header | 說明 |
|---|---|
x-ratelimit-limit-requests | RPM 限制值 |
x-ratelimit-remaining-requests | 剩餘請求次數 |
x-ratelimit-reset-requests | 請求限制重置時間 |
429 錯誤處理
當觸發限流時,API 回傳 429 Too Many Requests:
from openai import RateLimitError
import time
try:
response = client.chat.completions.create(...)
except RateLimitError as e:
retry_after = float(e.response.headers.get("retry-after", 1))
print(f"觸發限流,等待 {retry_after}s...")
time.sleep(retry_after)最佳化策略
1. 使用 Prompt Caching
對於重複的 system prompt,啟用快取可以減少 token 消耗:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
# 較長的 system prompt 會被自動快取
{"role": "system", "content": "你是一個專業的...(此處省略長文本)"},
{"role": "user", "content": "使用者問題"}
]
)詳見 提示快取。
2. 批次處理
將多個短請求合併為一個請求:
# ❌ 不推薦:為每個問題傳送獨立請求
for question in questions:
client.chat.completions.create(messages=[{"role": "user", "content": question}])
# ✅ 推薦:合併為一個請求
combined = "\n".join(f"{i+1}. {q}" for i, q in enumerate(questions))
client.chat.completions.create(
messages=[{"role": "user", "content": f"請依次回答以下問題:\n{combined}"}]
)3. 選擇合適的模型
| 場景 | 推薦模型 | 理由 |
|---|---|---|
| 簡單對話 | openai/gpt-4o-mini | 快速、省 token |
| 複雜推理 | openai/gpt-4o | 高品質輸出 |
| 程式碼生成 | anthropic/claude-sonnet-4.5 | 程式碼能力強 |
| 長文本處理 | google/gemini-3-flash-preview | 大上下文、高性價比 |
4. 控制 max_tokens
設定合理的 max_tokens 限制,避免不必要的 token 消耗:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "user", "content": "一句話總結"}],
max_tokens=100 # 限制輸出長度
)5. 使用模型回退
當主模型達到限制時,自動切換到備選模型:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[...],
extra_body={
"provider": {
"fallback": ["anthropic/claude-sonnet-4.5", "google/gemini-3-flash-preview"]
}
}
)詳見 故障回退。
Last updated on