LLMoxy はリクエストを利用可能な上流プロバイダーにルーティングし、上流が一時的に故障した場合に自動的に再試行します。ユーザーはモデルを指定するだけで、残りはゲートウェイが処理します。
ルーティング
リクエストを送信する際に呼び出したい model を指定すると、LLMoxy は以下を行います:
- そのモデルをサポートする健全なプロバイダーを選んでリクエストを送信します。
- 一時的なエラー(例:5xx、一部の 429、タイムアウト)が発生した場合、別のプロバイダーに自動的に切り替えて再試行します。
- すべてのプロバイダーが失敗した場合、最後のエラーを OpenAI スタイルで返します。
ルーティングルールを設定する必要も、現在のリクエストがどのプロバイダーに落ちたかを知る必要もありません。
リクエスト形式
同じキーで異なる形式のエンドポイントを通じてモデルを呼び出せます。アプリケーションが既に使用しているものを選んでください:
| 形式 | ルート |
|---|---|
| OpenAI Chat | POST /v1/chat/completions |
| OpenAI Responses | POST /v1/responses |
| Anthropic Messages | POST /v1/messages |
| Gemini | POST /v1beta/models/{model}:generateContent |
| Embeddings | POST /v1/embeddings |
| Rerank | POST /v1/rerank |
| OpenAI Video | POST /v1/videos |
課金
リクエスト完了後、LLMoxy は上流が返したトークン使用量に基づいて課金します。これにはプロンプト、コンプリーション、キャッシュ、音声、画像、推論トークンが含まれます。課金はリクエストごとです。月額サブスクリプションの最低料金はありません。
リアルタイム残高と単価はコンソールを基準とします:
- ウォレット:残高とチャージ履歴。
- 価格:各モデルの現在の単価。
- ログ:各リクエストの実際の課金額とトークン数。
エラーレスポンス
すべてのエラーは統一された OpenAI スタイルの構造を使用します:
{
"error": {
"message": "error message",
"type": "invalid_request_error",
"param": null,
"code": "invalid_request"
}
}
一般的なステータスコード:
| ステータスコード | 一般的な原因 |
|---|---|
400 | 無効なリクエストボディまたはサポートされていないパラメータ。 |
401 | キーが欠落している、スペルミス、または無効化されている。 |
403 | アカウントが無効化されている、IP が許可リストにない、残高が尽きている、またはサブスクリプションが利用不可。 |
404 | モデルまたはルートが利用不可。 |
429 | キーのレート制限がトリガーされた、またはすべての上流プロバイダーが同時に容量上限に達した。 |
5xx | すべての上流プロバイダーがエラーを返した、またはゲートウェイ内部の故障。 |
金額や使用量に関する表示は、コンソールまたは最新のリクエストレスポンスを直接読み取ってください。キャッシュされた値を使用しないでください。
