Tu código analiza JSON devuelto por un LLM, y alrededor del 2 % de las respuestas no se pueden interpretar. ¿Cuál es el enfoque más robusto?
Opciones
- Poner la temperatura en 0, lo que garantiza un JSON válido
- Usar el modo de salida estructurada (esquema JSON) del proveedor si existe, validar cada respuesta con el esquema en código y reintentar con el mensaje de error cuando falle (Opción correcta)
- Limpiar el texto con expresiones regulares y esperar lo mejor
- Pedirle al modelo con más educación que devuelva JSON
Respuesta
Usar el modo de salida estructurada (esquema JSON) del proveedor si existe, validar cada respuesta con el esquema en código y reintentar con el mensaje de error cuando falle
Por qué
Una temperatura baja hace la salida más consistente, pero no garantiza un JSON válido.
Muchos proveedores pueden restringir la salida a un esquema. Aun así, valida en código: los datos pueden ser un JSON válido y seguir mal, como un campo vacío o un número fuera de rango.
Si falla, un reintento que incluya el error de validación suele arreglarlo, con un límite de intentos.
Recuerda
Restringe, valida y reintenta con un límite.