uploadFile

Upload a file to a provider and get a reference back.

Uploads bytes through any FileUploadAPI (OpenAI Files, Anthropic Files) and returns a handle you can attach to a message. The resulting providerReference reaches OpenAI as file_id and Anthropic as a file source, and is ignored by providers it was not minted for.

let file = try await uploadFile(
  api: OpenAIFiles(),
  data: pdf,
  filename: "report.pdf"
)

Signature

func uploadFile(
    api: any FileUploadAPI,
    data: Data,
    filename: String,
    mediaType: String = "application/octet-stream",
    purpose: String = "user_data"
) async throws -> UploadedFile

Defined in Sources/AI/Providers/FileUploads.swift.

Parameters

ParameterTypeDefault
apiany FileUploadAPIrequired
dataDatarequired
filenameStringrequired
mediaTypeString"application/octet-stream"
purposeString"user_data"

Returns

An UploadedFile.

See also