La IA está cada vez más presente en nuestras aplicaciones. Es capaz de generar JSON complejo, extraer datos de documentos o de dar respuestas estructuradas. Pero hay un problema: la IA puede cometer errores, omitir campos o incluso inventarse información.
Aquí es donde un esquema JSON se vuelve esencial. Actúa como un marco para verificar que las respuestas de la IA sigan estrictamente la estructura esperada, garantizando que sus datos sigan siendo fiables y utilizables en sus aplicaciones 4D.
Por qué es importante el esquema JSON al utilizar IA
Un esquema JSON le permite:
- Validar automáticamente las respuestas generadas por la IA
- Detectar errores, inconsistencias o campos que faltan
- Reenviar estos errores a la IA para su corrección automática
- Garantizar datos utilizables, incluso si el modelo evoluciona o comete errores
En la práctica, el esquema actúa como una red de seguridad: sigue beneficiándote del poder de la IA al tiempo que mantiene un formato predecible y controlado para sus aplicaciones 4D.
Uso de JSON Schema con 4D AI Kit
4D AI Kit incluye una función muy útil: la posibilidad de pedir a la IA que devuelva una respuesta JSON estructurada según un esquema específico.
Esto le permite definir exactamente:
- los campos esperados,
- sus tipos,
- e incluso ciertas restricciones (valores permitidos, rangos numéricos, etc.).
Este enfoque se detalla en dos entradas del blog de 4D: una centrada en las salidas estructuradas, que indican explícitamente a la IA que cumpla con un formato de respuesta predefinido, y otra que presenta el analizador JSON Schema Draft 2020-12, compatible con el estándar más reciente y que permite una validación más estricta y expresiva del JSON generado por la IA.
Ejemplo: análisis de texto y extracción de entidades
Imagine que está utilizando una API de análisis de texto para reconocer entidades en una frase. Una respuesta de IA podría tener este aspecto:
{
"model": "gpt-text-analyzer-v2",
"input": "Steve Jobs fundó Apple en Cupertino.",
"entities": [
{ "type": "PERSON", "text": "Steve Jobs", "confidence": 0.98 },
{ "type": "ORG", "text": "Apple", "confidence": 0.95 },
{ "type": "LOCATION", "text": "Cupertino", "confidence": 0.93 }
]
}
El esquema JSON de validación
Para garantizar que la IA respete esta estructura, puede definir un esquema JSON compatible con el borrador 2020-12:
{
"$schema": "https://json-schema.org/draft/2020-12/schema#",
"title": "Respuesta del análisis de texto de IA",
"type": "object",
"properties": {
"model": { "type": "string" },
"input": { "type": "string" },
"entities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": { "type": "string", "enum": ["PERSON", "ORG", "LOCATION"] },
"text": { "type": "string" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 }
},
"required": ["type", "text", "confidence"]
}
}
},
"required": ["model", "input", "entities"]
}
Este esquema garantiza la estructura de los datos devueltos por la IA. JSON Schema no valida la relevancia semántica de las respuestas, pero impone un marco estricto que permite que sus aplicaciones 4D funcionen con datos fiables y utilizables.
La indicación del sistema: enmarcar el comportamiento de la IA
La indicación del sistema es esencial. Define el papel de la IA e impone una disciplina estricta en el formato de salida.
Eres un motor de análisis de texto de IA. Tu tarea consiste en analizar el texto proporcionado y extraer entidades nombradas. Debes identificar: - personas (PERSON) - organizaciones (ORG) - ubicaciones (LOCATION) Devuelve el resultado estrictamente como un objeto JSON que siga el esquema JSON proporcionado. No añadas ningún campo adicional. No añadas explicaciones ni texto fuera del JSON. Si no se encuentra ninguna entidad, devuelve una matriz vacía para «entities».
Esta indicación:
- define claramente la tarea,
- reafirma explícitamente las restricciones,
- limita en gran medida las desviaciones creativas del modelo.
Implementación con 4D AI Kit
Veamos ahora cómo implementar este mecanismo del lado de 4D utilizando el 4D AI Kit.
Configuración del chat y del esquema
En este ejemplo, el esquema JSON y la indicación del sistema se almacenan en los recursos de la aplicación y se pasan explícitamente al modelo durante la llamada.
// Retrieve the system prompt
var $systemPrompt:=File("/RESOURCES/prompt.txt").getText()
// Retrieve the JSON Schema to validate the AI response
var $schema:=JSON Parse(File("/RESOURCES/schema.json").getText())
// Define chat parameters
var $params:=cs.AIKit.OpenAIChatCompletionsParameters.new()
$params.model:="gpt-text-analyzer-v2"
$params.response_format:={\
type: "json_schema"; \
json_schema: {name: "analyse_schema"; schema: $schema}}
// Create AI chat helper
var $ai:=cs.AIKit.OpenAI.new($openAIKey)
var $chatHelper:=$ai.chat.create($systemPrompt; $params)
Con esta configuración, la IA sabe exactamente qué formato debe generar, lo que reduce significativamente los errores.
Llamada a la IA
Una vez configurados el esquema y el formato de respuesta, solo queda llamar a la IA y proporcionar el texto a analizar.
// Send the user prompt to the AI
var $userPrompt:="Steve Jobs founded Apple in Cupertino."
var $result:=$chatHelper.prompt($userPrompt)
// Convert AI response to object
var $response:=JSON Parse($result.choice.message.text)
Validación de la respuesta de la IA y gestión de errores
Incluso cuando se proporciona un esquema, es esencial validar la respuesta del lado de 4D antes de utilizarla. La IA puede generar una respuesta no válida debido a truncamiento, errores de generación o un contexto ambiguo.
// Validate the JSON against the schema
var $validation:=JSON Validate($response; $schema)
// Handle validation errors
If (Not($validation.success))
// If the JSON is invalid, build an error prompt to send back to the AI
var $errorPrompt:=\
"The JSON you returned does not match the expected schema. "+\
"Here are the validation errors:\n"+\
JSON Stringify($validation.errors)+\
"\nPlease return a corrected JSON that strictly follows the schema."
// Resend the prompt (or send error prompt) to let AI correct its output
$result:=$chatHelper.prompt($userPrompt)
Else
// If the JSON is valid, continue with your processing
// e.g., save to database, display in form, or trigger further actions
End if
Este mecanismo permite implementar un bucle IA → 4D → IA:
- La IA genera una respuesta JSON.
- 4D valida el JSON con respecto al esquema.
- Si se detecta un error, 4D devuelve la información que falta o es incorrecta a la IA.
- La IA corrige la respuesta y devuelve un JSON válido.
Este bucle de retroalimentación automático garantiza que sus datos sigan siendo fiables, incluso cuando la IA comete errores.
Ventajas concretas
- JSON generado por IA que es fiable y coherente
- Corrección automática de errores a través del bucle de validación
- Seguridad y control en todas sus API → canalizaciones de IA
- Datos siempre utilizables para sus formularios, procesamiento o análisis
Conclusión
La integración de JSON Schema con 4D AI Kit transforma la forma en que utiliza la IA. Pasará de un flujo de trabajo de «IA impredecible» a un proceso predecible, controlado, robusto y automatizado.
Al combinar salidas estructuradas, JSON Schema y la validación del lado de 4D, se aprovecha al máximo el poder de la IA al tiempo que se garantizan datos fiables, seguros y listos para la producción.
Este enfoque va mucho más allá del simple análisis de texto. El mismo patrón se puede aplicar a cualquier escenario en el que los datos generados por IA deban integrarse de forma segura en una aplicación 4D.
El esquema JSON no hace que la IA sea «inteligente», pero la hace predecible.
Por el momento, no se pueden publicar comentarios en esta entrada.