認証
認証には、Authorizationヘッダーに渡す単一のAPIキーが必要です。このキーは、APIキーの取得ページでメールアドレスとパスワードを使用してサインアップした直後に生成されます。このキーはいつでも再生成でき、古いキーは即時無効になります。APIの初期トライアルにはクレジットカードは不要で、プロンプトはあなたのデータ学習に使用されません。キーは前払いクレジットへの直接アクセスを提供するため、安全に保管してください。
チャット完了エンドポイント
標準的なPOST /v1/chat/completionsエンドポイントを使用して、ベースURL https://api.nsfwllmrouter.com/v1にリクエストを送信します。これはテキスト専用のインターフェースであり、埋め込み、画像、音声、動画生成はサポートしていません。専用に最適化されたオープンウェイトモデルを使用していることを確認するため、モデルとしてuncensoredを指定してください。このモデルは当社のGPUサーバー上で動作し、法的な大人向け、フィクション、または論争的なトピックを拒否しません。GPT、Claude、またはその他のベンダーのモデルではありません。
curl https://api.nsfwllmrouter.com/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."}]
}'
リクエストボディは8 MBを超えてはいけません。OpenAI互換のクライアントと同様に、システム、ユーザー、アシスタントのメッセージを定義できます。モデルは、レスポンスストリームに直接テキスト出力を返します。
Python SDK
公式のOpenAI Pythonライブラリを使用して迅速に統合します。クライアントをベースURLにポイントし、APIキーを提供します。このアプローチはOpenAI互換のSDKすべてで機能し、アプリケーションロジックを変更せずにベースURLのみを置き換えることができます。uncensoredモデルIDは、特定の無検閲LLMと対話していることを保証します。
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwllmrouter.com/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)
これは専用無検閲APIであるため、複雑なルーティングの管理や複数のモデル間の選択は不要です。システムは当社のインフラ上で推論を処理します。マルチモデルルーティングが必要な場合は、それを自分で構築する必要がありますが、ここでは選択は当社の単一の最適化されたモデルに固定されています。
Node SDK
Node.js環境では、カスタムベースURLとAPIキーを使用してOpenAIクライアントを初期化します。これにより、AIアプリケーションの構築に標準的なJavaScript/TypeScriptパターンを使用できます。クライアントはOpenAI仕様に従ってエンドポイントと通信します。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwllmrouter.com/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);
環境に必要なfetchやhttpライブラリをサポートしていることを確認してください。レスポンスオブジェクトには、生成されたテキストを含む標準的なchoices配列が含まれます。この方法は、信頼性の高いフィルタなしテキスト生成が必要なサーバーサイドレンダリングやAPIバックエンドに最適です。
ストリーミング応答
リクエストにstream: trueを設定してストリーミングを有効にします。APIはレスポンスの部分的なチャンクを含むサーバー送信イベント(SSE)を返します。これは、生成されたテキストをリアルタイムで表示したいインターフェースに役立ちます。モデルは標準的なストリーミングプロトコルをサポートしているため、既存のSSEパーサーを使用できます。
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)
各チャンクには増分テキストが含まれます。アプリケーションでこれらのチャンクを累積して、完全なレスポンスを構築してください。ストリーミングはトークン課金に影響しません。処理された入力トークンと出力トークンの合計に対して課金されます。この機能はchat/completionsエンドポイントでサポートされています。
レート制限と制約
各APIキーは1分あたり300リクエストに制限されています。これを超えると、429レート制限エラーが発生します。最大リクエストボディサイズは8 MBです。キーが無効な場合、401エラーが発生します。前払いクレジットがない場合、402エラーが発生します。コンテキストウィンドウは100,000トークンで、プロンプトと完了の両方をカバーします。SLA保証はなく、オンプレミスデプロイメントやモデルルーティングは提供していません。この無検閲APIは、大量の処理とフィルタなし出力を必要とするアプリケーションに使用してください。