Skip to main content

エラー形式

すべてのエラーは一貫した JSON 形式に従います:

エラータイプ

一般的なエラーと解決策

401 — 無効な API Key

解決策: API key が正しく、失効していないことを確認してください。

403 — プロバイダーが許可されていない

解決策: お使いの API key には allowed_providers の制限があります。別のキーを使用するか、管理 API で許可されたプロバイダーを更新してください。

429 — レート制限

解決策: 指数バックオフを実装してください。キーのレート制限の引き上げを検討してください。

502 — アップストリームエラー

解決策: LLM プロバイダーがエラーを返したか、アクセスできません。ARouter は自動的にキーのフェイルオーバーを処理しますが、プロバイダー自体に問題が発生している可能性があります。リトライするか、別のプロバイダーに切り替えてください。

コードでのエラー処理

リトライ戦略

本番アプリケーションでは以下を推奨します:
  1. 429 と 502 には指数バックオフでリトライ
  2. 400、401、403 はリトライしない — これらは永続的なエラー
  3. 最大リトライ回数を設定(例: 3 回)
  4. マルチモデルルーティングを検討 — あるモデルがリクエストに応えられない場合、modelsroute で順序付きの候補リストを送信

ストリーミング中のエラー処理

ストリーミング(stream: true)を使用する場合、エラーの動作は発生するタイミングによって異なります:
  • Token が送信される前 — ARouter は非 200 ステータスコードを持つ標準 HTTP エラーレスポンスを返します。非ストリーミングエラーと同様に処理します。
  • Token が送信された後 — HTTP ステータスはすでに 200 OK です。エラーはストリームボディ内の SSE イベントとして配信されます。
ストリーム途中のエラーは次のようになります:
各チャンクの finish_reason を確認してください。"error" の場合、ストリームが異常終了したことを意味します。
完全なストリーミングエラー処理の例については、ストリーミングガイドを参照してください。