你当前正在访问 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 | 运行的状态,可以是 queued 、in_progress 、requires_action 、cancelling 、cancelled 、failed 、completed 或 expired 。 |
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_progress 、queued ),则此值将为 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_progress 、cancelled 、failed 、completed 或 expired 。 |
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] |
当流式传输结束时发生。 |