La generazione di immagini è un carico di lavoro generativo che su Azure OpenAI viene servito principalmente dal modello DALL-E 3. In sede d’esame AI-102 non ti viene chiesto di “disegnare”, ma di scegliere la configurazione corretta di deployment, parametri e moderazione per uno scenario dato. Vediamo le decisioni tecniche che contano.
Deployment del modello
DALL-E 3 si crea come deployment di una risorsa Azure OpenAI dall’interno di Azure AI Foundry (il portale che ha sostituito Azure OpenAI Studio). Punti chiave:
- La disponibilità è regionale: non tutte le region ospitano i modelli immagine, quindi la scelta della region della risorsa vincola la disponibilità del modello.
- L’autenticazione avviene con API key oppure, preferibilmente in produzione, con Microsoft Entra ID (token OAuth via managed identity) per evitare segreti hard-coded.
- L’endpoint REST è
/openai/deployments/{deployment}/images/generations, invocato con il nome del deployment, non con il nome del modello.
Parametri della richiesta
La request di generazione accetta parametri che determinano risoluzione, qualità e resa. Per DALL-E 3:
size:1024x1024(quadrato),1792x1024(landscape) o1024x1792(portrait). Non esistono dimensioni arbitrarie.quality:standardoppurehd. La modalitàhdaumenta dettaglio e coerenza ma costa di più e ha latenza maggiore.style:vivid(immagini iper-realistiche e sature, default) onatural(resa più sobria e naturale).n: per DALL-E 3 deve essere 1 — si genera una sola immagine per richiesta. Per ottenerne più di una servono chiamate multiple.
{
"prompt": "A minimalist isometric datacenter, blue palette",
"size": "1792x1024",
"quality": "hd",
"style": "natural",
"n": 1,
"response_format": "url"
}
Formato di risposta e limiti
Il parametro response_format governa come ricevi l’immagine:
url: l’immagine è salvata su blob storage temporaneo di Azure e ne ricevi un link. L’URL scade dopo 24 ore: va scaricato e ripersistito se serve conservarlo.b64_json: l’immagine arriva inline come stringa base64 nella response. Utile quando non vuoi una dipendenza da URL esterni o lavori in ambienti isolati, al costo di payload più pesanti.
Ricordati inoltre dei rate limit espressi in richieste al minuto sul deployment, e del fatto che la response include il campo revised_prompt (vedi sotto).
Moderazione: Content Safety su input e output
Ogni generazione passa da Azure AI Content Safety, e la moderazione è bidirezionale:
- Sull’input (prompt): se il testo viola la content policy, la richiesta viene rifiutata con un errore (es.
content_policy_violation) e nessuna immagine viene prodotta. - Sull’output (immagine): anche un prompt apparentemente innocuo può produrre un’immagine bloccata dai filtri; in quel caso la generazione fallisce pur senza errore sul prompt.
I filtri coprono categorie come hate, sexual, violence, self-harm. Per casi d’uso legittimi che incappano nei filtri si richiede l’accesso ai modified content filters tramite processo di approvazione Microsoft — non li disattivi da solo.
Prompt engineering e revisione automatica
La qualità dell’output dipende in modo determinante dal prompt engineering: descrizioni ricche di soggetto, stile, composizione e illuminazione producono risultati molto migliori di prompt generici. Un comportamento tipico di DALL-E 3 da conoscere: riscrive automaticamente il prompt per aggiungere dettaglio e applicare policy di sicurezza, e restituisce la versione effettivamente usata nel campo revised_prompt. Puoi limitare parzialmente questa riscrittura istruendo il modello nel prompt stesso, ma non disabilitarla del tutto.
Trappole tipiche d’esame
- Scenario: devi generare 4 varianti di un’immagine con DALL-E 3 in una sola chiamata → Risposta giusta: non è possibile,
ndeve essere 1; effettua 4 richieste separate. - Scenario: l’immagine deve restare disponibile per settimane → Risposta giusta: non affidarti all’URL (scade in 24 ore); scarica il file o usa
b64_jsone ripersisti su storage tuo. - Scenario: un prompt lecito viene bloccato → Risposta giusta: è la moderazione di Content Safety su input/output; per casi legittimi richiedi i modified content filters, non aggiri i filtri.
- Scenario: l’output non corrisponde alla richiesta → Risposta giusta: è un problema di prompt engineering; controlla anche il
revised_promptper capire come è stato riformulato. - Scenario: serve minimizzare i segreti in produzione → Risposta giusta: autentica con Microsoft Entra ID / managed identity, non con API key statiche.