OpenAI 创建上传接口

2026-11-10 17:51 更新

创建上传

post /uploads

创建中间Upload对象,之后可向其添加分片。目前单个Upload最多可接收总计8 GB的数据,并在创建一小时后过期。

完成Upload后,我们会创建一个包含全部已上传分片的File对象。该文件可以像普通File对象一样用于平台的其他功能。

对于某些purpose值,必须指定正确的mime_type。请查阅对应用途支持的MIME类型。

各用途应采用的文件扩展名,请参阅创建File的文档。

返回状态为pending的Upload对象。

请求体参数

媒体类型为 application/json。

  • bytes: integer

正在上传的文件的字节数。

  • filename: string

要上传的文件名称。

  • mime_type: string

文件的MIME类型。

此值必须属于相应文件用途所支持的MIME类型。请查看assistants和vision支持的MIME类型。

  • purpose: "assistants" or "batch" or "fine-tune" or "vision"

已上传文件的预期用途。

参阅文件用途文档。

  • "assistants"

  • "batch"

  • "fine-tune"

  • "vision"

  • expires_after: optional object { anchor, seconds }

文件的过期策略。默认情况下,purpose=batch的文件在30天后过期,其他文件则一直保留,直到被手动删除。

  • anchor: "created_at"

过期策略所依据的起算时间戳。支持的起算点为created_at。

  • "created_at"

  • seconds: integer(int64,范围为 3600 至 2592000 秒)

文件在起算时间之后经过多少秒过期。必须在3600秒(1小时)到2592000秒(30天)之间。

返回值

  • Upload object { id, bytes, created_at, 6 more }

Upload对象可以接收以分片(Part)形式提供的字节块。

  • id: string

Upload对象的唯一标识符,可在API端点中引用。

  • bytes: integer

计划上传的字节数。

  • created_at: integer(Unix 时间戳)

Upload对象创建时的Unix时间戳,单位为秒。

  • expires_at: integer(Unix 时间戳)

Upload对象过期时的Unix时间戳,单位为秒。

  • filename: string

要上传的文件名称。

  • purpose: string

文件的预期用途。可接受的值见此处。

  • status: "pending" or "completed" or "cancelled" or "expired"

Upload对象的状态。

  • "pending"

  • "completed"

  • "cancelled"

  • "expired"

  • file: optional FileObject or null

Upload完成后可使用的File对象。

  • id: string

文件标识符,可在API端点中引用。

  • bytes: integer or null

文件大小,单位为字节。在已完成文件上传的响应中,如果文件大小尚不可用,此值可以为null。

  • created_at: integer(Unix 时间戳)

文件创建时的Unix时间戳,单位为秒。

  • filename: string

文件名称。

  • object: "file"

对象类型,固定为file。

  • "file"

  • purpose: "assistants" or "assistants_output" or "batch" or 5 more

文件的预期用途。支持的值为assistants、assistants_output、batch、batch_output、fine-tune、fine-tune-results、vision和user_data。

  • "assistants"

  • "assistants_output"

  • "batch"

  • "batch_output"

  • "fine-tune"

  • "fine-tune-results"

  • "vision"

  • "user_data"

  • status: "uploaded" or "processed" or "error"

已弃用。文件当前状态,可为uploaded、processed或error。

  • "uploaded"

  • "processed"

  • "error"

  • expires_at: optional integer(Unix 时间戳)

文件过期时的Unix时间戳,单位为秒。在已完成文件上传的响应中,如果未设置过期时间,此值可以为null。

  • status_details: optional string

已弃用。有关微调训练文件未通过验证的原因,请查看fine_tuning.job的error字段。已完成文件上传的响应在未设置这些详情时可以返回null。

  • object: optional "upload"

对象类型,固定为"upload"。

  • "upload"

示例

## [中文] 发送POST请求;将示例API凭证、文件或上传对象标识替换为应用使用的值。
curl https://api.openai.com/v1/uploads \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
          "bytes": 0,
          "filename": "filename",
          "mime_type": "mime_type",
          "purpose": "assistants"
        }'

响应

中文说明:以下为原文配置、命令或事件示例,字段名、枚举、标识符及数值保留。

{
  "id": "id",
  "bytes": 0,
  "created_at": 0,
  "expires_at": 0,
  "filename": "filename",
  "purpose": "purpose",
  "status": "pending",
  "file": {
    "id": "id",
    "bytes": 0,
    "created_at": 0,
    "filename": "filename",
    "object": "file",
    "purpose": "assistants",
    "status": "uploaded",
    "expires_at": 0,
    "status_details": "status_details"
  },
  "object": "upload"
}

示例

## [中文] 发送POST请求;将示例API凭证、文件或上传对象标识替换为应用使用的值。
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",
    "expires_after": {
      "anchor": "created_at",
      "seconds": 3600
    }
  }'

响应

中文说明:以下为原文配置、命令或事件示例,字段名、枚举、标识符及数值保留。

{
  "id": "upload_abc123",
  "object": "upload",
  "bytes": 2147483648,
  "created_at": 1719184911,
  "filename": "training_examples.jsonl",
  "purpose": "fine-tune",
  "status": "pending",
  "expires_at": 1719127296
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号