認証 & ベースURL
APIキーはすべてのリクエストを認証します。ダッシュボードでGoogleまたはメールを使用してキーを生成できます。電話番号は不要です。このキーを Authorization ヘッダー。すべてのリクエストのベースURLは HTTPS://api.modelsnsfw.com/v1このエンドポイントは、ベース URL を変更してキーを提供するだけで、任意の OpenAI 互換クライアントと連携します。
curl https://api.modelsnsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List all available nsfw model tiers and their monthly costs."}]
}'
チャット完了エンドポイント
テキストを送信し、経由でテキストを取得 POST /v1/chat/completions. モデルIDは uncensored法的な成人向けコンテンツに対して拒否なしで応答するようにチューニングされたオープンウェイトモデルです。GPT、Claude、または他のベンダーモデルではありません。入力トークンは100万トークンあたり$0.15、出力トークンは100万トークンあたり$0.50です。エラーは無料です。
from openai import OpenAI
client = OpenAI(base_url="https://api.modelsnsfw.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)
ストリーミングレスポンス(SSE)
streamをtrueに設定してストリーミングを有効にする stream: trueAPIはServer-Sent Events (SSE)を返し、トークン使用状況は最終チャンクに含まれます。これはリアルタイムのチャットインターフェースに最適です。部分的なトークンをすぐに受け取ります。これにより、ユーザーの知覚されるレイテンシが大幅に削減されます。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.modelsnsfw.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);
Function Calling & JSON Mode
使用 response_format: {"type": "json_object"} 構造化出力用です。関数呼び出し用のツールも定義できます。モデルは temperature, top_p, stop、および seed パラメータ。必要な場合は決定論的な結果を保証します。JSONモードは、出力を有効なJSON形式に強制します。
レート制限と制約条件
キーごとに1分間に300リクエストまで制限されています。同時に実行できるリクエストは8つまでです。リクエストボディは8 MBを超えてはなりません。リクエストが多すぎると、429エラーが発生します。無効なキーは401を返します。クレジット不足は402を返します。処理中のエラーは前払いクレジットを消費しません。
トークンの使用&請求
コンテキストウィンドウは合計100,000トークンです。1リクエストあたりの最大出力は16,000トークンです。If max_tokens 未設定の場合、デフォルトは2,048です。クレジットは前払いで期限切れになりません。追加は暗号通貨のみ(USDT/TRC20またはUSDC/Base)です。大口の追加にはボーナスクレジットが適用されます。サブスクリプションは必要ありません。
ストリーミング
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)