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) o 1024x1792 (portrait). Non esistono dimensioni arbitrarie.
  • quality: standard oppure hd. La modalità hd aumenta dettaglio e coerenza ma costa di più e ha latenza maggiore.
  • style: vivid (immagini iper-realistiche e sature, default) o natural (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, n deve 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_json e 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_prompt per 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.