安裝與設定
先建立帳戶以接收您的 API 金鑰。使用 Google 帳戶或電子郵件和密碼組合註冊。系統會立即在螢幕上顯示您的唯一金鑰。此步驟不需要手機號碼驗證。您可以隨時產生新的金鑰,但每個帳戶只有一個有效的金鑰。新金鑰會立即取代先前的金鑰。請妥善保管此金鑰,因為它授予您預付額度的存取權。使用這些憑證與任何標準的 OpenAI 相容 SDK 開始整合。
基礎設定
將您的客戶端指向我們的專用基礎 URL 以發送無審查請求。使用標準 BASE_URL 參數以正確路由流量。端點結構與 OpenAI 的慣例一致,便於切換。您必須在 Authorization header。將模型 ID 設定為 uncensored 在您的配置物件中。這確保請求指向正確的 uncensored 大型語言模型。透過列出可用模型來驗證您的連線,方法是使用 /v1/models 端點。這在發送大量負載之前確認您的身份驗證有效。
傳送請求
向聊天完成端點發送標準 POST 請求。您的載入量(payload)必須包含 model field set to uncensored。將您的訊息以陣列形式傳入 messages 金鑰。系統接受標準的角色定義,例如 user 和 assistant. 輸入 token 以每百萬 token $0.15 的透明費率計費。輸出 token 每百萬 token 成本為 $0.50。錯誤不會消耗您的預付餘額。此計費模式確保您只為實際生成的文字付費。使用以下 cURL 命令發送您的第一則訊息。
串流回應
在請求主體中將 stream 在請求中設為 true。伺服器會傳回伺服器發送事件(SSE)串流。每個區塊包含部分已生成的文字。最後一個區塊包含完整的 token 使用統計數據。這讓你能夠即時向使用者顯示文字。串流在所有支援的 SDK 中運作方式相同。確保你的客戶端能正確處理部分文字緩衝區。此方法適用於長篇內容生成或互動式聊天介面。以下範例示範如何在 Python 中處理串流。
函式呼叫
使用 tools 參數。模型會在適當時傳回結構化的工具呼叫。您可以指定 tool_choice 以強制執行特定行為。將工具回應傳回模型以進行進一步處理。這支援需要外部 API 互動的複雜工作流程。模型會在需要時自動處理 JSON 格式。確保您的函式定義符合預期的 schema。此功能與標準的 temperature 和 top-p 設定並存。使用 Node.js 高效地實作工具處理。
JSON 模式與限制
請求透過設定 response_format 以 {"type": "json_object"}. 模型保證回應中的 JSON 結構有效。這非常適合在應用程式邏輯中解析數據。請注意 100,000 個 token 的上下文視窗限制。這涵蓋了提示和完成內容的總和。每次請求的最大輸出為 16,000 個 token。如果您未指定 max_tokens, 限制預設為 2,048。每個金鑰每分鐘限制為 300 次請求。併發請求限制為同時八個。請求主體不得超過 8 MB。如以下串流示例所示,優雅地處理錯誤。
cURL
curl https://api.modelsuncensoredopenrouter.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list three json keys"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.modelsuncensoredopenrouter.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.modelsuncensoredopenrouter.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)