応答全体を読み取る
失敗ステータスの場合は、秘密情報を取り除いたうえで、HTTPコード、ヘッダー、エラー本文、リクエストIDを保持します。これらにより、無効なリクエスト、アクセス拒否、一時的な問題を区別できます。
生のサービス応答だけをユーザーへのメッセージにしないでください。オペレーター向けの診断情報は保持しつつ、実行した操作を説明します。
失敗した応答を確認
bash
curl --include --request POST https://cicora.ai/api/v1/chat/completions \
--header "Authorization: Bearer $CICORA_API_KEY" \
--header 'Content-Type: application/json' \
--data '{"model":"openai/gpt-5.6-sol","messages":[]}'障害を分類
- 4xxでは通常、キー、入力データ、アクセス権のいずれかを修正する必要があります。
- 429では、制限時間枠を守り、過度な再試行を避ける必要があります。
- 5xxおよびネットワーク障害では、指数バックオフとジッターを用いた上限付きの再試行を行います。
安全に再試行
一時的な障害に限り、その操作が製品内でべき等である場合にのみ再試行します。生成処理では、二重課金や成果物の重複を防ぐためクライアントリクエストIDを保持します。
ストリーミングでは、最初の差分を受信する前のエラーと、一部の出力後に中断した場合を区別します。後者を新しい応答で黙って置き換えることはできません。