El texto tiene sentido. Aun así, la aplicación no puede adoptarlo, porque la cantidad aparece una vez como «seis», otra como 6 y otra como una frase en el comentario. Las salidas estructuradas dan a esta entrega un contrato. La parte más interesante empieza donde un JSON correcto puede ser erróneo en el fondo.
Mistral, con sus Custom Structured Outputs , utiliza para ello un esquema JSON predefinido. Los campos y los tipos de datos se describen de forma explícita. Esto ordena la interfaz entre el modelo y la aplicación; no sustituye la comprobación de si un valor está realmente respaldado por el texto de origen.
Lo desconocido es un estado propio
Nuestra nota ficticia menciona carpetas, pero ninguna cantidad. La salida debe conservar este valor ausente. Si en su lugar insertas una cantidad predeterminada, el registro de datos parece más completo y, en el proceso, pierde una información importante.
Un esquema pequeño y neutral respecto al proveedor puede tener este aspecto. Qué palabras clave de esquema admite una interfaz concreta debe comprobarse en su documentación actual antes de usarlo:
{
"type": "object",
"required": ["artikel", "menge", "klaerung"],
"additionalProperties": false,
"properties": {
"artikel": {"type": "string"},
"menge": {"type": ["integer", "null"], "minimum": 0},
"klaerung": {"type": "string"}
}
}
required exige que el campo esté presente. null permite, no obstante, un valor explícitamente desconocido. El límite inferior se aplica a las cantidades numéricas. Que una cantidad sea admisible para el proceso de pedido real puede requerir reglas de negocio adicionales. Sobre todo, el esquema responde a qué forma puede esperar la aplicación posterior.
Una vista previa sin modelo y sin pedido
Ya puedes examinar el procesamiento con datos de muestra fijos. Guarda el siguiente fragmento HTML, escrito por nosotros, como archivo de muestra local y ábrelo en el navegador. Muestra un registro de datos, pero no realiza ninguna solicitud a la API ni guarda ningún pedido.
<!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 función es un validador limitado propio para exactamente este esquema didáctico, no una biblioteca completa de JSON Schema. Cambia la cantidad sucesivamente a 6, a -1 y a la cadena «seis». Después añade un campo inesperado. Cada vez, observa la visualización o el mensaje de error en las herramientas para desarrolladores.
Así puedes probar una transición antes de que intervenga un modelo. Sabes cómo trata la aplicación los valores conocidos, desconocidos y no válidos. Una respuesta posterior del modelo solo puede llegar a este fragmento tras superar las mismas reglas.
Comprobar el formato y el significado por separado
Un 6 formalmente permitido puede seguir siendo erróneo si la nota dice cuatro. Por eso, en una aplicación real, añade cuando sea necesario una referencia a la fuente y comprueba los valores importantes con la entrada. Ante notas contradictorias, el proceso debería generar un punto de aclaración en lugar de elegir un número arbitrario.
La salida utiliza textContent. Así, el texto externo se inserta como texto en lugar de interpretarse como HTML sin ninguna comprobación. Las claves de proveedor no deben ir en un fragmento de navegador como este. Una llamada al modelo sería un paso de procesamiento independiente, con su propio acceso y su propia gestión de errores.
Mostrar el fragmento en un sitio web
Si quieres mostrar exactamente esta pequeña visualización en un sitio web existente, el modo de desarrollador de KENJTEC WebSiteBuilder ai también es un lugar posible para tu propio código HTML/JavaScript. El fragmento comprobado se transfiere a mano; la vista previa del código y tus propias versiones de código facilitan la revisión posterior. Esto no crea una conexión nativa con Mistral.
La idea central sigue siendo independiente de dónde se use: el formato del modelo, tu propio validador, la visualización segura y la decisión sobre el contenido tienen funciones distintas. Quien los mantiene separados puede adoptar una salida de IA de forma selectiva sin convertir sin darse cuenta una respuesta plausible en una acción.
Fuentes y estado
Fuentes a fecha de 25 de octubre de 2026. Custom Structured Outputs.

