使用 API 建構無審查 AI 聊天機器人
無審查 AI 聊天機器人是一種聊天應用程式,其模型會回答合法的成人請求而非拒絕。你可以用約四十行 Node 程式碼建構,或使用 SillyTavern 等前端以零程式碼建構,本指南涵蓋這兩種方式以及記憶、成本與限制。
更新於

「無審查」能代表什麼,不能代表什麼
想要無審查聊天機器人的搜尋者通常只有一個意思:他們想要一個不會在合法主題且使用者為成人時,用警告、說教或拒絕來打斷對話的聊天機器人。對於小說、伴侶應用程式、黑色幽默、辯論練習和坦率的建議對話來說,這是合理的期望。
此 API 上的模型是一個開放權重模型,由獨立供應商運行,並經過調整以在不拒絕內容的情況下回答合法的成人用途。它不是 Meta、Mistral、Qwen、DeepSeek、OpenAI、xAI、Google 或 Anthropic 的官方 API。有一個無法透過提示詞改變的硬性限制:禁止涉及未成年人的性內容。作為應用程式的建構者,你也承擔了模型無法為你承擔的責任,例如確認使用者是否為成年人,以及遵循你所營運地區的適用法律。
本指南其餘部分將「無審查」視為你刻意做出的設計選擇。你的聊天機器人會執行系統提示詞與使用者要求的事項,因此機器人的品質主要取決於提示詞與周圍的程式碼。
選擇你的路徑:寫程式或無程式碼
| 路徑 | 適用對象 | 時間 |
|---|---|---|
| 具有自訂端點的前端(SillyTavern 或類似工具) | 個人使用、角色聊天、快速嘗試提示詞 | 5 分鐘 |
| 使用 OpenAI SDK 的小型腳本 | 學習、命令列機器人、Discord 或 Telegram 機器人 | 20 分鐘 |
| 你自己的後端與網頁 UI | 供他人使用的產品 | 一個週末或更久 |
所有三個路徑都需要相同的要素:金鑰、Base URL 與模型 ID。在透過 Google 或電子郵件與密碼註冊後,你可以在 API 金鑰頁面取得金鑰。新使用者可以一鍵領取 $0.50 的免費試用額度,有效期為 7 天,無需付款。後續的儲值僅限加密貨幣:TRC20 上的 USDT 或 Base 上的 USDC。
用 Node 建構可運作的聊天機器人
安裝官方 OpenAI 套件,將金鑰設為環境變數,並將此程式碼儲存為 bot.mjs。.mjs 副檔名讓你可以使用 import 而無需額外設定。
# base URL https://api.nofilterapi.com/v1, model uncensored
npm install openai
export NOFILTER_API_KEY="YOUR_API_KEY"
node bot.mjs
import OpenAI from "openai";
import readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";
const client = new OpenAI({
baseURL: "https://api.nofilterapi.com/v1",
apiKey: process.env.NOFILTER_API_KEY,
});
const history = [
{
role: "system",
content:
"You are Dex, a blunt, funny late-night radio host. Speak plainly, " +
"keep replies under 120 words, and never lecture. All users are adults.",
},
];
const rl = readline.createInterface({ input, output });
while (true) {
const text = await rl.question("you> ");
if (text.trim() === "") break;
history.push({ role: "user", content: text });
const stream = await client.chat.completions.create({
model: "uncensored",
messages: history,
temperature: 0.8,
max_tokens: 400,
stream: true,
});
let reply = "";
process.stdout.write("dex> ");
for await (const chunk of stream) {
const piece = chunk.choices[0]?.delta?.content ?? "";
reply += piece;
process.stdout.write(piece);
}
process.stdout.write("\n");
history.push({ role: "assistant", content: reply });
}
rl.close();
這就是整個機器人。history 陣列是對話記憶,因為 API 本身在呼叫之間不會保留任何資料。每個回合都會傳送整個陣列,因此模型可以看到之前發生的所有事情。串流輸出會在生成時列印回覆,而用量數字會在串流結束時到達。
如果你想將此程式放在網頁後方,請將金鑰保留在你的伺服器上。建構一個小型端點來接收使用者的訊息,將其新增到該使用者的歷史記錄中,呼叫 API 並返回回覆。放在瀏覽器 JavaScript 中的金鑰會被任何開啟開發者工具的人讀取,你的額度也會隨之流失。文件列出了端點接受的所有參數。
賦予機器人能維持的角色
無審查模型仍然需要指引。沒有指引時,它們會以平淡、中立的語氣回答。聊天機器人的良好系統提示詞包含五個短部分:
- 身分。 名稱、角色、一到兩個定義特徵。
- 語氣。 句子長度、詞彙、幽默、正式程度。提供一個範例行。
- 你選擇的界限。 該角色避免的主題(如果有)。這些是你的產品決策。
- 格式。 回覆長度、是否使用列表、是否保持第一人稱。
- 事實。 機器人必須記住的使用者或世界相關資訊。
將其保持在約 400 字以內。長提示詞不等於更強的提示詞,而且你每次請求都要為它付費,因為它是每次輸入的一部分。每 1M 輸入 token 的成本為 $0.15,600 token 的系統提示詞每次呼叫成本為 $0.00009,這對單一聊天來說很小,但在 100,000 次呼叫時會變得顯著:$9。
採樣也很重要。溫度設在 0.7 到 0.9 之間適合對話。參數 top_p、stop、seed 以及頻率與存在懲罰都會直接傳遞給模型,因此你可以調整重複率而無需技巧。
使用 SillyTavern 的無程式碼路徑
SillyTavern 是一個免費的自託管聊天前端,在角色對話中很受歡迎,它允許你新增 OpenAI 相容的端點。開啟 API 連線面板,選擇聊天完成類型,然後選擇自訂或 OpenAI 相容的來源。輸入:
- 端點或 Base URL:
https://api.nofilterapi.com/v1 - API 金鑰:你帳戶中的金鑰
- 模型:
uncensored
選單標籤在不同版本間有所不同,因此請使用這三個值並遵循你版本自己的提示詞。連線後,建立或匯入角色,在其描述中撰寫角色設定,然後開始對話。其他社群前端也有類似選項,通常標示為自訂 OpenAI 端點或代理。
如果你想在使用服務前先了解我們如何處理你的資料,請閱讀 No Log AI API:迷思與事實。我們的一項基本事實很簡單:提示詞不會用於訓練。
記憶:100,000 token 的上下文視窗及應對方法
上下文視窗為 100,000 token,涵蓋提示詞與補全的總和。這足以應付非常長的對話,但重送歷史記錄的成本會隨之增加。一次包含 10,000 token 歷史記錄與 300 token 回覆的請求,費用為 10,000 x $0.15 / 1M 加上 300 x $0.50 / 1M,即 $0.0015 加上 $0.00015,總計 $0.00165。$0.50 免費試用額度可支付約 303 次此類請求。
實用的記憶設計使用兩層。保留最後 15 到 20 則訊息的原文,並在系統提示詞中保留一份長期事實的簡短列表。你可以讓模型使用 JSON 模式來維護該列表,這會將輸出限制為有效的 JSON:
curl https://api.nofilterapi.com/v1/chat/completions \
-H "Authorization: Bearer $NOFILTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Extract durable facts about the user from the chat. Reply as JSON: {\"facts\": [string]}."},
{"role": "user", "content": "User: I work night shifts at a bakery and my cat is called Biscuit."}
]
}'
每 10 或 20 個回合對最新訊息執行此操作,將新事實合併到你的儲存列表中,並將列表放入系統提示詞。模型的任務保持輕量,而你的機器人似乎能記住數個月的對話。
費用、限制與公開
價格為每 1M 輸入 token $0.15,每 1M 輸出 token $0.50,從預付額度扣除,無訂閱制。你可以儲值 $20 至 $500 之間的整數金額,$50 起享 +5% 贈額,$100 起享 +10%,$200 起享 +15%。額度永不過期,失敗或被拒絕的請求不會扣款。定價頁面有完整資訊。
一個擁有 200 名使用者的機器人,每人每天發送 30 則訊息,以每回合 $0.00165 的價格計算,每天會產生 6,000 次請求並花費約 $9.90。較短的歷史記錄會迅速降低費用,因為輸入端佔據了大部分成本。
當機器人規模擴大時,請遵守限制。完整金鑰允許 8 個並行請求與每分鐘 300 個請求。超出限制時,API 會回傳 HTTP 429 狀態碼,並附上錯誤碼 rate_limited 或 concurrency;在暫時過載時則回傳 429 狀態碼並帶有 Retry-After: 5 標頭。OpenAI SDK 預設會重試 429 回應,你可以透過 maxRetries 客戶端選項提高重試次數。串流輸出會佔用其並行槽位直到結束,因此若預期流量尖峰,請針對每個金鑰對傳入訊息進行佇列處理。
在你的程式碼中加入每使用者的每日上限。這能保護你的額度不被單一話多的使用者或腳本耗盡,且只需額外寫十行程式碼。
更多指南
問答
運行無審查的聊天機器人合法嗎?
模型會回答合法的成人請求而不會拒絕內容,但你要為你的應用程式、使用者以及你營運所在地的法律負責。涉及未成年人的性內容永遠不被允許。
我需要寫程式碼才能使用嗎?
不需要。SillyTavern 等前端接受 OpenAI 相容的端點。輸入 Base URL https://api.nofilterapi.com/v1、你的金鑰以及模型 ID uncensored。
我該如何為額度付費?
使用加密貨幣儲值,金額從 $20 到 $500 的整數皆可:TRC20 上的 USDT 或 Base 上的 USDC。新用戶可先使用 $0.50 免費試用額度。
我的聊天記錄會被用於訓練嗎?
不會。提示詞不會用於訓練。API 是無狀態的,因此你的應用程式必須在每個回合儲存並重新傳送對話。