共用方式為


助理 API (預覽) 執行參考

注意

  • 檔案搜尋可以內嵌每個助理最多 10,000 個檔案 - 比之前多 500 倍。 其速度很快,可透過多對話搜尋支援平行查詢,以及增強重新排名和查詢重寫的功能。
    • 向量存放區是 API 中的新物件。 一旦檔案新增至向量存放區,它就會自動進行剖析、區塊化和內嵌,並準備好提供搜尋。 向量存放區可以跨助理和對話使用,簡化檔案管理和計費。
  • 我們已新增 tool_choice 參數的支援,可用來強制在特定執行中使用特定工具 (例如檔案搜尋、程式碼解譯器或函式)。

本文提供新助理 API (預覽) 的 Python 和 REST 參考文件。 入門指南會提供更深入的逐步指引。

建立執行

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview

建立執行。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 要為其建立訊息的對話識別碼。

要求本文

名稱 類型​​ 必要 描述
assistant_id string 必要 用來執行此執行的助理識別碼。
model string 或 null 選擇性 要用來執行此執行的模型部署名稱。 在這裡提供的值將會覆寫與助理相關聯的模型部署名稱。 若未提供,則會使用與助理相關聯的模型部署名稱。
instructions string 或 null 選擇性 覆寫助理的指示。 這有助於修改個別執行的行為。
additional_instructions 字串 選擇性 在執行的指令結尾附加其他指令。 這有助於修改個別執行的行為,而無須覆寫其他指令。
additional_messages 陣列 選擇性 在建立執行之前,將其他訊息新增至執行緒。
tools 陣列或 null 選擇性 覆寫助理可用於此執行的工具。 這有助於修改個別執行的行為。
metadata map 選擇性 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。
temperature 數值 選擇性 要使用的取樣溫度,介於 0 到 2 之間。 0.8 之類的較高值會讓輸出更隨機,而 0.2 之類的較低值會使它更集中且具決定性。 預設 為 1。
top_p 數值 選擇性 核取樣是溫度取樣的替代方法,在此方法中,模型會考慮包含 top_p 機率質量的權杖結果。 因此,0.1 表示只考慮組成前 10% 機率質量的權杖。 一般會建議改變這個值或溫度,但不建議同時改變。 預設 為 1。
stream boolean 選用 若為 true,則會傳回在以伺服器傳送的事件形式執行期間發生,並在執行進入終端狀態且顯示 data: [DONE] 訊息時終止的事件資料流。
max_prompt_tokens 整數 選用 在執行過程中可能使用的完成權杖數目上限。 執行會盡可能在多個執行回合中僅使用指定數目的完成權杖。 如果執行超過指定的完成權杖數目,執行將會以狀態 incomplete 結束。
max_completion_tokens 整數 選用 在執行過程中可能使用的完成權杖數目上限。 執行會盡可能在多個執行回合中僅使用指定數目的完成權杖。 如果執行超過指定的完成權杖數目,執行將會以狀態 incomplete 結束。
truncation_strategy truncationObject 選用 決定在執行之前如何截斷執行緒的控制項。 使用此項目,可控制執行的初始內容視窗。
tool_choice 字串或物件 選用 控制模型所呼叫的工具 (若有)。 none 值表示模型不會呼叫工具,而是會產生訊息。 auto 是預設值,表示模型可以選擇產生訊息或呼叫工具。 指定 {"type": "file_search"}{"type": "function", "function": {"name": "my_function"}} 等特定工具,會強制模型呼叫該工具。
response_format 字串或物件 選用 指定模型必須輸出的格式。 與 GPT-4 Turbo 和 gpt-3.5-turbo-1106 之後的所有 GPT-3.5 Turbo 模型相容。
設定為 { "type": "json_object" } 會啟用 JSON 模式,保證模型產生的訊息為有效的 JSON。
重要:使用 JSON 模式時,您也必須透過系統或使用者訊息指示模型自行產生 JSON。 否則,模型可能會產生一連串無止境的空白字元,直到產生作業達到權杖限制,因而導致要求長時間執行,且看似「停滯」。 另請注意,如果 finish_reason="length" 指出訊息產生超過 max_tokens 或對話超過最大內容長度,則訊息可能會遭部分截斷。

傳回

執行物件。

建立執行要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.create(
  thread_id="thread_abc123",
  assistant_id="asst_abc123"
)
print(run)

建立執行緒並執行

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/runs?api-version=2024-08-01-preview

在單一要求中建立執行緒並加以執行。

要求本文

名稱 類型​​ 必要 描述
assistant_id string 必要 用來執行此執行的助理識別碼。
thread object 選擇性
model string 或 null 選擇性 要用來執行此執行的模型部署名稱識別碼。 在這裡提供的值將會覆寫與助理相關聯的模型部署名稱。 若未提供,則會使用與助理相關聯的模型部署名稱。
instructions string 或 null 選擇性 覆寫助理的預設系統訊息。 這有助於修改個別執行的行為。
tools 陣列或 null 選擇性 覆寫助理可用於此執行的工具。 這有助於修改個別執行的行為。
metadata map 選擇性 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。
temperature 數值 選擇性 要使用的取樣溫度,介於 0 到 2 之間。 0.8 之類的較高值會讓輸出更隨機,而 0.2 之類的較低值會使它更集中且具決定性。 預設 為 1。
top_p 數值 選擇性 核取樣是溫度取樣的替代方法,在此方法中,模型會考慮包含 top_p 機率質量的權杖結果。 因此,0.1 表示只考慮組成前 10% 機率質量的權杖。 一般會建議改變這個值或溫度,但不建議同時改變。 預設 為 1。
stream boolean 選用 若為 true,則會傳回在以伺服器傳送的事件形式執行期間發生,並在執行進入終端狀態且顯示 data: [DONE] 訊息時終止的事件資料流。
max_prompt_tokens 整數 選用 在執行過程中可能使用的完成權杖數目上限。 執行會盡可能在多個執行回合中僅使用指定數目的完成權杖。 如果執行超過指定的完成權杖數目,執行將會以狀態 incomplete 結束。
max_completion_tokens 整數 選用 在執行過程中可能使用的完成權杖數目上限。 執行會盡可能在多個執行回合中僅使用指定數目的完成權杖。 如果執行超過指定的完成權杖數目,執行將會以狀態 incomplete 結束。
truncation_strategy truncationObject 選用 決定在執行之前如何截斷執行緒的控制項。 使用此項目,可控制執行的初始內容視窗。
tool_choice 字串或物件 選用 控制模型所呼叫的工具 (若有)。 none 值表示模型不會呼叫工具,而是會產生訊息。 auto 是預設值,表示模型可以選擇產生訊息或呼叫工具。 指定 {"type": "file_search"}{"type": "function", "function": {"name": "my_function"}} 等特定工具,會強制模型呼叫該工具。
response_format 字串或物件 選用 指定模型必須輸出的格式。 與 GPT-4 Turbo 和 gpt-3.5-turbo-1106 之後的所有 GPT-3.5 Turbo 模型相容。
設定為 { "type": "json_object" } 會啟用 JSON 模式,保證模型產生的訊息為有效的 JSON。
重要:使用 JSON 模式時,您也必須透過系統或使用者訊息指示模型自行產生 JSON。 否則,模型可能會產生一連串無止境的空白字元,直到產生作業達到權杖限制,因而導致要求長時間執行,且看似「停滯」。 另請注意,如果 finish_reason="length" 指出訊息產生超過 max_tokens 或對話超過最大內容長度,則訊息可能會遭部分截斷。

傳回

執行物件。

建立執行緒並執行要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.create_and_run(
  assistant_id="asst_abc123",
  thread={
    "messages": [
      {"role": "user", "content": "Explain deep learning to a 5 year old."}
    ]
  }
)

列出執行

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview

傳回屬於執行緒的執行清單。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 執行所屬的執行緒識別碼。

查詢參數

名稱 類型​​ 必要 描述
limit 整數 (選擇性) 預設值為 20 要傳回的物件數目限制。 限制的範圍可以介於 1 到 100 之間,預設值為 20。
order 字串 (選擇性) 預設值為 desc 依物件的 created_at 時間戳記排序次序。 asc 代表遞增排序,而 desc 代表遞減排序。
after 字串 選擇性 用於分頁的游標。 after 是在清單中定義您的位置的物件識別碼。 例如,如果您提出清單要求並收到 100 個物件 (結尾為 obj_foo),則後續呼叫可以包含 after=obj_foo 來擷取清單的下一頁。
before 字串 選擇性 用於分頁的游標。 before 是在清單中定義您的位置的物件識別碼。 例如,如果您提出清單要求並收到 100 個物件 (結尾為 obj_foo),則後續呼叫可以包含 before=obj_foo 來擷取清單的上一頁。

傳回

執行物件清單。

列出執行要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

runs = client.beta.threads.runs.list(
  "thread_abc123"
)
print(runs)

列出執行步驟

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps?api-version=2024-08-01-preview

傳回屬於某執行的步驟清單。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 執行所屬的執行緒識別碼。
run_id 字串 必要 與所查詢執行步驟相關聯的執行識別碼。

查詢參數

名稱 類型​​ 必要 描述
limit 整數 (選擇性) 預設值為 20 要傳回的物件數目限制。 限制的範圍可以介於 1 到 100 之間,預設值為 20。
order 字串 (選擇性) 預設值為 desc 依物件的 created_at 時間戳記排序次序。 asc 代表遞增排序,而 desc 代表遞減排序。
after 字串 選擇性 用於分頁的游標。 after 是在清單中定義您的位置的物件識別碼。 例如,如果您提出清單要求並收到 100 個物件 (結尾為 obj_foo),則後續呼叫可以包含 after=obj_foo 來擷取清單的下一頁。
before 字串 選擇性 用於分頁的游標。 before 是在清單中定義您的位置的物件識別碼。 例如,如果您提出清單要求並收到 100 個物件 (結尾為 obj_foo),則後續呼叫可以包含 before=obj_foo 來擷取清單的上一頁。

傳回

執行步驟物件清單。

列出執行步驟要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run_steps = client.beta.threads.runs.steps.list(
    thread_id="thread_abc123",
    run_id="run_abc123"
)
print(run_steps)

擷取執行

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.retrieve(
  thread_id="thread_abc123",
  run_id="run_abc123"
)

print(run)

擷取執行。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 已執行之執行緒的識別碼。
run_id 字串 必要 要擷取的執行識別碼。

傳回

符合指定執行識別碼的執行物件。

列出執行步驟要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.retrieve(
  thread_id="thread_abc123",
  run_id="run_abc123"
)
print(run)

擷取執行步驟

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps/{step_id}?api-version=2024-08-01-preview

擷取執行步驟。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 執行和執行步驟所屬的執行緒識別碼。
run_id 字串 必要 執行步驟所屬的執行識別碼。
step_id 字串 必要 要擷取的執行步驟識別碼。

傳回

符合指定識別碼的執行步驟物件。

擷取執行步驟要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run_step = client.beta.threads.runs.steps.retrieve(
    thread_id="thread_abc123",
    run_id="run_abc123",
    step_id="step_abc123"
)
print(run_step)

修改執行

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}?api-version=2024-08-01-preview

修改執行。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 已執行之執行緒的識別碼。
run_id 字串 必要 要修改的執行識別碼。

要求本文

名稱 類型​​ 必要 描述
metadata map 選擇性 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。

傳回

符合指定識別碼的已修改執行物件。

修改執行要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.update(
  thread_id="thread_abc123",
  run_id="run_abc123",
  metadata={"user_id": "user_abc123"},
)
print(run)

提交要執行的工具輸出

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/submit_tool_outputs?api-version=2024-08-01-preview

當執行具有 "requires_action" 狀態,且 required_action.type 為 submit_tool_outputs 時,可使用此端點在工具呼叫全部完成後提交其輸出。 所有輸出必須在單一要求中提交。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 此執行所屬的執行緒識別碼。
run_id 字串 必要 需要工具輸出提交的執行識別碼。

要求本文

名稱 類型​​ 必要 描述
tool_outputs 陣列 必要 要提交輸出的工具清單。
stream boolean 選擇性 若為 true,則會傳回在以伺服器傳送的事件形式執行期間發生,並在執行進入終端狀態且顯示 data: [DONE] 訊息時終止的事件資料流。

傳回

符合指定識別碼的已修改執行物件。

提交要執行的工具輸出要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.submit_tool_outputs(
  thread_id="thread_abc123",
  run_id="run_abc123",
  tool_outputs=[
    {
      "tool_call_id": "call_abc123",
      "output": "28C"
    }
  ]
)
print(run)

取消執行

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/cancel?api-version=2024-08-01-preview

取消處於 in_progress 的執行。

路徑參數

參數 類型​ 必要 描述
thread_id string 必要 此執行所屬的執行緒識別碼。
run_id 字串 必要 要取消的執行識別碼。

傳回

符合指定識別碼的已修改執行物件。

提交要執行的工具輸出要求範例

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-08-01-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

run = client.beta.threads.runs.cancel(
  thread_id="thread_abc123",
  run_id="run_abc123"
)
print(run)

執行物件

代表在執行緒上執行的執行。

名稱 類型​​ 描述
id 字串 識別碼,可在 API 端點中參考。
object 字串 物件類型,一律為 thread.run。
created_at 整數 執行建立時的 Unix 時間戳記 (以秒為單位)。
thread_id 字串 在此執行的過程中執行之執行緒的識別碼。
assistant_id 字串 用來執行此執行的助理識別碼。
status 字串 執行的狀態,可以是 queuedin_progressrequires_actioncancellingcancelledfailedcompletedexpired
required_action 物件或 null 繼續執行所需之動作的詳細資料。 若不需要任何動作,則為 null。
last_error 物件或 null 與此執行相關聯的最後一個錯誤。 如果沒有任何錯誤,則為 null。
expires_at 整數 執行到期時的 Unix 時間戳記 (以秒為單位)。
started_at 整數或 null 執行啟動時的 Unix 時間戳記 (以秒為單位)。
cancelled_at 整數或 null 執行取消時的 Unix 時間戳記 (以秒為單位)。
failed_at 整數或 null 執行失敗時的 Unix 時間戳記 (以秒為單位)。
completed_at 整數或 null 執行完成時的 Unix 時間戳記 (以秒為單位)。
model 字串 助理用於此執行的模型部署名稱。
instructions 字串 助理用於此執行的指示。
tools 陣列 助理用於此執行的工具清單。
file_ids 陣列 助理用於此執行的檔案識別碼清單。
metadata map 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。
tool_choice 字串或物件 控制模型所呼叫的工具 (若有)。 none 表示模型不會呼叫工具,而是會產生訊息。 auto 是預設值,表示模型可以選擇產生訊息或呼叫工具。 指定 {"type": "file_search"}{"type": "function", "function": {"name": "my_function"}} 等特定工具,會強制模型呼叫該工具。
max_prompt_tokens 整數或 null 在執行過程中指定為已使用的提示權杖數目上限。
max_completion_tokens 整數或 null 在執行過程中指定為已使用的完成權杖數目上限。
usage 物件或 null 與執行相關的使用量統計資料。 如果執行並非處於終端狀態 (例如 in_progressqueued),此值將是 null。
truncation_strategy object 決定在執行之前如何截斷執行緒的控制項。
response_format 字串 模型必須輸出的格式。 與 GPT-4 Turbo 和 gpt-3.5-turbo-1106 之後的所有 GPT-3.5 Turbo 模型相容。
tool_choice 字串 控制模型所呼叫的工具 (若有)。 none 表示模型不會呼叫工具,而是會產生訊息。 auto 是預設值,表示模型可以選擇產生訊息或呼叫工具。

執行步驟物件

代表執行中的步驟。

名稱 類型​​ 描述
id 字串 執行步驟的識別碼,可在 API 端點中參考。
object 字串 物件類型,一律為 thread.run.step。
created_at 整數 執行步驟建立時的 Unix 時間戳記 (以秒為單位)。
assistant_id 字串 與執行步驟相關聯的助理識別碼。
thread_id 字串 已執行之執行緒的識別碼。
run_id 字串 此執行步驟所屬的執行識別碼。
type 字串 執行步驟的類型,可以是 message_creation 或 tool_calls。
status 字串 執行步驟的狀態,可以是 in_progresscancelledfailedcompletedexpired
step_details object 執行步驟的詳細資料。
last_error 物件或 null 與此執行步驟相關聯的最後一個錯誤。 如果沒有任何錯誤,則為 null。
expired_at 整數或 null 執行步驟到期時的 Unix 時間戳記 (以秒為單位)。 如果父執行已過期,則會將步驟視為過期。
cancelled_at 整數或 null 執行步驟取消時的 Unix 時間戳記 (以秒為單位)。
failed_at 整數或 null 執行步驟失敗時的 Unix 時間戳記 (以秒為單位)。
completed_at 整數或 null 執行步驟完成時的 Unix 時間戳記 (以秒為單位)。
metadata map 可附加至物件的索引鍵/值組 (16 個為一組)。 這有助於以結構化格式儲存物件的其他相關資訊。 索引鍵的長度上限為 64 個字元,而值的長度上限為 512 個字元。

串流處理執行結果 (預覽)

提交工具輸出之後,串流處理執行或繼續執行的結果。 您可以在下列要求之後串流處理事件:

若要串流處理結果,請在建立執行時傳遞 "stream": true。 回應將會是伺服器傳送的事件資料流。

串流處理範例

from typing_extensions import override
from openai import AssistantEventHandler
 
# First, we create a EventHandler class to define
# how we want to handle the events in the response stream.
 
class EventHandler(AssistantEventHandler):    
  @override
  def on_text_created(self, text) -> None:
    print(f"\nassistant > ", end="", flush=True)
      
  @override
  def on_text_delta(self, delta, snapshot):
    print(delta.value, end="", flush=True)
      
  def on_tool_call_created(self, tool_call):
    print(f"\nassistant > {tool_call.type}\n", flush=True)
  
  def on_tool_call_delta(self, delta, snapshot):
    if delta.type == 'code_interpreter':
      if delta.code_interpreter.input:
        print(delta.code_interpreter.input, end="", flush=True)
      if delta.code_interpreter.outputs:
        print(f"\n\noutput >", flush=True)
        for output in delta.code_interpreter.outputs:
          if output.type == "logs":
            print(f"\n{output.logs}", flush=True)
 
# Then, we use the `create_and_stream` SDK helper 
# with the `EventHandler` class to create the Run 
# and stream the response.
 
with client.beta.threads.runs.stream(
  thread_id=thread.id,
  assistant_id=assistant.id,
  instructions="Please address the user as Jane Doe. The user has a premium account.",
  event_handler=EventHandler(),
) as stream:
  stream.until_done()

截斷物件

決定在執行之前如何截斷執行緒的控制項。 使用此項目,可控制執行的初始內容視窗。

名稱 類型​​ 描述 必要
type 字串 要用於執行緒的截斷策略。 預設值為 auto。 如果設定為 last_messages,執行緒將會截斷為執行緒中的 n 個最新訊息。 設定為 auto 時,將會捨棄執行緒中間的訊息以符合模型的內容長度 max_prompt_tokens Yes
last_messages 整數 建構執行的內容時,執行緒中最新的訊息數目。 No

訊息差異物件

代表訊息差異。 例如,訊息在串流處理期間的任何欄位變更。

名稱 類型​​ 描述
id 字串 訊息的識別碼,可在 API 端點中參考。
object 字串 物件類型,一律為 thread.message.delta
delta object 包含訊息中已變更欄位的差異。

執行步驟差異物件

代表執行步驟差異。 例如,執行步驟在串流處理期間的任何欄位變更。

名稱 類型​​ 描述
id 字串 執行步驟的識別碼,可在 API 端點中參考。
object 字串 物件類型,一律為 thread.run.step.delta
delta object 包含執行步驟中已變更欄位的差異。

助理資料流事件

代表在串流執行時發出的事件。 在伺服器傳送的事件資料流中,每個事件都有 event 和 data 屬性:

event: thread.created
data: {"id": "thread_123", "object": "thread", ...}

每當新物件建立、轉換至新狀態,或局部進行串流處理 (差異) 時,就會發出事件。 例如,在新的執行建立時發出 thread.run.created、在執行完成時發出 thread.run.completed,依此類推。 當助理選擇在執行期間建立訊息時,我們會依序發出 thread.message.created 事件、thread.message.in_progress 事件、多個 thread.message.delta 事件,最後發出 thread.message.completed 事件。

名稱 類型​​ 描述
thread.created data 是執行緒。 在新的執行緒建立時發生。
thread.run.created data 是執行。 在新的執行建立時發生。
thread.run.queued data 是執行。 在執行進入 queued 狀態時發生。
thread.run.in_progress data 是執行。 在執行進入 in_progress 狀態時發生。
thread.run.requires_action data 是執行。 在執行進入 requires_action 狀態時發生。
thread.run.completed data 是執行。 在執行完成時發生。
thread.run.failed data 是執行。 在執行失敗時發生。
thread.run.cancelling data 是執行。 在執行進入 cancelling 狀態時發生。
thread.run.cancelled data 是執行。 在執行取消時發生。
thread.run.expired data 是執行。 在執行到期時發生。
thread.run.step.created data 是執行步驟。 在執行步驟建立時發生。
thread.run.step.in_progress data 是執行步驟。 在執行步驟進入 in_progress 狀態時發生。
thread.run.step.delta data 是執行步驟差異。 在執行步驟的某些部分串流處理時發生。
thread.run.step.completed data 是執行步驟。 在執行步驟完成時發生。
thread.run.step.failed data 是執行步驟。 在執行步驟失敗時發生。
thread.run.step.cancelled data 是執行步驟。 在執行步驟取消時發生。
thread.run.step.expired data 是執行步驟。 在執行步驟到期時發生。
thread.message.created data 是訊息。 在訊息建立時發生。
thread.message.in_progress data 是訊息。 在訊息進入 in_progress 狀態時發生。
thread.message.delta data 是訊息差異。 在訊息的某些部分串流處理時發生。
thread.message.completed data 是訊息。 在訊息完成時發生。
thread.message.incomplete data 是訊息。 在訊息未完成即結束時發生。
error data 是錯誤。 在錯誤發生時發生。 這可能是內部伺服器錯誤或逾時所導致的。
done data[DONE] 在資料流結束時發生。