通過 Assistant API 流式輸出,您可以即時擷取 Assistant 的運行結果。這些結果稱為 Assistant 事件流,包含了 Assistant 運行時產生的狀態資訊和對話訊息。為了正確處理這些對話訊息,您需要瞭解訊息增量對象和運行步驟增量對象。
訊息增量對象
事件名:thread.message.delta在流式運行中大模型產生的訊息片段。
欄位名 | 類型 | 描述 |
|---|---|---|
id | string | 訊息的標識符。 |
object | string | 物件類型,與事件名保持一致。始終是 thread.message.delta。 |
delta | object | 大模型產生的訊息片段對象。 |
delta.role | string | 產生訊息的角色。可以是 user 或 assistant 中的一個。 |
delta.file_ids | array | 暫未使用的欄位。 |
delta.content | object | 訊息內容對象。 |
delta.content.type | string | 訊息內容類型,始終是 text。 |
delta.content.text | object | 訊息中包含的常值內容對象。 |
delta.content.text.annotations | array | 暫未使用的欄位。 |
delta.content.text.value | string | 訊息中包含的常值內容。 |
運行步驟增量對象
事件名:thread.run.step.delta在流式運行中工具調用返回的訊息片段。
欄位名 | 類型 | 描述 |
|---|---|---|
id | string | 運行步驟的標識符。 |
object | string | 物件類型,與事件名保持一致。始終是 thread.run.step.delta。 |
delta | object | 工具調用返回的訊息片段對象。 |
delta.step_details | object | 片段的詳細步驟資訊對象。 |
delta.step_details.type | string | 步驟詳情類型, 可能是 message_creation 或 tool_calls |
delta.step_details.message_creation | object | 步驟建立訊息的詳細資料。 |
delta.step_details.message_creation.type | string | 始終為 message_creation。 |
delta.step_details.message_creation.message_id | string | 此步驟建立的訊息 ID。 |
delta.step_details.tool_calls | array | 工具調用的詳細資料列表。 |
delta.step_details.tool_calls.type | string | 工具調用的類型,可能為 code_interpreter, quark_search, text_to_image, calculator |
delta.step_details.tool_calls.code_interpreter | object | 代碼解譯器的訊息對象。 |
delta.step_details.tool_calls.code_interpreter.arguments | string | 代碼解譯器的輸入參數,包括代碼類型,完整代碼。由大模型產生。 |
delta.step_details.tool_calls.code_interpreter.output | string | 代碼解譯器的輸出參數,包括執行結果。由代碼解譯器產生。 |
delta.step_details.tool_calls.quark_search | object | 夸克搜尋的訊息對象。 |
delta.step_details.tool_calls.quark_search.arguments | string | 夸克搜尋的輸入參數,包括改寫後的查詢語句。由大模型產生。 |
delta.step_details.tool_calls.quark_search.output | string | 夸克搜尋的輸出參數,包括成功標記,錯誤碼,錯誤訊息,搜尋結果列表(標題、地址、描述、類型、訊息源)。由夸克搜尋產生。 |
delta.step_details.tool_calls.text_to_image | object | 文生圖的訊息對象。 |
delta.step_details.tool_calls.text_to_image.arguments | string | 文生圖的輸入參數,包括模型名,風格,映像大小,映像數量,正向提示詞和負向提示詞。由大模型產生。 |
delta.step_details.tool_calls.text_to_image.output | string | 文生圖的輸出參數,包括請求id,任務id,任務狀態,提交時間,預計完成時間,結束時間,產生結果,映像數量,成功標記和失敗標記。由文生圖產生。 |
delta.step_details.tool_calls.calculator | object | 計算機的訊息對象。 |
delta.step_details.tool_calls.calculator.arguments | string | 計算機的輸入參數,包括輸入公式和要求標頭。由大模型產生。 |
delta.step_details.tool_calls.calculator.output | string | 計算機的輸出參數,包括公式和結果。由計算機產生。 |
Assistant 事件流
在流式運行 Assistant 時發生的事件。
在 Assistant API 中,流式資料也稱為“事件流”,由event(事件)和data(事件數目據)組成:
-
event:每當建立新對象、轉換到新狀態或串流時,伺服器都會發出事件。 例如,建立新的運行thread.run.created、運行完成thread.run.completed等。 -
data:包含了事件相關的詳細資料。 例如狀態、文本或工具訊息、錯誤等。
事件名 | 資料類型 | 描述 |
|---|---|---|
thread.created | thread | 建立新線程時發生。 |
thread.run.created | run | 建立新運行時發生。 |
thread.run.queued | run | 當運行移動到 queued 狀態時發生。 |
thread.run.in_progress | run | 當運行移動到 in_progress 狀態時發生。 |
thread.run.requires_action | run | 當運行移動到 requires_action 狀態時發生。 |
thread.run.completed | run | 在運行完成時發生。 |
thread.run.failed | run | 當運行失敗時發生。 |
thread.run.cancelled | run | 當運行被取消時發生。 |
thread.run.expired | run | 發生在運行到期時。 |
thread.run.step.created | run step | 在建立運行步驟時發生。 |
thread.run.step.in_progress | run step | 當運行步驟移動到 in_progress 狀態時發生。 |
thread.run.step.delta | run step delta | 在運行步驟的部分內容被串流時發生。 |
thread.run.step.completed | run step | 在運行步驟完成時發生。 |
thread.run.step.failed | run step | 發生在運行步驟失敗時。 |
thread.run.step.cancelled | run step | 當運行步驟被取消時發生。 |
thread.run.step.expired | run step | 發生在運行步驟到期時。 |
thread.message.created | message | 在訊息建立時發生。 |
thread.message.in_progress | message | 當訊息變為 in_progress 狀態時發生。 |
thread.message.delta | message delta | 當訊息的部分內容被串流時發生。 |
thread.message.completed | message | 當訊息完成時發生。 |
thread.message.incomplete | message | 當訊息在完成之前結束時發生。 |
error | error | 當發生錯誤時觸發。這可能是由於內部伺服器錯誤或逾時引起的。 |
常見問題
- 在配置流式輸出時,如果您遇到代碼執行錯誤,請參閱錯誤碼排查錯誤類型。
- 如需瞭解 Assistant API 流式輸出的配置方法,請參閱Assistant API 流式輸出快速入門以瞭解更多資訊。