ベースURLと認証
APIはhttps://api.nsfwchatbot.cc/v1で動作します。標準的なBearerトークン認証を使用します。APIキーを取得ページから単一のAPIキーを取得でき、Googleまたはメールでのサインアップに対応しています。キーはAuthorizationヘッダーで送信する必要があります。アカウントごとにアクティブなキーは1つのみで、新しいキーを生成すると以前のキーは無効になります。月額サブスクリプションはなく、クレジットは前払いで期限切れしません。
クライアントライブラリが上記のベースURLを指していることを確認してください。モデル識別子は常に uncensored です。これは、コンテンツ拒否を最小限に抑えるようにチューニングされたオープンウェイトモデルであり、GPT や Claude とは異なります。このモデルは、法的な成人向けコンテンツに対して一般的なガードレールなしで生テキストを返します。
最初のリクエスト
基本的なリクエストは OpenAI の chat-completions エンドポイントと同等です。モデル、メッセージ、およびオプションのパラメータを指定します。API はテキスト応答を返します。max_tokens を省略した場合、デフォルトの出力制限は 2,048 トークンです。コンテキストウィンドウは、プロンプトと補完を合わせて最大 100,000 トークンをサポートします。
以下の例は、curlを使用した標準的なテキスト補完リクエストを示しています。
curl https://api.nsfwchatbot.cc/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."}]
}'これにより、生成されたテキストを含むJSONオブジェクトが返されます。エラーが発生した場合は、本文にエラーオブジェクトを含む標準的なHTTPステータスコードが返されます。
Python SDK
公式のOpenAI Pythonライブラリを使用し、ベースURLを当社に設定します。これにより、既存のクライアントコードを最小限の変更で活用できます。APIキーをapi_keyとして渡し、base_urlを当社のエンドポイントに設定します。モデル名はuncensoredのままです。
初期化と補完呼び出しの例:
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwchatbot.cc/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)このアプローチは単純なテキスト生成やチェーンの構築に役立ちます。モデルはGPT-4ではないことを覚えておき、プロンプトエンジニアリングを適宜調整してください。ストリーミングはstream=Trueパラメータでサポートされており、詳細は次のセクションで説明します。
Node SDK
Node.js OpenAI SDKも同じ設定パターンに従います。ライブラリをインポートし、ベースURLとAPIキーを設定して、completionsエンドポイントを呼び出します。これはサーバー側の連携やNodeベースのチャットアプリケーションに最適です。
初期化の例:
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwchatbot.cc/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);レスポンスオブジェクトにはresponse.choices[0].message.contentに生成されたコンテンツが含まれます。ネットワークの問題や無効なキーにより例外が発生するため、適切にエラーを処理してください。無検閲モデルは標準的なシステムプロンプトに応答するため、メッセージ履歴を通じてトーンや動作を定義できます。
ストリーミングレスポンス
リクエストにstream: trueを設定してストリーミングを有効にします。APIはServer-Sent Events (SSE)ストリームを返します。各チャンクには部分的なテキストが含まれます。最終チャンクにはトークン使用統計が含まれます。ストリーミングはNSFWチャットボットアプリケーションにおいてユーザーの知覚レイテンシを削減します。
ストリーミングリクエストの例:
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)ストリームを処理するには、各チャンクのコンテンツをバッファに追加します。コストを追跡するために、最終チャンクのデータを確認してください。トークン料金は入力トークン100万トークンあたり$0.25、出力トークン100万トークンあたり$1.00です。エラーと拒否には料金が発生しません。
制限、エラー、コンテキストウィンドウ
各 API キーは、1 分あたり 300 リクエストと 8 件の同時リクエストを許可します。リクエストボディは 8 MB 未満である必要があります。キーが無効な場合、401 エラーが発生します。402 エラーはクレジット不足を示します。429 エラーはレート制限を示します。コンテキストウィンドウは合計 100,000 トークンです。指定された場合、出力の最大値は 32,000 トークンです。未成年者に関連するコンテンツは常に拒否されます。クレジットは暗号通貨で前払いされ、期限がありません。これらの制限を使用して、無検閲 AI API 統合の再試行ロジックとキュー管理を設計してください。