ベースURLと認証
無検閲AIモデルの使用を開始するには、有効なAPIキーが必要です。APIキーを取得ページでGoogleまたはメール経由で即座に生成してください。電話番号は不要で、キーは直ちに表示されます。
ベースURLをhttps://api.unhinged.top/v1に設定します。すべてのリクエストには、AuthorizationヘッダーにBearerスキームを指定する必要があります。この設定は、OpenAI互換のSDKで動作します。このAPIは、追加のルーティングレイヤーなしで直接テキスト生成に最適化された、オンラインの無検閲LLMを1つ提供します。
最初のリクエスト
統合をテストするために標準的なチャット完了リクエストを送信します。モデルIDは常にuncensoredです。このエンドポイントは、法的な成人向け利用に対してコンテンツ拒否なしで生テキストを返します。制限に達すると、APIは明確なエラーコードを返します。
curl https://api.unhinged.top/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."}]
}'この単純なPOSTリクエストは、サービスの直接テキスト入力・出力の性質を示しています。temperatureなどのパラメータを調整して創造性を制御できます。レスポンスにはトークン使用量が含まれており、透明な価格体系に対してコストを追跡するのに役立ちます。
Python SDK統合
公式のOpenAI Python SDKを使用してAPIと対話します。クライアント初期化時にベースURLとAPIキーを設定します。この方法により、既存のコード構造を維持したまま無検閲モデルに置き換えることができます。
from openai import OpenAI
client = OpenAI(base_url="https://api.unhinged.top/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)Python開発者は、このスニペットの同期性の性質から恩恵を受けます。リクエストライフサイクルは自動的に処理されます。レート制限や認証失敗の例外処理を行ってください。モデルはコンテキストウィンドウで最大100,000トークンをサポートし、豊富なプロンプト履歴を可能にします。
Node SDK統合
JavaScriptおよびTypeScript環境では、Node SDKが同様の使いやすさを提供します。ベースURLとキーでクライアントを初期化します。これにより、WebアプリケーションやバックエンドサービスでAI機能の迅速なプロトタイピングが可能になります。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.unhinged.top/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);非同期処理はSDKに組み込まれています。レスポンスを直接awaitできます。このパターンは、モデル出力をクライアントに返す必要があるサーバーサイドレンダリングやAPIエンドポイントに最適です。無検閲APIはテキスト生成に限定されているため、このエンドポイントで画像や音声のサポートを期待しないでください。
ストリーミングレスポンス
レイテンシの低い体験を得るには、stream: trueを設定してストリーミングを有効にしてください。APIはServer-Sent Events(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)ストリーミングは、ユーザーがリアルタイムのフィードバックを期待するチャットライクなインターフェースに不可欠です。choices[0].delta.contentフィールドを解析して完全なレスポンスを再構築してください。この方法は、完全な同期レスポンスと比較して、最初のトークンまでの時間を大幅に短縮します。
制限、エラー、コンテキスト
APIは安定性を確保するために厳格なクォータを適用します。1分あたり300リクエスト、キーあたり8つの同時リクエストが制限されます。リクエストボディは8 MBを超えてはいけません。これらの制限を超えると、429エラーを受け取ります。
認証エラーはキーが無効な場合に401を返します。前払いクレジットが枯渇した場合は、APIは402を返します。エラーと拒否は無料なので、成功したトークン使用に対してのみ課金されます。コンテキストウィンドウは合計100,000トークンをサポートし、リクエストあたりの最大出力は32,000トークンです。