Uncensored AI API — 參考文件

一個相容 OpenAI 的端點、一個模型、一個金鑰。如果你的程式碼已經在跟 /v1/chat/completions 溝通,只要換掉基礎 URL 和金鑰,它就會跟我們溝通。

基礎 URL 與驗證

Base URL:  https://api.uncensoredaichat.ai/v1
Header:    Authorization: Bearer sk-…

金鑰在 金鑰頁面 建立。金鑰只會在建立時顯示一次;我們只保存它的雜湊值和最後六個字元。只能透過 HTTPS 傳送,且只能放在 Authorization 標頭中——絕對不要放在 URL 裡。

所有內容都是 JSON(Content-Type: application/json)。回應使用 OpenAI 的 schema,因此官方 openai SDK 以及任何相容 OpenAI 的客戶端都能不經修改直接使用。

模型

GET /v1/models

{ "object": "list",
  "data": [ { "id": "notrack-uncensored", "object": "model", "owned_by": "notrack" } ] }

只有一個模型,notrack-uncensored:我們自己的模型,運行在我們自己的 GPU 伺服器上。無論你在 model 傳入什麼,都會被導向這個模型;請使用公開 id,讓你的日誌與我們的日誌對得上。

Chat completions

POST /v1/chat/completions

{
  "model": "notrack-uncensored",
  "messages": [
    { "role": "system",    "content": "You are Mira, a wry bartender in 1920s Berlin." },
    { "role": "user",      "content": "Evening. What's good tonight?" }
  ],
  "max_tokens": 400,
  "temperature": 0.9
}

回應——標準格式,usage 中包含真實的 token 數量(這就是你被計費的依據):

{
  "id": "chatcmpl-…", "object": "chat.completion", "model": "notrack-uncensored",
  "choices": [ { "index": 0, "finish_reason": "stop",
                 "message": { "role": "assistant", "content": "…" } } ],
  "usage": { "prompt_tokens": 41, "completion_tokens": 118, "total_tokens": 159 }
}

你的系統提示詞掌控整段對話。 我們只在最前面加上一行——模型的身分說明(它是 notrack-uncensored,由 Uncensored AI 製作)——僅此而已:沒有規則,沒有主題過濾器。你的系統訊息接在它後面,決定人格設定、風格和其他一切。唯一的例外在 內容政策 中。

串流

設定 "stream": true,然後按照 OpenAI 的方式讀取 server-sent events。最後一個片段會帶有 usage(不論你是否要求 stream_options,我們都會一律附上),接著是 data: [DONE]。

data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Ev"}}]}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"ening"}}]}
…
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","choices":[],"usage":{"prompt_tokens":41,"completion_tokens":118,"total_tokens":159}}
data: [DONE]

參數

欄位說明
messages必填。system、user、assistant 角色。目前僅支援文字——圖片部分會被拒絕。
model使用 notrack-uncensored。
streamSSE 用 true。stream_options.include_usage 一律開啟。
max_tokenscompletion 的上限。prompt + completion 必須符合 100,000 token 的視窗大小。
temperature, top_p, stop, presence_penalty, frequency_penalty, seed, n以 OpenAI 的方式傳給模型。如果你沒有傳送 temperature,我們預設使用 0.85,與我們的聊天產品一致。n > 1 會讓輸出成本倍增。
tools, tool_choice支援:auto、none、required,或指定名稱的函式。回覆中會帶有 tool_calls 與 finish_reason: "tool_calls";把結果以 role: "tool" 訊息傳回。有 tools 存在時,串流回覆會以每次呼叫一個片段的方式送達,而不是逐個 token。
response_format支援 {"type": "json_object"}(在提示詞中說明你想要的 JSON 格式)。不支援 json_schema 以及舊版的 functions 欄位。

限制與回應標頭

限制項目數值超出時
每個金鑰的同時請求數8429 concurrency
每個金鑰每分鐘的請求數300429 rate_limit
上下文視窗(prompt + completion)100,000 token400 context_limit — 刪減歷史紀錄後重試
每個金鑰的每日花費上限(選用)由你在金鑰頁面設定402 key_daily_cap 到 00:00 UTC 為止

試用金鑰(首次儲值前):同時請求 — 2,每分鐘請求 — 60。首次儲值後,金鑰享有完整額度:8 和 300。

每個成功的回應都會帶有:

標頭意義
X-Request-Id聯絡客服時請引用它;這是我們對一次請求唯一保留的資訊。
X-NoTrack-Balance-USD本次請求扣款之前後你的餘額,單位為美元。
X-RateLimit-Limit-Requests該金鑰每分鐘允許的請求數。
X-RateLimit-Limit-Concurrency該金鑰允許的同時請求數。
X-NoTrack-Content-Flag只在內容被拒絕時出現:minor_in_sexual_context 或 child_safety。

錯誤

錯誤是帶有穩定 type 的 JSON;message 是給人看的,可能會變動。

{ "error": { "type": "no_credit", "message": "no credit left on this account — top up at uncensoredaichat.ai/api-keys" } }
HTTPtype處理方式
400bodyJSON 無效或缺少 messages。
400context_limit提示詞超出 100,000 token 的視窗長度。移除較舊的對話回合。
400content_policy + X-NoTrack-Content-Flag: minor_in_sexual_context這個場景讀起來帶有性意味,且某個角色讀起來像未成年人。請將角色明確無疑地設定為成年人後重新傳送;此次不計費。
401auth, invalid_key, key_revoked, key_expired修正或更換金鑰。
402no_credit餘額為零。儲值;儲值後請求會立即恢復。
402key_daily_cap該金鑰已達到你設定的每日上限。請提高上限或等到 00:00 UTC。
403content_policy + X-NoTrack-Content-Flag: child_safety已拒絕且未計費。請參閱 內容政策。
429rate_limit, concurrency請放慢速度並重試;請遵守兩個 X-RateLimit-* 標頭。
502upstream模型沒有回應。請以退避方式重試;此次不計費。
503billing, safety我們的一個相依服務發生故障。請幾秒後重試;此次不計費。

計費

預付額度,依每個回應的真實 usage 逐 token 計費:每 100 萬輸入 token $0.25,每 100 萬輸出 token $1.00。輸入指你傳送的所有內容(系統提示詞、歷史紀錄、新訊息);輸出指模型寫出的內容。

人格設定——純淨模型或 Uncensored AI 的角色

每個金鑰都有一種風格,可在金鑰頁面選擇,並可隨時切換:

一次請求可以覆寫該金鑰的設定,可以透過一個欄位,也可以透過模型名稱後綴(適用於只能設定模型名稱的客戶端):

{ "model": "notrack-uncensored", "notrack": { "persona": "notrack" }, "messages": [ … ] }

{ "model": "notrack-uncensored:notrack", "messages": [ … ] }      // same thing, by model name
{ "model": "notrack-uncensored:bare",    "messages": [ … ] }      // force the bare model on a persona key

人格設定名稱:notrack(純粹角色)、concise、detailed、creative(與聊天產品提供的相同版本)、bare。回應標頭 X-NoTrack-Persona 會標明實際套用的是哪一個。

內容政策

我們不會加入任何系統提示詞,也不會執行任何主題過濾器。成人虛構內容、黑暗主題、粗俗語言、虛構中的暴力——模型會按寫出的內容作答。有一條規則寫死在程式碼中且無法關閉:任何涉及未成年人的性內容都會被拒絕。

同一金鑰反覆出現 403 會導致該金鑰、接著帳戶被關閉。完整文字在 可接受使用政策 中。

隱私

提示詞和 completion 都不會寫入硬碟——無論是閘道還是模型伺服器都不會。我們針對每次請求保留的資訊只有請求 id、金鑰 id、token 數量和價格,因為這些就是帳單所需的資訊。安全性拒絕會依類別記錄,不含文字內容。沒有任何第三方模型供應商能看到你的流量:模型運行在我們自己的 GPU 伺服器上。

客戶端與 SDK

Uncensored AI 網站和 Uncensored AI 應用程式是我們自己的聊天產品——它們沒有 API 金鑰輸入欄位,也永遠不會有。金鑰是給 其他 程式使用的:把它貼到下面任一個客戶端,或貼到你自己的程式碼裡。

Python

from openai import OpenAI
client = OpenAI(base_url="https://api.uncensoredaichat.ai/v1", api_key="sk-…")
stream = client.chat.completions.create(model="notrack-uncensored",
    messages=[{"role": "user", "content": "Hello"}], stream=True)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Node.js

import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.uncensoredaichat.ai/v1", apiKey: process.env.API_KEY });
const r = await client.chat.completions.create({ model: "notrack-uncensored",
  messages: [{ role: "user", content: "Hello" }] });
console.log(r.choices[0].message.content);

SillyTavern

API Connections → API:Chat Completion → Source:Custom (OpenAI-compatible) → Custom Endpoint https://api.uncensoredaichat.ai/v1 → Custom API Key → Connect → Model notrack-uncensored。開啟 Streaming。將上下文大小保持在 100,000 token 以內。

Chatbox

Settings → Model Provider → Add → Add Custom Provider,模式 OpenAI API Compatible → 貼上基礎 URL 和金鑰,然後將 notrack-uncensored 加為模型。

NextChat

Settings → 開啟 Custom Endpoint(相容 OpenAI)→ 基礎 URL 和金鑰,然後在模型欄位輸入模型名稱。

Cherry Studio

Settings → Model Providers → Add Provider → 輸入 OpenAI → 基礎 URL 和金鑰,然後按「Add model」→ notrack-uncensored。

LobeChat

Settings → AI Service Provider → OpenAI → 啟用 custom API endpoint,貼上基礎 URL 和金鑰,並把該模型加入模型清單。

其他情況

LangChain、LlamaIndex、Open WebUI、Continue、JanitorAI 的代理設定、curl——任何帶有「OpenAI-compatible」或「custom base URL」選項的客戶端。

上面的選單文字在不同應用程式版本之間會有變化——如果某個標籤不完全吻合,就去找提到「custom」、「OpenAI-compatible」或「base URL」的設定項目。

如果某個客戶端連不上

金鑰

如有疑問或需要查詢某個請求 id:客服 · uncensoredaichat.ai/support。