繁中 ▾
取得 API 金鑰

使用 API 建構無審查 AI 聊天機器人

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

更新於

等距插圖,顯示發光的聊天氣泡旁邊有一個終端機方塊,代表在開放 API 上建構聊天機器人

「無審查」能代表什麼,不能代表什麼

想要無審查聊天機器人的搜尋者通常只有一個意思:他們想要一個不會在合法主題且使用者為成人時,用警告、說教或拒絕來打斷對話的聊天機器人。對於小說、伴侶應用程式、黑色幽默、辯論練習和坦率的建議對話來說,這是合理的期望。

此 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 中的金鑰會被任何開啟開發者工具的人讀取,你的額度也會隨之流失。文件列出了端點接受的所有參數。

賦予機器人能維持的角色

無審查模型仍然需要指引。沒有指引時,它們會以平淡、中立的語氣回答。聊天機器人的良好系統提示詞包含五個短部分:

  1. 身分。 名稱、角色、一到兩個定義特徵。
  2. 語氣。 句子長度、詞彙、幽默、正式程度。提供一個範例行。
  3. 你選擇的界限。 該角色避免的主題(如果有)。這些是你的產品決策。
  4. 格式。 回覆長度、是否使用列表、是否保持第一人稱。
  5. 事實。 機器人必須記住的使用者或世界相關資訊。

將其保持在約 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 是無狀態的,因此你的應用程式必須在每個回合儲存並重新傳送對話。

只差一張表單,即可取得金鑰

建立帳號、複製金鑰、更改基礎 URL。這就是整個設定過程。