createUpload method

Future<Upload> createUpload({
  1. required int bytes,
  2. required String filename,
  3. required String mimeType,
  4. required FilePurpose purpose,
  5. FileExpiresAfter? expiresAfter,
})

Create an Upload session for large files (multipart).

Implementation

Future<Upload> createUpload({
  required int bytes,
  required String filename,
  required String mimeType,
  required FilePurpose purpose, // e.g. "fine-tune", "assistants", "vision"
  FileExpiresAfter? expiresAfter, // optional TTL
}) async {
  final body = <String, dynamic>{
    'bytes': bytes,
    'filename': filename,
    'mime_type': mimeType,
    'purpose': purpose.toJson(),
    if (expiresAfter != null) 'expires_after': expiresAfter.toJson(),
  };

  final res = await postJson('/uploads', body);
  if (res.statusCode == 200) {
    return Upload.fromJson(jsonDecode(res.body));
  }
  throw OpenAIRequestException.fromHttpResponse(res);
}