基礎 URL 與驗證
Unrestricted AI API 託管於 https://api.unrestrictedai.top/v1。它遵循 OpenAI 聊天補全的結構,意味著你只需更新 base_url 並提供 API 金鑰,即可使用現有的 OpenAI SDK。每個帳戶只需一個有效金鑰,即可立即存取無審查模型。驗證透過 Authorization 標頭使用 Bearer 方案處理。請妥善保管金鑰,因為它控制你的預付額度使用。與訂閱服務不同,你僅為處理的 token 付費,錯誤與拒絕不計費。
你的第一個請求
發送標準聊天補全請求以測試連線。模型 ID 始終為 uncensored。此端點接受文字輸入並返回文字輸出,上下文視窗最多支援 100,000 個 token。若未指定 max_tokens,API 預設輸出 2,048 個 token。此簡單的 POST 請求展示了核心功能:發送提示詞並接收無審查的生成回應。
Python SDK 整合
使用官方 OpenAI Python 函式庫是最快的整合方式。將客戶端指向基礎 URL 並傳入金鑰。下方程式碼顯示基本的同步請求。此方法自動處理 JSON 解析,讓你能直接在 Python 變數中存取回應內容。它非常適合後端服務或批次處理,在程式碼簡潔性比串流延遲更重要的情況下。
Node.js SDK 整合
對於 JavaScript 環境,請將 OpenAI Node.js 客戶端設定為指向我們的端點。Node.js 的異步特性與 API 的回應時間非常契合。正確設定基礎 URL,SDK 將處理請求格式。請注意,此 API 不支援圖片、音訊或嵌入端點,因此請專注於文字補全。此方法適合網頁伺服器或邊緣函式,你需要將無審查 LLM 回應注入動態內容。
串流回應
在請求中設定 stream: true 以啟用串流。API 透過伺服器發送事件 (SSE) 返回數據,讓你即時接收 token。token 用量與計費指標包含在串流的最後一個區塊中。這降低了最終使用者的感知延遲,特別是在輸出較長的情況下。建議用於聊天介面,即時文字渲染能提升使用者體驗。請監控最後一個區塊的總 token 數,以準確追蹤預付額度。
限制、錯誤與上下文
每個 API 金鑰限制為每分鐘 300 個請求與 8 個並行請求。請求主體不得超過 8 MB。常見錯誤包括 401(金鑰無效)、402(預付額度耗盡)以及 429(速率限制)。上下文視窗總共支援 100,000 個 token,包含提示詞與補全。若超過這些限制,請實作指數退避。額度永不過期,重複扣款等錯誤可透過支援頁面處理,確保你保留預付價值。
cURL
curl https://api.unrestrictedai.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.unrestrictedai.top/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.unrestrictedai.top/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)