uploadFile method

  1. @override
Future<FileObject> uploadFile(
  1. FileUploadRequest request
)
override

Upload a file

Uploads a file to the provider's storage. The file can then be referenced in other API calls.

Implementation

@override
Future<FileObject> uploadFile(FileUploadRequest request) async {
  final formData = FormData();

  formData.files.add(
    MapEntry(
      'file',
      MultipartFile.fromBytes(
        request.file,
        filename: request.filename,
      ),
    ),
  );

  if (request.purpose != null) {
    formData.fields.add(MapEntry('purpose', request.purpose!.value));
  }

  final responseData = await client.postForm('files', formData);
  return FileObject.fromOpenAI(responseData);
}