线程
创建助手可以与之交互的线程。
相关指南:助手概述
注意:"Beta"是一个标签,用于表示该功能处于测试阶段。
创建线程
创建一个线程。
请求体:
- messages(可选):一个消息列表,用于启动线程。
- tool_resources(可选):一个对象或空值,表示在该线程中助手工具可以使用的资源。资源的类型取决于工具的类型。例如,- code_interpreter工具需要一个文件ID列表,而- file_search工具需要一个向量存储ID列表。
- metadata(可选):最多16个键值对,可以附加到对象上。这对于以结构化格式存储有关对象的附加信息非常有用。键最多可以是64个字符长,值最多可以是512个字符长。
返回值:
一个线程对象。
示例请求:
使用curl发送一个空的创建线程请求:
curl https://api.openai.com/v1/threads \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Beta: assistants=v2" \
  -d ''
示例响应:
{
  "id": "thread_abc123",
  "object": "thread",
  "created_at": 1699012949,
  "metadata": {},
  "tool_resources": {}
}
注意:
- "Beta"是一个标签,表示该功能处于测试阶段。
- 在请求头中,$OPENAI_API_KEY是一个占位符,需要替换为您的OpenAI API密钥。
- 在请求头中,OpenAI-Beta: assistants=v2表示您正在使用Assistants API的第2版。
检索线程
检索一个线程。
路径参数
- thread_id(必需):要检索的线程的ID。
返回值
匹配指定ID的线程对象。
示例请求
使用curl检索一个线程:
curl https://api.openai.com/v1/threads/thread_abc123 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Beta: assistants=v2"
示例响应
{
  "id": "thread_abc123",
  "object": "thread",
  "created_at": 1699014083,
  "metadata": {},
  "tool_resources": {
    "code_interpreter": {
      "file_ids": []
    }
  }
}
注意:
- "Beta"是一个标签,表示该功能处于测试阶段。
- 在请求头中,$OPENAI_API_KEY是一个占位符,需要替换为您的OpenAI API密钥。
- 在请求头中,OpenAI-Beta: assistants=v2表示您正在使用Assistants API的第2版。
修改线程
修改一个线程。
路径参数:
- thread_id(必需):要修改的线程的ID。只能修改- metadata。
请求体:
- tool_resources(可选):一个对象或空值,表示在该线程中助手工具可以使用的资源。资源的类型取决于工具的类型。例如,- code_interpreter工具需要一个文件ID列表,而- file_search工具需要一个向量存储ID列表。
- metadata(可选):最多16个键值对,可以附加到对象上。这对于以结构化格式存储有关对象的附加信息非常有用。键最多可以是64个字符长,值最多可以是512个字符长。
返回值:
匹配指定ID的修改后的线程对象。
示例请求:
使用curl修改一个线程的元数据:
curl https://api.openai.com/v1/threads/thread_abc123 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Beta: assistants=v2" \
  -d '{
      "metadata": {
        "modified": "true",
        "user": "abc123"
      }
    }'
示例响应:
{
  "id": "thread_abc123",
  "object": "thread",
  "created_at": 1699014083,
  "metadata": {
    "modified": "true",
    "user": "abc123"
  },
  "tool_resources": {}
}
注意:
- "Beta"是一个标签,表示该功能处于测试阶段。
- 在请求头中,$OPENAI_API_KEY是一个占位符,需要替换为您的OpenAI API密钥。
- 在请求头中,OpenAI-Beta: assistants=v2表示您正在使用Assistants API的第2版。
- 只能修改线程的metadata字段,其他字段是不可修改的。
删除线程
删除一个线程。
delete https://api.openai.com/v1/threads/{thread_id}路径参数
| 名称 | 类型 | 必填 | 描述 | 
|---|---|---|---|
| thread_id | string | 是 | 要删除的线程的 ID。 | 
返回值
删除状态。
示例请求
使用 curl 发送请求:
curl https://api.openai.com/v1/threads/thread_abc123 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Beta: assistants=v2" \
  -X DELETE
响应
成功删除线程后,将返回如下 JSON 对象:
{
  "id": "thread_abc123",
  "object": "thread.deleted",
  "deleted": true
}
线程对象
表示包含消息的线程。
id
- 类型: 字符串
- 描述: 可以在 API 端点中引用的标识符。
object
- 类型: 字符串
- 描述: 对象类型,总是为 thread。
created_at
- 类型: 整数
- 描述: 线程创建时的 Unix 时间戳(秒)。
tool_resources
- 类型: 对象或空
- 描述: 在此线程中提供给助手工具的资源集。资源根据工具的类型具体化。例如,code_interpreter工具需要一个文件 ID 列表,而file_search工具需要一个向量存储 ID 列表。
metadata
- 类型: 映射
- 描述: 可以附加到对象的 16 对键值对集合。这对于以结构化格式存储有关对象的附加信息非常有用。键的最大长度为 64 个字符,值的最大长度为 512 个字符。
{
  "id": "thread_abc123",
  "object": "thread",
  "created_at": 1698107661,
  "metadata": {}
}