使用 GPT 操作发送和返回文件
发送文件
POST 请求最多可以包含来自对话的 10 个文件(包括 DALL-E 生成的图像)。它们将作为 URL 发送,有效期为 5 分钟。
对于要成为 POST 请求一部分的文件,必须命名参数,并且描述应向模型解释 API 所需的文件类型和数量。openaiFileIdRefs
该参数将填充 JSON 对象数组。每个对象包含:openaiFileIdRefs
name
文件的名称。这将是 DALL-E 创建时自动生成的名称。id
文件的稳定标识符。mime_type
文件的 MIME 类型。对于用户上传的文件,这是基于文件扩展名。download_link
用于获取文件的 URL,有效期为 5 分钟。
下面是一个包含两个元素的数组示例:openaiFileIdRefs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
{
"name": "dalle-Lh2tg7WuosbyR9hk",
"id": "file-XFlOqJYTPBPwMZE3IopCBv1Z",
"mime_type": "image/webp",
"download_link": "https://files.oaiusercontent.com/file-XFlOqJYTPBPwMZE3IopCBv1Z?se=2024-03-11T20%3A29%3A52Z&sp=r&sv=2021-08-06&sr=b&rscc=max-age%3D31536000%2C%20immutable&rscd=attachment%3B%20filename%3Da580bae6-ea30-478e-a3e2-1f6c06c3e02f.webp&sig=ZPWol5eXACxU1O9azLwRNgKVidCe%2BwgMOc/TdrPGYII%3D"
},
{
"name": "2023 Benefits Booklet.pdf",
"id": "file-s5nX7o4junn2ig0J84r8Q0Ew",
"mime_type": "application/pdf",
"download_link": "https://files.oaiusercontent.com/file-s5nX7o4junn2ig0J84r8Q0Ew?se=2024-03-11T20%3A29%3A52Z&sp=r&sv=2021-08-06&sr=b&rscc=max-age%3D299%2C%20immutable&rscd=attachment%3B%20filename%3D2023%2520Benefits%2520Booklet.pdf&sig=Ivhviy%2BrgoyUjxZ%2BingpwtUwsA4%2BWaRfXy8ru9AfcII%3D"
}
]
操作可以包括用户上传的文件、DALL-E 生成的图像以及 Code Interpreter 创建的文件。
OpenAPI 示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/createWidget:
post:
operationId: createWidget
summary: Creates a widget based on an image.
description: Uploads a file reference using its file id. This file should be an image created by DALL·E or uploaded by the user. JPG, WEBP, and PNG are supported for widget creation.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
openaiFileIdRefs:
type: array
items:
type: string
虽然此模式显示为 type 的数组,但在运行时,它将填充一个 JSON 对象数组,如前所述。openaiFileIdRefs
string
返回文件
请求最多可返回 10 个文件。每个文件最大可达 10 MB,且不能是图像或视频。
这些文件将成为对话的一部分,类似于用户上传它们,这意味着它们可能可供代码解释器、文件搜索使用,并作为后续操作调用的一部分发送。在 Web 应用程序中,用户将看到文件已返回并可以下载它们。
要返回文件,响应的正文必须包含一个参数。此参数必须始终是数组,并且必须通过以下两种方式之一进行填充。openaiFileResponse
内联选项
数组的每个元素都是一个 JSON 对象,其中包含:
name
文件的名称。这将对用户可见。mime_type
文件的 MIME 类型。这用于确定资格以及哪些功能可以访问该文件。content
文件的 base64 编码内容。
下面是一个包含两个元素的 openaiFileResponse 数组示例:
1
2
3
4
5
6
7
8
9
10
11
12
[
{
"name": "example_document.pdf",
"mime_type": "application/pdf",
"content": "JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQpHhD93PQplbmRzdHJlYW0KZW5kb2JqCg=="
},
{
"name": "sample_spreadsheet.csv",
"mime_type": "text/csv",
"content": "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
}
]
OpenAPI 示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/papers:
get:
operationId: findPapers
summary: Retrieve PDFs of relevant academic papers.
description: Provided an academic topic, up to five relevant papers will be returned as PDFs.
parameters:
- in: query
name: topic
required: true
schema:
type: string
description: The topic the papers should be about.
responses:
'200':
description: Zero to five academic paper PDFs
content:
application/json:
schema:
type: object
properties:
openaiFileResponse:
type: array
items:
type: object
properties:
name:
type: string
description: The name of the file.
mime_type:
type: string
description: The MIME type of the file.
content:
type: string
format: byte
description: The content of the file in base64 encoding.
URL 选项
数组的每个元素都是一个引用要下载的文件的 URL。必须设置标头 和,以便可以确定文件名和 MIME 类型。用户将看到文件名。文件的 MIME 类型决定了资格以及哪些功能可以访问该文件。Content-Disposition
Content-Type
提取每个文件有 10 秒的超时时间。
下面是一个包含两个元素的数组示例:openaiFileResponse
1
2
3
4
[
"https://example.com/f/dca89f18-16d4-4a65-8ea2-ededced01646",
"https://example.com/f/01fad6b0-635b-4803-a583-0f678b2e6153"
]
以下是每个 URL 所需的标头示例:
Content-Type: application/pdf
Content-Disposition: attachment; filename="example_document.pdf"
OpenAPI 示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
get:
operationId: findPapers
summary: Retrieve PDFs of relevant academic papers.
description: Provided an academic topic, up to five relevant papers will be returned as PDFs.
parameters:
- in: query
name: topic
required: true
schema:
type: string
description: The topic the papers should be about.
responses:
'200':
description: Zero to five academic paper PDFs
content:
application/json:
schema:
type: object
properties:
openaiFileResponse:
type: array
items:
type: string
format: uri
description: URLs to fetch the files.