接続中断の調査
画像生成は長時間リクエスト(10–60 秒)であり、接続中断の大半はクライアント側または中間層のタイムアウトが原因です。 以下の順で調査してください。
調査チェックリスト
-
HTTP クライアントのタイムアウト:requests / axios / fetch のデフォルトタイムアウトは一般的に 30 秒で、 生成時間より短いと必ず失敗します。統一して ≥120 秒 に変更してください:
client = OpenAI(base_url="...", api_key="...", timeout=180) -
自前のリバースプロキシのタイムアウト:nginx のデフォルト
proxy_read_timeout 60sも同様に延長する必要があります:proxy_read_timeout 180s;proxy_send_timeout 180s; -
レスポンス本文サイズ制限:base64 を返す場合、レスポンスは数 MB に達することがあります。プロキシとゲートウェイの
client_max_body_size/ body 上限を確認してください; -
社内ネットワーク/プロキシ:一部の企業プロキシは長時間接続を切断することがあります。直結ネットワークに切り替えて比較テストしてください;
-
並列数が高すぎる:大量並列時に一部のリクエストがキュー待ちになり、総所要時間が延びてタイムアウトを引き起こします—— 並列数を下げるか、キューを追加してください。
中断後の正しい処理
- 失敗したリクエストは課金されません(事前引き落としは自動返金されます)ので、安全に再試行できます;
- 指数バックオフで再試行してください(5s → 15s → 45s)。 直ちに連続再送しないでください;
- ピーク時の一時的な 5xx は上流の揺らぎに相当します。再試行 1–2 回で通常は回復します。エラーコードと再試行 を参照してください。
それでも解決しない場合
管理画面の「ログ」で該当リクエストのステータスを確認してください。リクエスト時刻とモデル名を添えてサポートに連絡し、チャネル側の問題を調査してください。