Escribir esquemas JSON detallados para la extracción de datos estructurados puede ser un verdadero punto de dolor cuando se trabaja con herramientas de IA. Existe una solución ingeniosa que te permite especificar la estructura de datos deseada directamente en tu prompt en lugar de crear esquemas complejos.
El enfoque de esquema flexible
En lugar de escribir un esquema detallado para cada tarea de extracción de datos, puedes crear una herramienta genérica llamada to_json que acepta cualquier estructura de objeto. La clave está en configurar el esquema de entrada para permitir propiedades adicionales, y luego especificar tus requisitos exactos en el propio prompt.

Este enfoque elimina un punto de dolor importante: escribir y gestionar constantemente grandes esquemas JSON. Los resultados no serán tan buenos como con un esquema dedicado, pero aun así obtendrás una salida JSON de alta calidad con mucho menos trabajo de configuración.
Cómo funciona
El proceso es sencillo:
- Crea un único esquema flexible que acepte cualquier estructura de objeto
- En tu prompt, especifica exactamente qué estructura de datos deseas
- Indica a Claude que llame a la herramienta
to_jsoncon la estructura que especificaste - Usa
tool_choicepara forzar a Claude a usar tu herramienta
Configuración del prompt
Al escribir tu prompt, sé muy explícito sobre la estructura que deseas. Aquí tienes un ejemplo de cómo estructurar tu solicitud:
Analyze the article below and extract key data. Then call the to_json tool.
<article_text>
{result["text"]}
</article_text>
When you call to_json, pass in the following structure:
{{
"title": str # title of the article,
"author": str # author of the article,
"topics": List[str] # List of topics mentioned in the article
}}Realizar la llamada a la API
La llamada a la API usa el esquema flexible y fuerza el uso de herramientas:
flexible_result = chat(messages, tools=[to_json_schema], tool_choice="to_json")Cambios de estructura sencillos
La verdadera ventaja se hace evidente cuando necesitas modificar tu estructura de datos. En lugar de reescribir un esquema completo, simplemente actualizas tu prompt. ¿Quieres agregar un campo para el número de temas? Solo agrega una línea:
"num_topics": int # Number of topics mentionedEso es todo: no se necesitan modificaciones de esquema.
Cuándo usar cada enfoque
El enfoque de esquema flexible funciona muy bien para:
- Prototipado rápido y experimentación
- Tareas simples de extracción de datos
- Situaciones en las que cambias con frecuencia los requisitos de datos
Mantente con esquemas dedicados para:
- Tareas críticas de extracción de datos en producción
- Estructuras de datos anidadas complejas
- Cuando necesitas la mayor precisión posible
El enfoque flexible te brinda aproximadamente el 90% de la calidad con el 10% del trabajo de configuración, lo que lo hace perfecto para la mayoría de los casos de uso en los que necesitas extracción de datos estructurados sin la sobrecarga de gestión de esquemas.