Vai al contenuto
kenjtecJournal
Cerca nel Journal

Entra una risposta da chat, esce JSON utilizzabile: il trucco per l’IA nelle app web

JSON rende una risposta dell'IA leggibile per i programmi. Un piccolo contratto con un valore sconosciuto e una visualizzazione sicura nel browser mostra quale lavoro resta da fare dopo.

Lena smista pezzi sciolti in una cassettina portaminuterie; uno scomparto resta vuoto e contrassegnato. Illustrazione creata con l’IA.

Il testo ha senso. Eppure l'applicazione non può recepirlo, perché la quantità compare una volta come “sei”, una volta come 6 e una volta come frase nel commento. Gli output strutturati danno a questo passaggio un contratto. La parte più interessante inizia dove un JSON corretto può essere sbagliato nella sostanza.

Mistral, con i suoi Custom Structured Outputs , utilizza a questo scopo uno schema JSON predefinito. Campi e tipi di dati sono descritti in modo esplicito. Questo organizza l'interfaccia tra modello e applicazione; non sostituisce la verifica che un valore sia effettivamente supportato dal testo di partenza.

Sconosciuto è uno stato a sé

La nostra nota fittizia menziona delle cartelline ma nessuna quantità. L'output dovrebbe conservare questo valore mancante. Se invece inserisci una quantità predefinita, il record di dati sembra più completo e nel farlo perde un'informazione importante.

Uno schema piccolo e neutrale rispetto ai fornitori può avere questo aspetto. Quali parole chiave dello schema siano supportate da una determinata interfaccia va verificato nella sua documentazione attuale prima dell'uso:

{
  "type": "object",
  "required": ["artikel", "menge", "klaerung"],
  "additionalProperties": false,
  "properties": {
    "artikel": {"type": "string"},
    "menge": {"type": ["integer", "null"], "minimum": 0},
    "klaerung": {"type": "string"}
  }
}

required richiede che il campo sia presente. null consente comunque un valore esplicitamente sconosciuto. Il limite inferiore vale per le quantità numeriche. Se una quantità sia ammissibile per il processo d'ordine reale può richiedere ulteriori regole di business. Soprattutto, lo schema risponde alla domanda su quale forma possa aspettarsi l'applicazione a valle.

Un'anteprima senza modello e senza ordine

Puoi già esaminare l'elaborazione con dati di esempio fissi. Salva il seguente snippet HTML, scritto da noi, come file di esempio locale e aprilo nel browser. Visualizza un record di dati ma non effettua alcuna richiesta API e non salva alcun ordine.

<!doctype html>
<meta charset="utf-8">
<p id="ausgabe"></p>
<script>
const daten = { artikel: "Folders", menge: null, klaerung: "Quantity missing" };
function pruefe(d) {
  if (!d || typeof d !== "object" || Array.isArray(d)) throw Error("Object expected");
  const keys = Object.keys(d).sort().join(",");
  if (keys !== "artikel,klaerung,menge") throw Error("Check fields");
  if (typeof d.artikel !== "string" || typeof d.klaerung !== "string")
    throw Error("Text expected");
  if (d.menge !== null && (!Number.isInteger(d.menge) || d.menge < 0))
    throw Error("Check quantity");
}
pruefe(daten);
const menge = daten.menge === null ? "not yet known" : String(daten.menge);
document.querySelector("#ausgabe").textContent =
  daten.artikel + ": " + menge + ". " + daten.klaerung;
</script>

La funzione è un nostro validatore limitato, pensato esattamente per questo schema didattico, non una libreria JSON Schema completa. Cambia a turno la quantità in 6, in -1 e nella stringa “sei”. Poi aggiungi un campo inatteso. Ogni volta osserva la visualizzazione o il messaggio di errore negli strumenti per sviluppatori.

Così puoi testare un passaggio prima che entri in gioco un modello. Sai come l'applicazione gestisce valori noti, sconosciuti e non validi. Una risposta successiva del modello può raggiungere questo snippet solo dopo aver superato le stesse regole.

Verificare formato e significato separatamente

Un 6 formalmente ammesso può comunque essere sbagliato se la nota dice quattro. In un'applicazione reale, quindi, aggiungi dove serve un riferimento alla fonte e verifica i valori importanti rispetto all'input. In caso di note contraddittorie, il processo dovrebbe produrre un punto da chiarire anziché scegliere un numero arbitrario.

L'output usa textContent. Il testo esterno viene così inserito come testo invece di essere interpretato come HTML senza alcun controllo. Le chiavi dei provider non vanno inserite in uno snippet per browser come questo. Una chiamata al modello sarebbe una fase di elaborazione separata, con un proprio accesso e una propria gestione degli errori.

Mostrare lo snippet su un sito web

Se vuoi mostrare esattamente questa piccola visualizzazione su un sito web esistente, la modalità sviluppatore di KENJTEC WebSiteBuilder ai è anche uno dei possibili posti per il tuo codice HTML/JavaScript. Lo snippet verificato viene trasferito a mano; l'anteprima del codice e le tue versioni del codice supportano la revisione successiva. Questo non crea un collegamento nativo con Mistral.

L'intuizione vera e propria resta indipendente dal luogo d'uso: formato del modello, validatore proprio, visualizzazione sicura e decisione nel merito hanno compiti diversi. Chi li tiene separati può recepire un output dell'IA in modo mirato, senza trasformare di nascosto una risposta plausibile in un'azione.

Fonti e stato

Fonti aggiornate al 25 ottobre 2026. Custom Structured Outputs.

Amburgo è il nostro punto di partenza.

L’utilità viaggia con te.

IA pratica da Amburgo, spiegata per tutti.

Articoli salvati