OpenAI互換API:3行でクライアントを切り替え
ベースURLとAPIキーを変更し、既存のコードをそのまま維持してクライアントを切り替えます。このそのまま置き換え可能なOpenAI互換APIは、透過的なトークン単位の価格設定で無検閲LLM APIの体験を提供します。
- ベース URL
- https://api.openaicompatibleapi.com/v1
- モデル
- 無検閲
前提条件:OpenAI SDKをインストール
リクエストを送信する前に、開発環境に希望する言語用の公式OpenAI SDKがインストールされていることを確認してください。これはOpenAI互換APIと連携する標準的な方法であり、一貫した型付けとエラー処理を保証します。Pythonの場合はpip install openaiを使用します。Node.jsの場合はnpm install openaiを実行します。これらのライブラリは基盤となるHTTPの詳細を処理するため、プロンプトの送信とテキスト出力の受信に集中できます。
ベースURLとAPIキーを設定
当サービスの最大の利点は、2つの設定値のみを更新すればよいことです。クライアントをベースURLhttps://api.openaicompatibleapi.com/v1にポイントしてください。次に、サインアップページでAPIキーを生成します。登録直後に表示され、クレジットカードは必要ありません。クライアントの初期化でbase_urlとapi_keyを設定してください。これにより、ロジックを書き換えずに既存プロジェクトのGPT API代替として直接利用できます。
最初のリクエストを送信
モデルIDuncensoredを使用して標準的なチャット補完リクエストを送信します。このモデルは、法的な成人向け用途に対してコンテンツ拒否なしで回答するように調整されたオープンウェイト大規模言語モデルです。GPT、Claude、または他のベンダーのモデルではありません。簡単なテキストプロンプトで接続性をすぐにテストできます。応答はcontentフィールドに生成されたテキストを返します。
curl https://api.openaicompatibleapi.com/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."}]
}'
ストリーミング応答を有効化
より良いユーザーエクスペリエンスのために、ストリーミングを有効にしてトークン生成時にトークンを受け取ります。リクエストでstream=Trueを設定します。SDKは到着したチャンクを返すため、部分的な結果を即座に表示できます。これは最大100,000トークンの長いコンテキストウィンドウに特に役立ちます。ストリーミングは標準的なOpenAIクライアントと同様に動作し、既存のエラー処理ロジックとの互換性を維持します。
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)
ツール呼び出し(関数呼び出し)を使用
当APIは構造化されたツール呼び出しをサポートしています。toolsパラメータに関数を定義し、モデルは応答でツール呼び出しを返します。その後、それらのツールを実行し、結果をモデルに送信してさらに推論を行うことができます。この機能は標準的なツール呼び出し形式をサポートするすべてのOpenAI互換クライアントで動作します。複雑なLLMプロキシを管理せずにエージェントの構築やワークフローの自動化に最適です。
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicompatibleapi.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)
利用可能なモデルを確認
利用可能なモデルを確認するには、GET /v1/modelsエンドポイントにクエリを実行してください。uncensoredモデルがリストされているのが確認できます。これでAPIキーとベースURLが正しく設定されていることがわかります。このエンドポイントを使って認証の問題をデバッグすることもできます。エンドポイントがリストを返す場合、開発者向けAI APIへの接続は有効です。他のモデルは提供されていないため、設定はシンプルに保たれます。
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicompatibleapi.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);技術仕様
購入前に確認できるよう、API の実際の制限と機能をすべてまとめました。
| 項目 | 内容 |
|---|---|
| 形式 | OpenAI 互換:どの OpenAI SDK でも base URL とキーを変えるだけで動作 |
| エンドポイント | POST /v1/chat/completions · GET /v1/models |
| モデル ID | uncensored |
| 認証 | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.openaicompatibleapi.com/v1 |
| ストリーミング | 対応 — SSE、最後のチャンクにトークン使用量 |
| JSON モード | response_format: {"type": "json_object"} |
| 関数呼び出し | 対応 — tools、tool_choice。応答に tool_calls(ストリーミングでも)、結果は role: tool で返送 |
| パラメータ | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| 最大出力 | 100,000 トークンのウィンドウの残りまで。max_tokens は任意(個別の上限なし) |
| コンテキスト長 | 100,000 トークン(入力+出力) |
| レスポンスヘッダー | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| レート制限 | キーごとに毎分 300 リクエスト |
| リクエストサイズ | 最大 8 MB |
| 同時実行 | キーごとに同時 8 リクエストまで |
| 料金 | 入力 100 万トークン $0.25 · 出力 100 万トークン $1.00 |
| ボーナス | $50 以上で +5%、$100 以上で +10% |
| 課金 | 前払いクレジットから実使用量で課金。エラーと拒否は無料 |
| 有効期限 | 購入クレジットは失効なし、サブスクなし |
| チャージ | USDT(TRC20)または USDC(Base)、$10〜$500 の任意の整数額 |
| 無料トライアル | $0.50、7 日間、カード不要 · トライアルキー: 同時2件、毎分60件。初回チャージ後に上限が8件・300件へ拡大 |
| コンテンツ | 成人向けコンテンツ可。未成年者を含む性的コンテンツは拒否 |
| キー | アカウントごとに有効なキーは 1 つ。新しいキーで旧キーは無効 |
| ログイン | Google またはメール+パスワード |
エラーコード
エラーは固定の type を持つ JSON で返ります。失敗・拒否されたリクエストは課金されません。
| コード | タイプ | 意味 |
|---|---|---|
400 | bad_request | JSON 不正、メッセージ空、パラメータ誤り、またはコンテキスト超過 |
401 | missing_key · invalid_key · key_revoked | キーなし・誤り・新しいキーに置換済み |
402 | no_credit | 残高ゼロ — チャージすれば即再開 |
403 | content_blocked | 未成年者を含む性的コンテンツ — 拒否、課金なし |
404 | not_found | 不明なエンドポイント |
413 | request_too_large | 本文が 8 MB 超 |
429 | rate_limited · concurrency | 毎分 300 回または同時 8 件を超過 — 待って再試行 |
503 | upstream_busy | モデル混雑 — 数秒後に再試行 |
質問と回答
レート制限はどのくらいですか?
API キーごとに1分あたり300リクエストまでです。リクエストボディのサイズは8 MBに制限されます。制限を超えると429エラーが発生します。いつでもキーを再生成して関連付けをリセットできますが、レート制限はキー自体に適用されます。
401または402エラーが発生するのはなぜですか?
401エラーはAPIキーが無効または期限切れであることを示します。402エラーは前払いクレジットが枯渇したことを意味します。無制限の無料プランは提供していません。無検閲LLM APIを引き続き利用するにはチャージが必要です。クレジットは期限切れにならないため、暗号通貨(USDTまたはUSDC)で$10からチャージできます。
コンテキストウィンドウは本当に100kですか?
はい、モデルはプロンプトと補完を合計して厳密に100,000トークンのコンテキストウィンドウをサポートしています。これにより、大規模なドキュメント処理や長い会話が可能です。切り捨てやエラーを避けるために、入力がこの制限内に収まるようにしてください。
キーはフォーム 1 つで手に入ります
アカウントを作成し、キーをコピーし、ベースURLを変更します。これがセットアップのすべてです。