API でフィルターなし AI チャットボットを構築
フィルタなしAIチャットボットは、モデルが拒否するのではなく合法な成人向けリクエストに回答するチャットアプリです。Nodeで約40行、またはSillyTavernのようなフロントエンドでコードゼロで構築できます。このガイドではメモリ、コスト、制限についても解説します。
更新日:

「フィルタなし」が意味しうることと意味しえないこと
フィルタなしチャットボットを求める検索者は通常、1つのことを意味します。つまり、トピックが合法でユーザーが成人の場合、会話に警告、道徳説教、または拒否を挿入しないチャットボットを求めているのです。これはフィクション、コンパニオンアプリ、ダークユーモア、ディベート練習、率直なアドバイス会話にとって理にかなった要望です。
このAPIのモデルは、独立したプロバイダが運用し、合法な成人利用においてコンテンツ拒否なしで回答するように調整された1つのオープンウェイトモデルです。Meta、Mistral、Qwen、DeepSeek、OpenAI、xAI、Google、Anthropicの公式APIではありません。プロンプトで変更できない1つの厳格な制限があります:未成年者を含む性的コンテンツは禁止です。アプリを構築するあなたにも、モデルがあなたのために負うことのできない義務があります。例えば、ユーザーが成人であることを確認し、事業を行う地域の法律に従うことです。
このガイドの残りの部分では、「フィルタなし」を意図的な設計選択として扱います。チャットボットはシステムプロンプトとユーザーの指示に従うため、ボットの品質は主にプロンプトと周囲のコードに依存します。
パスの選択:コードありまたはコードなし
| パス | 最適な用途 | 時間 |
|---|---|---|
| カスタムエンドポイント付きフロントエンド(SillyTavernまたは類似) | 個人利用、キャラクターチャット、プロンプトの迅速な試行 | 5 分 |
| OpenAI SDK 付きの小さなスクリプト | 学習、コマンドラインボット、Discord または Telegram ボット | 20 分 |
| 独自のバックエンドと Web UI | 他の人が使用する製品 | 週末以上 |
3つのパスすべてに同じ要素が必要です:キー、Base URL、モデルIDです。Googleまたはメールアドレスとパスワードでサインインすると、API キーページでキーを取得できます。新規ユーザーはワンクリックで7日間有効、支払い不要の$0.50の無料トライアルクレジットを請求できます。その後のチャージは暗号資産のみ: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に配置されたキーは、開発者ツールを開く誰でも読み取ることができ、あなたのクレジットもそれとともに失われます。ドキュメントには、エンドポイントが受け付けるすべてのパラメータが記載されています。
ボットに一貫したペルソナを与える
無検閲モデルでも方向性が必要です。これがないと、モデルは平坦で中立な声で回答します。チャットボット用の優れたシステムプロンプトには 5 つの短いパートが必要です。
- アイデンティティ。 名前、役割、定義的な特徴を1〜2つ。
- 口調。 文の長さ、語彙、ユーモア、フォーマルさ。例文を1つ与えてください。
- あなたが選択する境界線。 このキャラクターが避けるトピック(もしあれば)。これらはあなたの製品判断です。
- フォーマット。 返信の長さ、リストの使用有無、一人称の維持有無。
- 事実。 ボットがユーザーまたは世界について記憶する必要があること。
400語程度に抑えてください。長いプロンプトはより強力なプロンプトではなく、あなたはそれに対してリクエストごとに課金されます。それは入力の一部として毎回含まれるためです。1M入力トークンあたり$0.15で、600トークンのシステムプロンプトは1回呼び出しあたり$0.00009のコストがかかります。これは1チャットでは小さく、100,000回の呼び出しでは$9と目立つ金額になります。
サンプリングも重要です。温度は0.7〜0.9が会話に適しています。パラメータ top_p、stop、seed および頻度ペナルティと存在ペナルティはすべてモデルに渡されるため、トリックなしで反復を調整できます。
SillyTavern を使ったコードなしのルート
SillyTavern はキャラクター会話に人気のある無料の自己ホスト型チャットフロントエンドで、OpenAI 互換のエンドポイントを追加できます。API 接続パネルを開き、チャット完了タイプを選択し、カスタムまたは OpenAI 互換のソースを選択します。以下を入力:
- エンドポイントまたはベース URL:
https://api.nofilterapi.com/v1 - API キー:アカウントのキー
- モデル:
uncensored
メニューのラベルはバージョンによって異なるため、これら3つの値を使用し、お使いのバージョンのプロンプトに従ってください。接続後、キャラクターを作成またはインポートし、その説明にペルソナを書き込み、会話を開始してください。他のコミュニティフロントエンドにも同様のオプションがあり、通常は「カスタムOpenAIエンドポイント」や「プロキシ」と表記されています。
ルートを選択する前にこのサービスがデータをどのように扱うか理解したい場合は、No Log AI API:よくある誤解と事実をお読みください。私たちの側の1つの事実はシンプルです。プロンプトはトレーニングには使用されません。
メモリ:100,000 トークンのコンテキストウィンドウとそれへの対処法
コンテキストウィンドウは100,000トークンで、プロンプトと補完を合わせてカバーします。これは非常に長い会話に十分ですが、履歴を再送信するコストはそれとともに増大します。10,000トークンの履歴と300トークンの返信を含むターンは、10,000 x $0.15 / 1M および 300 x $0.50 / 1M のコストがかかり、$0.0015 と $0.00015、つまり$0.00165となります。$0.50のトライアルクレジットは、そのようなターン約303回をカバーします。
実用的なメモリ設計は 2 層を使用します。最後の 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入力トークンあたり$0.15、1M出力トークンあたり$0.50です。$20〜$500の任意の整数額をチャージでき、$50からは+5%ボーナス、$100からは+10%ボーナス、$200からは+15%ボーナスが得られます。クレジットは期限切れにならず、失敗または拒否されたリクエストはチャージされません。価格ページに完全な情報が記載されています。
200人のユーザーがいて、それぞれが1日30メッセージを送信するボットの場合、上記の$0.00165/ターンで計算すると、1日6,000回の呼び出しで約$9.90の費用がかかります。入力側が支配的であるため、会話履歴が短いほどこの費用はすぐに抑えられます。
ボットが成長したら、制限を尊重してください。フルキーは同時リクエスト8件と1分あたり300リクエストを許可します。それを超えると、APIはコード rate_limited または concurrency を伴うHTTP 429を返します。一時的な過負荷時には Retry-After: 5 を伴う429を返します。OpenAI SDKはデフォルトで429レスポンスをリトライしますが、maxRetries クライアントオプションで回数を増やすことができます。ストリーミングされた返信は終了まで同時実行数の枠を保持するため、バーストが予想される場合はキーごとにメッセージをキューに入れます。
独自のコードにユーザーごとの日次上限を追加してください。これは、おしゃべりなユーザーやスクリプトからクレジットを保護し、実装には10行ほどで済みます。
その他のガイド
質問と回答
無検閲チャットボットの実行は合法ですか?
モデルは合法な成人向けリクエストに対してコンテンツ拒否なしで応答しますが、アプリ、ユーザー、および事業を行う地域の法律についてはあなたが責任を負います。未成年者を含む性的コンテンツは常に禁止されています。
使用するためにコードを書く必要がありますか?
いいえ。SillyTavernのようなフロントエンドはOpenAI互換エンドポイントを受け入れます。Base URL https://api.nofilterapi.com/v1、キー、およびモデルID uncensored を入力してください。
クレジットのお支払い方法は?
暗号資産で$20〜$500の任意の整数額をチャージ:TRC20上のUSDTまたはBase上のUSDC。新規ユーザーはまず$0.50の無料トライアルクレジットを試すことができます。
チャット履歴はトレーニングに使用されますか?
いいえ。プロンプトはトレーニングには使用されません。APIはステートレスなので、アプリ側で会話履歴を保存し、各ターンで再送信する必要があります。