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

バックグラウンドモード

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

Codexdeep research などのエージェントが示すように、リーズニングモデルが複雑な問題を解くには数分かかる場合があります。バックグラウンドモードでは、タイムアウトやその他の接続の問題を心配することなく、GPT-5.2 や GPT-5.2 Pro などのモデルで時間のかかるタスクを安定して実行できます。

バックグラウンドモードはこれらのタスクを非同期に開始します。開発者はレスポンスオブジェクトをポーリングして、進行状況を確認できます。バックグラウンドでレスポンス生成を開始するには、backgroundtrue に設定して 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 の 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 を作成し、すぐにそのイベントのストリーミングを開始できます。クライアントがストリームから切断される可能性があり、後で再開できるようにしておきたい場合に便利です。これを行うには、backgroundstream の両方を 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 を指定してそのレスポンスを作成した場合のみです。