上传
允许您分多个部分上传大型文件。
创建上传
POST https://api.openai.com/v1/uploads
创建可向其添加segments的中间 Upload 对象。目前,Upload 最多可以接受 8 GB 的总容量,并在您创建后一小时后过期。
完成 Upload 后,我们将创建一个 File 对象,其中包含您上传的所有段。此 File 可在我们平台的其余部分作为常规 File 对象使用。
肯定地purpose
s,则正确的mime_type
必须指定。请参阅文档,了解适用于您的用例的 MIME 类型:
有关每种用途的正确文件扩展名的指导,请遵循有关创建文件的文档。
请求正文
上传文件的预期用途。
请参阅有关文件目的的文档。
返回
状态为pending
.
示例请求
1
2
3
4
5
6
7
8
curl https://api.openai.com/v1/uploads \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"purpose": "fine-tune",
"filename": "training_examples.jsonl",
"bytes": 2147483648,
"mime_type": "text/jsonl"
}'
响应
1
2
3
4
5
6
7
8
9
10
{
"id": "upload_abc123",
"object": "upload",
"bytes": 2147483648,
"created_at": 1719184911,
"filename": "training_examples.jsonl",
"purpose": "fine-tune",
"status": "pending",
"expires_at": 1719127296
}
添加上传部分
发布 https://api.openai.com/v1/uploads/{upload_id}/parts
将 Part 添加到 Upload 对象。Part 表示您尝试上传的文件中的字节块。
每个段最大为 64 MB,您可以添加段,直到达到 8 GB 的上传最大值。
可以并行添加多个 Part。您可以在完成上传时决定 Part 的预期顺序。
返回
upload Part 对象。
示例请求
1
2
curl https://api.openai.com/v1/uploads/upload_abc123/parts
-F data="aHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS91cGxvYWRz..."
响应
1
2
3
4
5
6
{
"id": "part_def456",
"object": "upload.part",
"created_at": 1719185911,
"upload_id": "upload_abc123"
}
完成上传
post https://api.openai.com/v1/uploads/{upload_id}/complete
完成上传。
在返回的 Upload 对象中,有一个嵌套的 File 对象,该对象已准备好在平台的其余部分使用。
您可以通过传入 Part ID 的有序列表来指定 Part 的顺序。
完成时上传的字节数必须与创建 Upload 对象时最初指定的字节数匹配。上传完成后,不得添加任何段。
返回
状态为completed
加上一个额外的file
属性,其中包含创建的可用 File 对象。
示例请求
1
2
3
4
curl https://api.openai.com/v1/uploads/upload_abc123/complete
-d '{
"part_ids": ["part_def456", "part_ghi789"]
}'
响应
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"id": "upload_abc123",
"object": "upload",
"bytes": 2147483648,
"created_at": 1719184911,
"filename": "training_examples.jsonl",
"purpose": "fine-tune",
"status": "completed",
"expires_at": 1719127296,
"file": {
"id": "file-xyz321",
"object": "file",
"bytes": 2147483648,
"created_at": 1719186911,
"filename": "training_examples.jsonl",
"purpose": "fine-tune",
}
}
取消上传
示例请求
curl https://api.openai.com/v1/uploads/upload_abc123/cancel
响应
1
2
3
4
5
6
7
8
9
10
{
"id": "upload_abc123",
"object": "upload",
"bytes": 2147483648,
"created_at": 1719184911,
"filename": "training_examples.jsonl",
"purpose": "fine-tune",
"status": "cancelled",
"expires_at": 1719127296
}
upload 对象
Upload 对象可以接受 Part 形式的字节块。
文件的预期用途。请参阅此处了解可接受的值。
OBJECT 上传对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"id": "upload_abc123",
"object": "upload",
"bytes": 2147483648,
"created_at": 1719184911,
"filename": "training_examples.jsonl",
"purpose": "fine-tune",
"status": "completed",
"expires_at": 1719127296,
"file": {
"id": "file-xyz321",
"object": "file",
"bytes": 2147483648,
"created_at": 1719186911,
"filename": "training_examples.jsonl",
"purpose": "fine-tune",
}
}
上传段对象
upload Part 表示我们可以添加到 Upload 对象的字节块。
OBJECT 上传段对象
1
2
3
4
5
6
{
"id": "part_def456",
"object": "upload.part",
"created_at": 1719186911,
"upload_id": "upload_abc123"
}