Cargando

Extracción flexible de herramientas

Lección 319 min

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_json con la estructura que especificaste
  • Usa tool_choice para 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:

python
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:

python
"num_topics": int # Number of topics mentioned

Eso 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.