数分でUncensored LLM APIを統合
既存のOpenAI SDKクライアントを当社のベースURLに指し、APIキーを挿入することで、無制限レスポンスの送信を直ちに開始できます。
公式OpenAI SDKをインストール
まず、クライアントライブラリをプロジェクト環境に追加してください。これにより、カスタムHTTPロジックを必要とせずに、標準的なリクエスト形式とストリーミングプロトコルの互換性が確保されます。
パッケージは認証ヘッダーとJSONシリアライゼーションを自動的に処理します。依存関係がワークスペースで解決され次第、設定に進むことができます。
from openai import OpenAI
client = OpenAI(base_url="https://api.unlimitedllmapi.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)
ベース URL と API キーの構成
エンドポイントを設定してトラフィックを直接当エンドポイントへ base_url 変数を使用して、一意のキーをクライアントインスタンスに注入します。この簡単な変更により、コード構造を変更せずに、最適化されたアンセンサードモデルへのリクエストがルーティングされます。
の /v1/models エンドポイント。システムは利用可能なモデル識別子を返し、認証情報が有効でネットワークパスが開いていることを確認します。
curl https://api.unlimitedllmapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list all available endpoints for user authentication"}]
}'
最初のチャット完了リクエストを送信
モデル ID を指定して標準的なチャット補完ペイロードを構築します uncensored および希望するメッセージ配列。APIはテキスト入力を処理し、生成されたテキストを返します。パラメータとして以下をサポートしています: temperature および top_p トーン制御用。
リクエストボディは8 MBの制限内に収めてください。システムは標準のJSONオブジェクトを受け取り、アプリケーションがすぐに解析できる構造化されたレスポンスを返します。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.unlimitedllmapi.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を stream フィールドをtrueに設定します。これにより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)
関数呼び出しとJSONモードを有効にする
構造化出力を有効にするには、 response_format に {"type": "json_object"}これはモデルに厳格に有効なJSONを返させることを強制し、フロントエンドフォームやバックエンドサービスとの信頼性の高い統合に不可欠です。
リクエストボディにツールを定義して関数呼び出しを有効にすることもできます。モデルは特定の関数名と引数を返すため、コードはユーザーの意図に基づいて外部ロジックを実行できます。
レート制限とコンテキストウィンドウを理解する
APIキーは1分あたり300リクエスト、最大8つの同時リクエストをサポートします。これらの閾値を超えると、ウィンドウがリセットされるまでシステムは429エラーを返します。
コンテキストウィンドウはプロンプトと補完を合わせて合計100,000トークンを許容します。出力は1リクエストあたり16,000トークンに制限され、指定しない場合は2,048トークンになります。 max_tokens. エラーや拒否にはクレジットが消費されません。
よくある質問
401または402エラーの原因は何ですか?
401エラーは、無効または期限切れのAPIキーを示します。402エラーは、現在のリクエストのトークン使用量をカバーするのに十分な前払いクレジット残高がないことを意味します。
100,000トークンのコンテキストウィンドウはどのように機能しますか?
100,000トークンの制限は、入力プロンプトと生成された補完の合計に適用されます。大規模なドキュメントを送信できますが、出力リクエストが1リクエストあたり16,000トークンの最大制限を超えないことを確認してください。
ストリーミングのためにコードを変更する必要がありますか?
はい、単一のJSON応答を待つ代わりに、Server-Sent Events (SSE) ストリームを処理する必要があります。ほとんどの公式SDKには、トークンが生成されるたびに順次返すストリームイテレータが用意されています。