你当前正在访问 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?api-version=2024-08-01-preview

创建线程。

请求正文

名称 类型​​ 必需 说明
messages array 可选 用于启动线程的消息列表。
metadata map 可选 按 16 个成组的可附加到对象的键值对。 这对以结构化格式存储对象相关的附加信息很有用。 键的最大长度为 64 个字符,值的最大长度为 512 个字符。
tool_resources object 可选 一组可供此线程中的助手工具使用的资源。 资源特定于工具类型。 例如,code_interpreter 工具需要文件 ID 列表,而 file_search 工具需要矢量存储 ID 列表。

tool_resources 属性

code_interpreter

名称 Type 描述 默认
file_ids array 可供 code_interpreter 工具使用的文件 ID 列表。 最多可以有 20 个与该工具关联的文件。 []

file_search

名称 Type 描述 默认
vector_store_ids array 附加到此线程的矢量存储。 线程最多可以附加 1 个矢量存储。 []
vector_stores array 一个帮助程序,用于创建具有 file_ids 的矢量存储,并将其附加到此线程。 线程最多可以附加 1 个矢量存储。 []

返回

一个线程对象

示例:创建线程请求

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")
    )

empty_thread = client.beta.threads.create()
print(empty_thread)

检索线程

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

检索线程。

路径参数

参数 类型​​ 必需 说明
thread_id 字符串 必须 要检索的线程的 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")
    )

my_thread = client.beta.threads.retrieve("thread_abc123")
print(my_thread)

修改线程

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

修改线程。

路径参数

参数 类型​​ 必需 说明
thread_id 字符串 必须 要修改的线程的 ID。

请求正文

名称 类型​​ 必需 说明
metadata map 可选 按 16 个成组的可附加到对象的键值对。 这对以结构化格式存储对象相关的附加信息很有用。 键的最大长度为 64 个字符,值的最大长度为 512 个字符。
tool_resources object 可选 一组可供此线程中的助手工具使用的资源。 资源特定于工具类型。 例如,code_interpreter 工具需要文件 ID 列表,而 file_search 工具需要矢量存储 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")
    )

my_updated_thread = client.beta.threads.update(
  "thread_abc123",
  metadata={
    "modified": "true",
    "user": "abc123"
  }
)
print(my_updated_thread)

删除线程

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

删除线程。

路径参数

参数 类型​​ 必需 说明
thread_id 字符串 必须 要删除的线程的 ID。

返回

删除状态。

示例:删除线程请求

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

response = client.beta.threads.delete("thread_abc123")
print(response)

线程对象

字段 类型​​ 说明
id string 可以在 API 终结点中引用的标识符。
object string 对象类型,始终为线程。
created_at integer 创建线程时的 Unix 时间戳(以秒为单位)。
metadata map 按 16 个成组的可附加到对象的键值对。 这对以结构化格式存储对象相关的附加信息很有用。 键的最大长度为 64 个字符,值的最大长度为 512 个字符。