情報確認日:2026年10月15日
OpenAI APIの長い生成は、対応モデルのBackground modeで非同期に開始し、回答IDから状態を確認できます。接続を開いたまま待つ方法とは別です。ただし、状態が終了したことと正常完成は違い、ポーリング用の一時保存もあります。保存設定を確認した上で使います。
Background modeは、単一の長い処理を追いかける機能
Responses APIの作成リクエストでbackground: trueを指定すると、処理をバックグラウンドで開始します。アプリは返ってきた回答IDを記録し、後からその回答を取得して進行状況を確認します。Background modeの公式ガイド
大量の独立したリクエストをファイルにまとめるBatch APIとは別の機能です。また、回答の一部を順に受け取るストリーミングとも役割が異なります。Background modeを選んだだけで、Batchの割引や24時間枠が適用されるわけではありません。
普段のChatGPT画面を閉じたら続くか、という画面操作の説明でもありません。開発者がAPI側で開始・追跡・終了を管理する仕組みです。利用するモデルと処理が対応するかは、実装前に現在のモデル案内で確認します。
作成、状態取得、結果保存を分ける
処理の流れは三段階です。最初に一度作成し、そのIDを保存します。次に同じIDの状態を取得し、正常に完了した場合に結果を保存します。
| 段階 | 操作と確認 |
|---|---|
| 開始 | POST /v1/responsesにbackground: true |
| 追跡 | GET /v1/responses/{回答ID}で状態取得 |
| 中止 | 対象IDの/cancelへ取消し要求 |
公式ガイドは、queuedまたはin_progressの間、状態取得を続ける方法を示しています。前者は待機、後者は処理中です。これらでなくなれば終了状態ですが、すべて正常完成という意味ではありません。
受信側ではcompletedであることを確認し、失敗や取消し、未完了は別の状態として記録します。本文が一部存在していても、完成版の結果へ自動で混ぜないようにします。
通信が切れたとき、作成し直す前にIDを確認する
画面や通信の接続が切れても、作成済みの処理が続いている場合があります。同じ入力をすぐ新しい作成リクエストへ送り直すと、別の回答が二つ動く可能性があります。
アプリは、業務の管理番号と回答ID、開始日時、取得した最後の状態を対応させます。IDを確保できているなら、まずそのIDを取得して進行状況を調べる順番にします。
作成リクエストの応答自体を受け取れず、IDも分からないケースは、単純な状態取得とは状況が違います。利用記録やエラーを確認し、無制限の全件再送にしない設計が必要です。外部サービスで既に行われた処理がある場合は、その結果も別に確認します。
ポーリングの間隔を極端に短くする必要はありません。公式例は一定時間を置いて同じIDを取得します。アプリの待機期限、取得エラーへの対応、利用者へ表示する状態も用意します。
取消しは、バックグラウンドで作った回答に使う
不要になった処理はPOST /v1/responses/{回答ID}/cancelで取り消せます。取消しAPIの公式参照は、backgroundをtrueにして作成した回答だけが対象と明記しています。
同じ回答へ複数回取消しを送っても、後の呼出しは最終の回答オブジェクトを返す仕組みです。新しい処理を作ってしまう操作とは異なります。
取消しボタンを押しただけで成功表示へ変えるのでなく、返された状態を確認します。途中の出力が残っていても、取り消された回答は完成版と区別します。取消しを、既に行われた外部の送信や更新をすべて元に戻す操作として扱うこともできません。
store: falseでも一時保存はある
2026年10月15日に確認した公式ガイドは、store: falseでBackground modeを使えると説明しています。ただし、非同期実行と状態取得のため、回答データは約10分、一時的にディスクへ保存されます。
Zero Data Retention、ZDRのプロジェクトもstore: falseで動きますが、この一時保存の説明は残ります。「保存しない設定なら、処理中も一切保存されない」という意味にはしません。
Modified Abuse Monitoringのプロジェクトについては、明示的にstore: trueとしたバックグラウンド回答のみ、一時ポーリング期間後も通常の保存期間で保持すると案内されています。省略またはfalseなら、一時期間の後に削除されます。APIのデータ管理条件
約10分を業務記録の保管期限として頼らず、必要な結果はアプリ側で適切に取得・保管します。組織の保持設定や機密情報の管理条件も別に確認します。
ストリームを再開するなら、作成時の指定が必要
背景処理の進行を逐次表示するには、作成時にbackground: trueとstream: trueを組み合わせます。公式ガイドは、各イベントのsequence_numberを記録して、再開位置の目印にする方法を示しています。
最初にstream: trueで作っていない回答から、新しいストリームを開始することはできません。また、背景処理は通常の同期処理より最初の出力まで時間がかかる場合があります。即時表示を速くする機能と同一視しないでください。
不具合は、日時、使用モデル、回答ID、最後の状態、APIのエラーをそろえて開発担当者やOpenAIサポートへ伝えます。キーを伏せた記録で、作成の失敗なのか、追跡の失敗なのか、生成の未完了なのかを切り分けられます。
参照資料
あわせて読みたい記事
執筆・検証:カネさん(政経プラスチャンネル運営)+ ChatGPT
