你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

助手 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 字符串 必须 要为其创建消息的线程的 ID。

请求正文

名称 类型​​ 必需 说明
assistant_id 字符串 必须 用于执行此运行的助手的 ID。
model string 或 null 可选 用于执行此运行的模型部署名称。 如果此处提供了一个值,它将替代与助手关联的模型部署名称。 否则,将使用与助手关联的模型部署名称。
instructions string 或 null 可选 替代助手的指令。 这对按运行修改行为很有用。
additional_instructions string 可选 在运行指令的末尾追加其他指令。 这对不替代其他指令的情况下按运行修改行为很有用。
additional_messages array 可选 在创建运行之前,将其他消息添加到线程。
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 integer 可选 在运行过程中可能使用的补全令牌的最大数目。 在多轮运行中,运行将尽最大可能地只使用指定的补全令牌数。 如果运行超过指定的补全令牌数,则运行将以状态 incomplete 结束。
max_completion_tokens integer 可选 在运行过程中可能使用的补全令牌的最大数目。 在多轮运行中,运行将尽最大可能地只使用指定的补全令牌数。 如果运行超过指定的补全令牌数,则运行将以状态 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 字符串 必须 用于执行此运行的助手的 ID。
thread 对象 (object) 可选
model string 或 null 可选 用于执行此运行的模型部署名称的 ID。 如果此处提供了一个值,它将替代与助手关联的模型部署名称。 否则,将使用与助手关联的模型部署名称。
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 integer 可选 在运行过程中可能使用的补全令牌的最大数目。 在多轮运行中,运行将尽最大可能地只使用指定的补全令牌数。 如果运行超过指定的补全令牌数,则运行将以状态 incomplete 结束。
max_completion_tokens integer 可选 在运行过程中可能使用的补全令牌的最大数目。 在多轮运行中,运行将尽最大可能地只使用指定的补全令牌数。 如果运行超过指定的补全令牌数,则运行将以状态 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 字符串 必须 运行所属的线程的 ID。

查询参数

名称 类型​​ 必需 说明
limit integer 可选 - 默认为 20 要返回的对象数的限制。 限制可以介于 1 和 100 之间,默认值为 20。
order string 可选 - 默认为 desc 按对象的 created_at 时间戳顺序。 asc 表示升序,desc 表示降序。
after string 可选 用于分页的游标。 之后是一个对象 ID,用于定义你在列表中的位置。 例如,如果你发出一个列表请求并收到 100 个对象,以 obj_foo 结尾,那么你的后续调用可以包含 after=obj_foo,以提取列表的下一页。
before string 可选 用于分页的游标。 之前是一个对象 ID,用于定义你在列表中的位置。 例如,如果你发出一个列表请求并收到 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 字符串 必须 运行所属的线程的 ID。
run_id string 必须 与要查询的运行步骤关联的运行的 ID。

Query parameters

名称 类型​​ 必需 说明
limit integer 可选 - 默认为 20 要返回的对象数的限制。 限制可以介于 1 和 100 之间,默认值为 20。
order string 可选 - 默认为 desc 按对象的 created_at 时间戳顺序。 asc 表示升序,desc 表示降序。
after string 可选 用于分页的游标。 之后是一个对象 ID,用于定义你在列表中的位置。 例如,如果你发出一个列表请求并收到 100 个对象,以 obj_foo 结尾,那么你的后续调用可以包含 after=obj_foo,以提取列表的下一页。
before string 可选 用于分页的游标。 之前是一个对象 ID,用于定义你在列表中的位置。 例如,如果你发出一个列表请求并收到 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 字符串 必须 运行的线程的 ID。
run_id string 必须 要检索的运行的 ID。

返回

与指定的运行 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 字符串 必须 运行和运行步骤所属的线程的 ID。
run_id string 必须 运行步骤所属的运行的 ID。
step_id string 必须 要检索的运行步骤的 ID。

返回

与指定的 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 字符串 必须 运行的线程的 ID。
run_id string 必须 要修改的运行的 ID。

请求正文

名称 类型​​ 必需 说明
metadata map 可选 按 16 个成组的可附加到对象的键值对。 这对以结构化格式存储对象相关的附加信息很有用。 键的最大长度为 64 个字符,值的最大长度为 512 个字符。

返回

与指定的 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.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 字符串 必须 此运行所属的线程的 ID。
run_id string 必须 需要工具输出提交的运行的 ID。

请求正文

名称 类型​​ 必需 说明
tool_outputs array 必须 其输出正在提交的工具列表。
stream boolean 可选 如果为 true,则返回在运行为服务器发送事件期间发生的事件流,在运行进入附带 data: [DONE] 消息的终端状态时终止。

返回

与指定的 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.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 字符串 必须 此运行所属的线程的 ID。
run_id string 必须 要取消的运行的 ID。

返回

与指定的 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)

运行对象

表示在线程上运行的执行。

名称 Type 说明
id string 可以在 API 终结点中引用的标识符。
object string 对象类型,始终为 thread.run。
created_at integer 创建运行时的 Unix 时间戳(以秒为单位)。
thread_id string 作为此运行的一部分执行的线程的 ID。
assistant_id string 用于执行此运行的助手的 ID。
status string 运行的状态,可以是 queuedin_progressrequires_actioncancellingcancelledfailedcompletedexpired
required_action 对象或 null 有关继续运行所需的操作的详细信息。 如果不需要任何操作,则为 null。
last_error 对象或 null 与此运行关联的最后一个错误。 如果没有错误,则为 null。
expires_at integer 运行过期时的 Unix 时间戳(以秒为单位)。
started_at 整数或 null 运行启动时的 Unix 时间戳(以秒为单位)。
cancelled_at 整数或 null 运行取消时的 Unix 时间戳(以秒为单位)。
failed_at 整数或 null 运行失败时的 Unix 时间戳(以秒为单位)。
completed_at 整数或 null 运行完成时的 Unix 时间戳(以秒为单位)。
model string 助手用于此运行的模型部署名称。
instructions string 助手用于此运行的指令。
tools array 助手用于此运行的工具列表。
file_ids array 助手用于此运行的文件 ID 列表。
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 string 模型必须输出的格式。 与 GPT-4 Turbo 和自 gpt-3.5-turbo-1106 起的所有 GPT-3.5 Turbo 型号兼容。
tool_choice string 控制模型调用哪些工具(如有)。 none 表示模型不会调用任何工具,而是生成消息。 auto 是默认值,表示模型可以在生成消息和调用工具之间进行选择。

运行步骤对象

表示运行执行中的步骤。

名称 Type 说明
id string 可在 API 终结点中引用的运行步骤标识符。
object string 对象类型,始终为 thread.run.step。
created_at integer 创建运行步骤时的 Unix 时间戳(以秒为单位)。
assistant_id string 与运行步骤关联的助手的 ID。
thread_id string 运行的线程的 ID。
run_id string 此运行步骤所属的运行的 ID。
type string 运行步骤的类型,可以是 message_creation 或 tool_calls。
status string 运行步骤的状态,可以是 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 描述 必须
type string 用于线程的截断策略。 默认为 auto。 如果设置为 last_messages,则线程将被截断为线程中的 n 条最新消息。 设置为 auto 时,将删除线程中间的消息,以适应模型的上下文长度 max_prompt_tokens
last_messages integer 构造运行上下文时线程中的最新消息数。

消息增量对象

表示消息增量。 例如,流式传输期间任何消息字段的更改。

名称 Type 说明
id string 消息标识符,可在 API 终结点中引用。
object string 始终为 thread.message.delta 的对象类型。
delta object 增量包含消息中有所更改的字段。

运行步骤增量对象

表示运行步骤增量。 例如,流式传输期间任何运行步骤字段的更改。

名称 Type 说明
id string 可在 API 终结点中引用的运行步骤标识符。
object string 始终为 thread.run.step.delta 的对象类型。
delta object 增量包含运行步骤中有所更改的字段。

助手流事件

表示流式传输运行时发出的事件。 服务器发送事件流中的每个事件都有一个事件和数据属性:

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

每当创建新对象、转换为新状态或部分流式传输(增量)时,事件会被发出。 例如,创建新运行时发出 thread.run.created ,运行完成后发出 thread.run.completed 等。 当助手选择在运行期间创建消息时,将发出 thread.message.created 事件、thread.message.in_progress 事件和许多线程。message.delta 事件,以及 thread.message.completed 事件。

名称 Type 描述
thread.created data 是一个线程。 创建新线程时发生。
thread.run.created data 是一个运行。 创建新运行时发生。
thread.run.queued data 是一个运行。 当运行变为队列状态时发生。
thread.run.in_progress data 是一个运行。 当运行变为进行中状态时发生。
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 是一条消息。 当消息变为进行中状态时发生。
thread.message.delta data 是消息增量。 当流式传输部分消息时发生。
thread.message.completed data 是一条消息。 当消息完成时发生。
thread.message.incomplete data 是一条消息。 当消息在完成前结束时发生。
error data 是错误。 当出现错误时发生。 这可能是内部服务器错误或超时导致的。
done data[DONE] 当流式传输结束时发生。