Function: file()
file(
data,mimeType,options?):UnifiedMessageInput
Defined in: packages/core/src/multimodal.ts:255
Create a file input for documents, PDFs, and other file types.
Accepts binary data (Blob, Uint8Array, ArrayBuffer, base64 string) or an HTTPS URL. When an HTTPS URL is provided, the AI provider fetches the file server-side — the bytes never transit through your application. Works across all providers via the AI SDK. HTTP (non-TLS) URLs are rejected for security.
Parameters
data
string | ArrayBuffer | Uint8Array<ArrayBufferLike> | Blob
mimeType
string
options?
cacheControl?
boolean
Returns
Examples
PDF from blob storage URL (provider fetches directly)
bot.process(combine(
text('Summarize this contract'),
file('https://storage.example.com/contract.pdf', 'application/pdf', { cacheControl: true })
));
PDF from binary data
const pdfBlob = await fetch('report.pdf').then(r => r.blob());
bot.process(combine(text('Summarize this'), file(pdfBlob, 'application/pdf')));
With caching (second call within 5min is ~90% cheaper on Anthropic)
bot.process(file(pdfBuffer, 'application/pdf', { cacheControl: true }));