For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme

バックグラウンドモード

時間のかかるタスクをバックグラウンドで非同期に実行します。

Codex や deep research といったエージェントの例からもわかるように、リーズニングモデルが複雑な問題を解くには数分かかることがあります。バックグラウンドモードを使うと、タイムアウトなどの接続上の問題を気にせず、GPT-5.2 や GPT-5.2 Pro などのモデルで時間のかかるタスクを安定して実行できます。

バックグラウンドモードではタスクが非同期で開始されます。レスポンスオブジェクトをポーリングすると、タスクの状態を随時確認できます。バックグラウンドでレスポンスの生成を開始するには、background を true に設定して API リクエストを送信します。

ゼロデータ保持(ZDR)が適用されるプロジェクトでは、バックグラウンドリクエストは store=false で実行されます。非同期実行とポーリングを可能にするため、レスポンスデータは約 10 分間ディスクに一時保存されます。

変更された不正利用監視(強化版を含む)を使用するプロジェクトでは、フォアグラウンドリクエストで store を省略するか true に設定すると、標準のデータ保持ポリシーが適用されます。バックグラウンドレスポンスがポーリング期間の終了後も保持されるのは、store=true を明示的に指定した場合のみです。バックグラウンドリクエストで store を省略するか false に設定すると、レスポンスは約 10 分後に削除されます。

バックグラウンドでのレスポンス生成
from openai import OpenAI

client = OpenAI()

resp = client.responses.create(
    model="gpt-6-astra",
    input="Write a very long novel about otters in space.",
    background=True,
)

print(resp.status)

バックグラウンドレスポンスのポーリング

バックグラウンドリクエストの状態を確認するには、Responses API の GET エンドポイントを使用します。リクエストの状態が queued または in_progress の間は、ポーリングを続けてください。これら以外の状態に移行した時点で、リクエストは終了状態に達しています。

バックグラウンドで生成中のレスポンスの取得
from openai import OpenAI
from time import sleep

client = OpenAI()

resp = client.responses.create(
    model="gpt-6-astra",
    input="Write a very long novel about otters in space.",
    background=True,
)

while resp.status in {"queued", "in_progress"}:
    print(f"Current status: {resp.status}")
    sleep(2)
    resp = client.responses.retrieve(resp.id)

print(f"Final status: {resp.status}\nOutput:\n{resp.output_text}")

バックグラウンドレスポンスのキャンセル

次の例のように、生成中のレスポンスをキャンセルすることもできます。

生成中のレスポンスのキャンセル
import os

from openai import OpenAI

response_id = os.environ["OPENAI_RESPONSE_ID"]
client = OpenAI()

resp = client.responses.cancel(response_id)

print(resp.status)

キャンセル操作は冪等です。繰り返し呼び出しても、2 回目以降は最終状態の Response オブジェクトが返されるだけです。

バックグラウンドレスポンスのストリーミング

バックグラウンドで Response を作成し、すぐにイベントのストリーミングを開始できます。クライアント側でストリームが途切れる可能性があり、後から再開できるようにしておきたい場合に便利です。ストリーミングを開始するには、background と stream を両方とも true に設定して Response を作成します。後から再開できるように、各ストリーミングイベントで受け取る sequence_number に対応する「カーソル」を記録しておいてください。

現在、バックグラウンドレスポンスでは、同期レスポンスに比べて最初のトークンを受け取るまでに時間がかかります。今後数週間でこの差を縮められるよう、改善を進めています。

バックグラウンドレスポンスの生成とストリーミング
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
  "model": "gpt-6-astra",
  "input": "Write a very long novel about otters in space.",
  "background": true,
  "stream": true
}'

// To resume:
curl "https://api.openai.com/v1/responses/resp_123?stream=true&starting_after=42" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY"

制限事項

  1. バックグラウンドリクエストでは store=false を指定できますが、非同期実行とポーリングのためにレスポンスデータは一時保存されます。
  2. 同期レスポンスをキャンセルするには、接続を切断してください。
  3. バックグラウンドレスポンスから新しいストリームを開始できるのは、レスポンスの作成時に stream=true を指定した場合のみです。