status は HTTP ステータスと同じ値です。code は分岐処理に使える安定した識別子で、message は人間が読むための詳細です。各エンドポイントページには、返る可能性のある code がすべて記載されています。
ステータスクラスの概要
プロバイダーエラーは設定の問題
よくある 2 つの 400code は、リクエストではなくアプリのモデル設定の問題を示します。
provider_not_initialize:有効なモデル認証情報がないcompletion_request_error:テキスト生成リクエストの実行中にエラーが発生した
レート制限
429 のcode は too_many_requests で、同時実行数の上限を示します。このアプリへの同時リクエストが今は多すぎる状態です。バックオフして再試行してください。
ストリーム内のエラー
ストリームが開いた時点で、HTTP ステータスはすでに200 です。失敗は error イベントとして届き、ストリームを終了させます。イベントの code の値はこのページに記載のものと同じで、同じルールで分類できます。詳細は ストリーミングレスポンスの処理 を参照してください。
再試行の判断
- バックオフして再試行:
too_many_requests、500、ネットワーク障害。 - そのまま再試行しない:バリデーションエラー(まずリクエストを修正)と認可の失敗。
- 再試行ではなく修正:再開呼び出しの
404は、userの誤りか実行が存在しないことを意味します。再試行せず、識別子を修正してください。