SDK 相容性與基礎 URL 設定
透過將程式碼指向我們的專屬端點,連接您現有的客戶端程式碼。此 openai compatible API 接受標準參數如
https://api.openrouterratelimits.com/v1 是所有請求的單一入口點。驗證使用大多數現代 LLM 庫中標準的 Bearer token 機制。將您的金鑰傳送至 Authorization 標頭以驗證您的身分。此設定適用於任何預期 OpenAI 風格介面的客戶端,讓受夠了供應商鎖定(vendor lock-in)的團隊能立即遷移。
- 基礎 URL:
https://api.openrouterratelimits.com/v1 - Auth Header:
Authorization: Bearer YOUR_API_KEY - 模型 ID:
uncensored
透過 SSE 的串流回應
在請求主體中將 stream: true 在您的請求主體中。API 為即時 token 傳輸回傳伺服器發送事件(SSE)。每個區塊包含生成的文字,直到最後一個區塊包含使用統計數據。此方法即使在長上下文視窗下也能保持您的 UI 響應能力。
串流傳輸非常適合對延遲敏感的聊天介面或角色扮演情境。您無需等待完整回應即可顯示文字。最後一個資料區塊包含計費所需的 Token 數量。串流傳輸期間發生錯誤時,仍會回傳適當的 HTTP 狀態碼以便立即處理。
函式呼叫與 JSON 模式
使用結構化輸出以進行可靠的資料擷取或工具整合。啟用 response_format 與 {"type": "json_object"} 以強制符合 JSON。此模式對於解析複雜的巢狀結構且無需額外清理邏輯至關重要。函式呼叫與標準文字生成並存,以支援動態代理工作流程。
在 tools 陣列並指定 tool_choice 用於嚴格強制執行。模型會以標準的 OpenAI 格式回傳函式呼叫。此功能支援在單一輪次中進行單個或多個工具呼叫。適用於建構能可靠地與外部 API 或資料庫互動的代理程式。
管理令牌與參數
使用標準參數(如 temperature)控制生成行為。 temperature, top_p,以及 stop. 上下文視窗支援提示與補全合計最多 100,000 token。這允許在單一請求中處理廣泛的歷史上下文或大型文件。
設定 max_tokens 以限制輸出長度,若未指定則預設為 2,048。該模型處理 presence_penalty 和 frequency_penalty 用於風格控制。Token 用量根據實際的輸入和輸出計數收費。錯誤不會消耗 token,確保對失敗請求的計費公平。
了解各 API Key 的速率限制
每個 API 金鑰支援每分鐘 300 次請求,併發限制為 8 個同時請求。此限制適用於每個金鑰,因此建立多個金鑰可使您的吞吐量線性擴展。最大請求主體大小為 8 MB,適合大多數用例的上下文視窗。
速率限制會根據滑動視窗持續重置。如果您超過限制,API 將返回 429 錯誤。升級您的預付信用以維持優先存取。與共享層級不同,我們的專用伺服器不會受到鄰居干擾。監控您的使用儀表板以保持在這些界限內,以獲得一致的效能。
除錯常見錯誤
透過檢查 HTTP 狀態碼和回應主體來處理錯誤。401 錯誤表示 API 金鑰無效或缺失。如果身份驗證失敗,請從儀表板重新生成金鑰。402 錯誤表示您的預付信用額度已耗盡;透過加密貨幣充值以恢復服務。
429 錯誤表示您已超過速率限制。請降低請求頻率或將工作負載分散到多個金鑰。API 不會為這些錯誤收取 token 費用,因此您不會因重試而損失額度。確保您的客戶端庫使用指數退避機制處理重試以提高健壯性。
cURL
curl https://api.openrouterratelimits.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Process one million logs"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouterratelimits.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouterratelimits.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);串流
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)