Immagini
Invii un'immagine insieme al testo su tai-4.1 e tai-4.2, usando la stessa forma ad array di contenuto accettata dai modelli con capacità di visione di OpenAI.
Quali modelli
Solo tai-4.1 e tai-4.2 accettano input di immagini; consulti il quadro completo nella pagina Modelli. Inviare un'immagine a un qualsiasi altro modello non genera direttamente un errore, ma l'immagine viene ignorata silenziosamente e viene considerata solo la parte testuale del messaggio, quindi ricontrolli il campo model se la comprensione dell'immagine non compare nella risposta come previsto.
La struttura del contenuto
Per un messaggio senza immagini, content è una semplice stringa. Per allegare un'immagine, content diventa invece un array di parti tipizzate, combinando una o più parti text con una o più parti image_url:
{
"role": "user",
"content": [
{"type": "text", "text": "Bu görselde ne var?"},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBORw0KGgoAAAANSU..."}}
]
}
image_url.url richiede un data URI codificato in base64, non un semplice link a un'immagine ospitata; l'API non recupera un URL remoto per suo conto. Codifichi i byte dell'immagine in base64, li preceda con il tipo MIME corretto, e invii il tutto come valore di url.
# Python: costruzione del data URI da un file locale import base64 with open("photo.jpg", "rb") as f: b64 = base64.b64encode(f.read()).decode() data_url = f"data:image/jpeg;base64,{b64}"
Formati supportati
PNG, JPEG e WebP sono tutti accettati. Usi il tipo MIME corrispondente nel prefisso del data URI (image/png, image/jpeg, image/webp) affinché l'immagine venga decodificata correttamente.
Dimensione
Non c'è un limite rigido di documento imposto lato client rispetto al quale calcolare, ma immagini molto grandi aggiungono latenza reale (la codifica base64 aumenta la dimensione di circa un terzo, e l'intero corpo della richiesta deve essere trasmesso ed elaborato prima che la generazione inizi) e le richieste molto grandi hanno più probabilità di essere rifiutate dall'infrastruttura intermedia ben prima di raggiungere qualsiasi limite lato modello. Ridimensionare un'immagine alla risoluzione effettivamente utile per l'attività, invece di inviare un originale a piena risoluzione, è di solito la scelta giusta e raramente fa perdere qualcosa che il modello avrebbe comunque usato.
Più immagini in un unico messaggio
L'array content di un singolo messaggio può includere più di una parte image_url, insieme a tanto o poco text quanto necessario:
{
"role": "user",
"content": [
{"type": "text", "text": "Bu iki görsel arasındaki fark ne?"},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}
]
}
Combinato con la chiamata di strumenti
Un'immagine e tools possono essere presenti nella stessa richiesta; il modello può chiamare uno strumento basandosi in parte su ciò che vede in un'immagine allegata, allo stesso modo in cui lo farebbe basandosi solo sul testo. Vedere Chiamata di strumenti per come funziona il ciclo di chiamata e risposta.