推奨するタイムアウト
短いタイムアウトとリトライを組み合わせるより、最初から十分に長いタイムアウトを設定してください。
推論モデルは回答の前に考えるため、1回のリクエストが数分かかることがあります。例は次のとおりです。
gpt-6-sol、gpt-5.6-solgpt-5.4-pro、o3-pro(gpt-5.5-proは2026年10月に提供を終了しました)gemini-3.1-pro-preview
長い出力にはストリーミングを使う
ストリーミングを使わないリクエストは、回答がすべて生成された後で返るため、読み取りのタイムアウトが生成にかかる全時間と競うことになります。ストリーミング(stream=True)なら、出力は生成されたそばから届きます。
- 最初のデータはすぐに届き、その後もイベントが続きます。
- 読み取りのタイムアウトは、イベントの間隔をカバーできれば十分で、通常は90〜120秒で足ります。
- 全体の所要時間は変わりませんが、回答の全体を待つ間に接続が切れることはなくなります。
長いリクエストでは自動リトライを無効にする
公式のOpenAI Python SDKは、タイムアウトやその他の一部のエラーの後、既定で2回リトライします。画像や推論のリクエストでは、max_retries を0にして、リトライするタイミングを自分のコードで決めてください。
- Python
- Node.js
- cURL
タイムアウトを延ばしても続くとき
次の順に確認してください。1
新しいタイムアウトが有効か確認する
フレームワークによっては、HTTPクライアントを独自のタイムアウトで包んでいます。有効な設定を出力して、実際に使われているものを変更したか確認してください。
2
経路上のすべての中継点を確認する
生成より短いタイムアウトを持つ中継点があれば、そこが先に接続を閉じます。次の項目をそれぞれ延ばしてください。
- 自分で運用しているNginxなどのリバースプロキシ(
proxy_read_timeoutの既定は60秒) - クラウドのロードバランサーのアイドルタイムアウト
- サーバーレス関数の最大実行時間
- キューのワーカーの1ジョブあたりのタイムアウト
3
タイムアウトとレート制限を見分ける
接続が切れる、または読み取りがタイムアウトするのは、待つ時間が足りなかったためです。
429 はレート制限または処理能力の制限で、待つ時間とは関係ありません。429 はバックオフを入れて数回リトライし、続く場合はサポートに連絡してください。4
呼び出しログで実際の所要時間を確認する
呼び出しログで、そのリクエストの所要時間と課金額を確認し、それより余裕を持たせてタイムアウトを設定します。
よくある質問
タイムアウトでも課金されますか?
上流の提供元が生成を終えていれば、課金されます。切断が起きるのはお客様側で、ゲートウェイと提供元は処理を続けています。429 や 503 など、上流が200以外を返した場合は課金されません。実際の課金額は呼び出しログで確認できます。返金と残高の調整は利用規約に従います。