Hacer que responda en una forma fija
La salida estructurada consiste en hacer que un LLM dé la respuesta en una forma fija como JSON (un formato de datos que coloca nombres de campos y valores con una escritura fija). Para meter la respuesta en una tabla, leerla con un programa o pasarla a otro sistema, hace falta que la forma sea la misma cada vez. Por ejemplo, el trabajo de sacar de una consulta 3 campos: el tipo, si es urgente y el nombre del producto.
Solo con pedir en la instrucción “responde en JSON”, la forma ya tiende a ser regular. Pero según la explicación de Anthropic, con eso solo pueden aparecer errores de escritura, faltar campos obligatorios o no coincidir los tipos.
Cómo se indica la forma
Muchas API tienen una función para indicar la forma de la respuesta. Se pasan como esquema (la definición de la forma) los nombres de los campos, sus tipos (número o texto) y la lista de valores posibles. El modelo queda limitado a escribir solo respuestas que encajan en esa forma.
OpenAI dice que esta función hace que la respuesta siga siempre el esquema dado y evita que falten campos obligatorios o que aparezcan valores fuera de las opciones fijadas. Anthropic y Google también tienen funciones con el mismo fin. Cada servicio pone límites a la forma de escribir el esquema que se puede usar.
Aunque la forma sea correcta, comprueba el contenido
Que la forma se respete no significa que el contenido sea correcto. La guía de Google recomienda comprobar siempre los valores con tu propio programa, aunque la salida sea un JSON con la sintaxis correcta. También pide prepararse para respuestas con la forma correcta pero el sentido equivocado. Estas son formas de comprobarlo.
- Revisar que los valores estén dentro del rango o de la lista fijados
- Cotejar los valores extraídos con ejemplos cuya respuesta correcta conoces
- Volver a enviar cuando la forma o los valores no cuadren
Acortar los nombres de los campos y quitar los que no hacen falta también reduce los tokens de salida.