Uncensored LLM APIクイックスタートガイド
既存のOpenAIコードベースに制限なしモデルをコード変更ゼロで組み込みます。同じSDKとエンドポイントを使用して、専用インフラストラクチャからのコンテンツ制限なしの直接応答を取得します。
前提条件:OpenAI SDKのインストール
お好みの言語の公式OpenAI SDKをインストールすることから始めましょう。クライアントライブラリは認証とシリアライズを自動的に処理します。標準ライブラリのみでよく、基本的なテキスト生成には追加の依存関係は必要ありません。
環境が最新のPythonまたはJavaScriptバージョンをサポートしていることを確認してください。SDKはHTTPの詳細を抽象化するため、プロンプトエンジニアリングに集中できます。
base_urlを使用してクライアントを初期化
クライアントをデフォルトのOpenAI URLの代わりに専用エンドポイントに接続します。この単一の変更により、標準のOpenAI互換形式を維持しながら、すべてのリクエストが非制限モデルインフラストラクチャにルーティングされます。
認証には固有のAPIキーを使用します。ベースURLにより、アプリは他のベンダーを介さず、直接当社のサーバーと通信します。
- ベースURL: HTTPS://api.openrouteropenaicompatible.com/v1
- モデルID:
uncensored
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouteropenaicompatible.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)
最初のチャット完了
標準的な POST チャット完了エンドポイントへのリクエスト。標準的なJSON構造でシステムプロンプトとユーザーメッセージを渡します。モデルは、合法的な成人向けまたは論争的なトピックに対する通常のコンテンツフィルターなしでテキスト応答を返します。
curl https://api.openrouteropenaicompatible.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list all installed npm packages in current directory"}]
}'import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouteropenaicompatible.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);
ストリーミング応答を有効にする
設定 stream: true 生成されるトークンを受信します。これにより長い出力の知覚レイテンシが軽減されます。各チャンクには部分的なテキストと、最終イベントに含まれる使用量統計が含まれます。
サーバーはクライアントにServer-Sent Events (SSE)を送信します。ストリームを処理して、完全なレスポンスを待たずにUIをリアルタイムで更新してください。
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)
構造化データのために JSON モードを構成
使用 response_format モデルをJSONモードに強制します。これにより、アプリケーションに対して一貫性のある解析可能な出力が保証されます。モデルはシステムプロンプトで定義されたスキーマに厳密に従います。
有効にする json_object レスポンスが有効なJSONであることを保証します。これはバックエンドサービスとのプログラム統合において重要です。
関数呼び出しを実装します
関数呼び出しを有効にするために、リクエストにツールを定義します。モデルはプロンプトのコンテキストに基づいて関数を呼び出すことができます。ツール定義を渡し、モデルに関数を呼び出すかどうかを判断させます。
アプリケーションロジックでツールコールを処理します。関数を実行し、その結果を会話にフィードバックして一貫した続きを作成します。
トークン使用量と制限を処理する
サービス中断を避けるため使用状況を確認してください。コンテキストウィンドウはプロンプトと補完を合わせて100,000トークンをサポートします。出力は1リクエストあたり16,000トークンに制限されます。
レートリミットは、キーあたり1分あたり300リクエストを適用します。これを超えると、429エラーが返されます。認証エラーは401を返し、クレジット不足は402を返します。エラーと拒否はトークンを消費しないため、コンテンツ生成が成功した場合にのみ課金されます。
よくある質問
これはOpenAI APIですか、それともOpenAI互換の代替品ですか?
私たちは独自の無制限モデルを実行するOpenRouter OpenAI互換サービスです。エンドポイント構造とSDK互換性が同じであるため、既存のOpenAIコードを変更せずに使用できます。
レート制限に達した場合どうなりますか?
429ステータスコードは、リクエスト数が多すぎること(Too Many Requests)を示します。制限はAPIキーごとに1分間あたり300リクエストです。数秒待ってから再試行するか、並列リクエストの量を減らしてください。
モデルは他のAPIと同様にコンテンツを拒否しますか?
当社のモデルは、法的な成人向け、フィクション、または論争的なトピックにおいてコンテンツ拒否なしで回答するようにチューニングされています。唯一のハードリミットは、未成年者を含む性的コンテンツで、これは常に拒否されます。