← Todas las guías
Datos y documentos

Extraer datos de facturas, contratos y formularios

Cómo convertir documentos en datos fiables con salidas estructuradas: esquema, validación, casos dudosos y coste.

3 min de lecturaRevisada en octubre de 20261 fuente

Qué son las salidas estructuradas

Son una función que obliga al modelo a responder con un JSON que cumple exactamente el esquema que defines. La garantía viene de la propia generación: el modelo no puede producir una salida que viole el esquema, así que desaparecen los JSON mal formados, los campos obligatorios ausentes y los tipos incorrectos.

Úsalas para extraer campos de texto, facturas o imágenes, clasificar contenido en categorías fijas o alimentar otro sistema sin intervención.

Diseña bien el esquema

  • Campos obligatorios siempre que puedas. Cada campo opcional añade complejidad.
  • Descripciones en cada campo. Se pasan al modelo y guían la extracción: "fecha de vencimiento, no de emisión".
  • Enumeraciones para categorías. Compáralas sin distinguir mayúsculas: el modelo puede cambiar alguna inicial.
  • Sin datos personales en el esquema. Ojo: nombres de campos y valores se almacenan en caché aparte, sin las mismas protecciones que el contenido de los mensajes.
  • Esquemas estables. Cambiar el esquema invalida la caché; la primera llamada con un esquema nuevo es más lenta.
Ejemplo de esquema para facturas{ "type": "object", "properties": { "cif_emisor": {"type": "string", "description": "CIF o NIF del proveedor que emite la factura"}, "numero_factura": {"type": "string"}, "fecha_emision": {"type": "string", "format": "date"}, "fecha_vencimiento": {"type": "string", "format": "date"}, "base_imponible": {"type": "number"}, "tipo_iva": {"type": "string", "enum": ["21", "10", "4", "0", "exenta"]}, "total": {"type": "number"}, "legible": {"type": "boolean", "description": "false si algún importe no se puede leer con seguridad"} }, "required": ["cif_emisor", "numero_factura", "fecha_emision", "fecha_vencimiento", "base_imponible", "tipo_iva", "total", "legible"], "additionalProperties": false }

Límites que conviene conocer

En la implementación de Anthropic, algunas restricciones de JSON Schema no están soportadas, como los mínimos y máximos numéricos o la longitud de los textos. Valídalas en tu código. El orden de los campos sigue el esquema, con los obligatorios primero.

Cuándo la garantía no se cumple

Hay dos casos en los que la salida puede no cumplir el esquema: cuando el modelo se niega a responder y cuando se alcanza el límite de tokens. Comprueba siempre el motivo de parada antes de usar la respuesta.

Un esquema válido no es un dato correcto

La salida estructurada garantiza la forma, no el contenido. Un importe puede tener el formato correcto y estar mal leído. Por eso, en Cauce añadimos siempre tres capas:

  1. Reglas de negocio en código: la base más el IVA tiene que dar el total; el CIF tiene que tener un formato válido; la fecha de vencimiento no puede ser anterior a la de emisión.
  2. Cola de revisión: lo que no cumple una regla, o lo que el modelo marca como poco legible, va a una persona.
  3. Muestreo: revisión humana de un porcentaje de lo aprobado automáticamente, para medir la precisión real.

Volumen y coste

Para grandes volúmenes sin prisa (el cierre de mes, un histórico), el procesamiento por lotes de Anthropic aplica un 50 % de descuento y es compatible con las salidas estructuradas.

Ponlo en práctica

Fuentes

Contenido redactado por Esclusa a partir de la documentación oficial citada. Los modelos, precios y funciones cambian a menudo: comprueba la fuente antes de tomar decisiones.

@esclusa.ia