线程
创建助手可以与之交互的线程。
相关指南:助手概述
注意:"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": {}
}