アシスタント API のストリーミング出力は、アシスタントからリアルタイムで結果を返します。これらの結果はイベントストリームとして配信され、アシスタントのランタイムからのステータス情報や会話メッセージが含まれています。これらのメッセージを処理するには、メッセージデルタオブジェクトとランステップデルタオブジェクトを理解する必要があります。
重要アシスタント API は 非推奨 となっています。組み込みツールとマルチターンコンテキスト管理を提供する Responses API への移行を推奨します。
メッセージデルタオブジェクト
イベント名:thread.message.delta
ストリーミングラン中に大規模言語モデル (LLM) が生成するメッセージフラグメントです。
フィールド名 | 型 | 説明 |
|---|---|---|
id | 文字列 | メッセージ識別子です。 |
object | 文字列 | オブジェクトタイプです。イベント名と同じです。常に |
delta | オブジェクト | LLM が生成したメッセージフラグメントオブジェクトです。 |
delta.role | 文字列 | メッセージを生成したロールです。値は |
delta.file_ids | 配列 | このフィールドは使用されません。 |
delta.content | オブジェクト | メッセージコンテンツオブジェクトです。 |
delta.content.type | 文字列 | メッセージコンテンツタイプです。常に |
delta.content.text | オブジェクト | メッセージ内のテキストコンテンツオブジェクトです。 |
delta.content.text.annotations | 配列 | このフィールドは使用されません。 |
delta.content.text.value | 文字列 | メッセージ内のテキストコンテンツです。 |
{
"delta": {
"content": {
"text": {
"annotations": [],
"value": "[REDACTED]"
},
"type": "text"
},
"role": "[REDACTED]",
"file_ids": []
},
"id": "[REDACTED]",
"object": "thread.message.delta",
"request_id": "[REDACTED]",
"status_code": 200
}
ランステップデルタオブジェクト
イベント名:thread.run.step.delta
ストリーミングラン中にツール呼び出しが返すメッセージフラグメントです。
フィールド名 | 型 | 説明 |
|---|---|---|
id | 文字列 | ランステップ識別子です。 |
object | 文字列 | オブジェクトタイプです。イベント名と同じです。常に |
delta | オブジェクト | ツール呼び出しが返したメッセージフラグメントオブジェクトです。 |
delta.step_details | オブジェクト | フラグメントのステップ詳細情報オブジェクトです。 |
delta.step_details.type | 文字列 | ステップ詳細タイプです。値は |
delta.step_details.message_creation | オブジェクト | ステップで作成されたメッセージの詳細です。 |
delta.step_details.message_creation.type | 文字列 | 常に |
delta.step_details.message_creation.message_id | 文字列 | このステップで作成されたメッセージの ID です。 |
delta.step_details.tool_calls | 配列 | ツール呼び出しの詳細オブジェクトのリストです。 |
delta.step_details.tool_calls[i].type | 文字列 | ツール呼び出しのタイプです。値は |
delta.step_details.tool_calls[i].code_interpreter | オブジェクト | コードインタープリターのメッセージオブジェクトです。 |
delta.step_details.tool_calls[i].code_interpreter.arguments | 文字列 | コードインタープリターの入力パラメーターです。コードタイプと完全なコードが含まれます。LLM が生成します。 |
delta.step_details.tool_calls[i].code_interpreter.output | 文字列 | コードインタープリターからの出力パラメーターです。実行結果が含まれます。コードインタープリターが生成します。 |
delta.step_details.tool_calls[i].quark_search | オブジェクト | Quark Search のメッセージオブジェクトです。 |
delta.step_details.tool_calls[i].quark_search.arguments | 文字列 | Quark Search の入力パラメーターです。書き換えられたクエリ文が含まれます。LLM が生成します。 |
delta.step_details.tool_calls[i].quark_search.output | 文字列 | Quark Search からの出力パラメーターです。成功マーク、エラーコード、エラーメッセージ、および検索結果のリスト (タイトル、アドレス、説明、タイプ、メッセージソース) が含まれます。Quark Search が生成します。 |
delta.step_details.tool_calls[i].text_to_image | オブジェクト | Text-to-Image のメッセージオブジェクトです。 |
delta.step_details.tool_calls[i].text_to_image.arguments | 文字列 | Text-to-Image の入力パラメーターです。モデル名、スタイル、画像サイズ、画像数、肯定的なプロンプト、および否定的なプロンプトが含まれます。LLM が生成します。 |
delta.step_details.tool_calls[i].text_to_image.output | 文字列 | Text-to-Image からの出力パラメーターです。リクエスト ID、タスク ID、タスクステータス、送信時刻、推定完了時刻、終了時刻、生成結果、画像数、成功マーク、および失敗マークが含まれます。Text-to-Image ツールが生成します。 |
delta.step_details.tool_calls[i].calculator | オブジェクト | 電卓のメッセージオブジェクトです。 |
delta.step_details.tool_calls[i].calculator.arguments | 文字列 | 電卓の入力パラメーターです。入力式とリクエストヘッダーが含まれます。LLM が生成します。 |
delta.step_details.tool_calls[i].calculator.output | 文字列 | 電卓からの出力パラメーターです。式と結果が含まれます。電卓が生成します。 |
注記コードインタープリター、Quark Search、Text-to-Image、および電卓ツールはストリーミング出力をサポートしています。
その他のアシスタント API ツールはストリーミング出力をサポートしていません。ストリーミング出力でこれらのツール呼び出しの結果を取得するには、標準のツール呼び出し方法を使用してください。詳細については、ツール呼び出しの概要の関連セクションをご参照ください。
{
"delta": {
"step_details": {
"tool_calls": [
{
"code_interpreter": {
"output": [],
"arguments": "[REDACTED]"
},
"type": "code_interpreter"
}
],
"type": "tool_calls"
}
},
"id": "[REDACTED]",
"object": "thread.run.step.delta",
"request_id": "[REDACTED]",
"status_code": 200
}
アシスタントイベントストリーム
ストリーミングモードでアシスタントを実行する際に発生するイベントです。
アシスタント API では、イベントストリームは event と data で構成されます。
-
event:新しいオブジェクトが作成されたとき、状態が変化したとき、またはコンテンツがストリーミングされたときにサーバーからイベントが送信されます。たとえば、新しいランが作成されたとき (
thread.run.created) やランが完了したとき (thread.run.completed) にイベントが送信されます。 -
data:イベントに関連する詳細データが含まれています。たとえば、ステータス、テキスト、ツールメッセージ、またはエラーが含まれています。
event:thread.created
data:{"id": "thread_123", "object": "thread", ...}
イベント名 | データタイプ | 説明 |
|---|---|---|
thread.created | スレッド | 新しいスレッドが作成されたときに発生します。 |
thread.run.created | ラン | 新しいランが作成されたときに発生します。 |
thread.run.queued | ラン | ランが |
thread.run.in_progress | ラン | ランが |
thread.run.requires_action | ラン | ランが |
thread.run.completed | ラン | ランが完了したときに発生します。 |
thread.run.failed | ラン | ランが失敗したときに発生します。 |
thread.run.cancelled | ラン | ランがキャンセルされたときに発生します。 |
thread.run.expired | ラン | ランが期限切れになったときに発生します。 |
thread.run.step.created | ランステップ | ランステップが作成されたときに発生します。 |
thread.run.step.in_progress | ランステップ | ランステップが |
thread.run.step.delta | ランステップデルタ | ランステップのコンテンツの一部がストリーミングされたときに発生します。 |
thread.run.step.completed | ランステップ | ランステップが完了したときに発生します。 |
thread.run.step.failed | ランステップ | ランステップが失敗したときに発生します。 |
thread.run.step.cancelled | ランステップ | ランステップがキャンセルされたときに発生します。 |
thread.run.step.expired | ランステップ | ランステップが期限切れになったときに発生します。 |
thread.message.created | メッセージ | メッセージが作成されたときに発生します。 |
thread.message.in_progress | メッセージ | メッセージが |
thread.message.delta | メッセージデルタ | メッセージのコンテンツの一部がストリーミングされたときに発生します。 |
thread.message.completed | メッセージ | メッセージが完了したときに発生します。 |
thread.message.incomplete | メッセージ | メッセージが完了する前に終了したときに発生します。 |
error | エラー | エラーが発生したときにトリガーされます。これは、内部サーバーエラーまたはタイムアウトが原因で発生する可能性があります。 |
よくある質問
- ストリーミング出力を設定する際にコード実行エラーが発生した場合は、エラーメッセージ を参照してトラブルシューティングを行ってください。
- アシスタント API のストリーミング出力を設定する方法については、アシスタント API ストリーミング出力のクイックスタート をご参照ください。