Cómo funciona
- Define una structure en el Dashboard de Matil. Por ejemplo, una structure de factura puede tener campos como
numero_factura,fecha_factura,totalylineas. - Publica una versión. Las structures usan un flujo de borrador/publicación. Edita el borrador y publica cuando estés listo.
- Crea un deployment que apunte a esa versión de la structure.
- Envía documentos a través de la API. Matil extrae los datos y devuelve JSON estructurado.
Ejemplo
Si tu structure define campos para una factura, losdata extraídos en la respuesta se ven así:
Precios y páginas
Las estructuras personalizadas se facturan a 0,10 € por página. Lo que cuenta como “pagina” depende del tipo de documento:| Tipo de documento | Que cuenta como 1 página |
|---|---|
| 1 página del PDF = 1 página | |
| Imagen | 1 imagen = 1 página |
| Texto | Cada 200 palabras = 1 página (mínimo 1) |
| Hoja de cálculo | Cada 1.500 celdas = 1 página (mínimo 1) |
Tipos de campo
Campos de datos
Estos son los campos que producen valores en la salida:| Tipo | Descripción | Ejemplo de salida |
|---|---|---|
text | Un valor de texto. Soporta validación por regex y valores permitidos (enum). | "FAC-2024-001" |
number | Un valor numérico. Soporta precisión decimal y redondeo. | 1250.00 |
boolean | Un valor verdadero/falso. | true |
list_text | Una lista de textos. | ["EUR", "USD"] |
list_number | Una lista de números. | [10.0, 20.5] |
object | Un objeto anidado con sus propios subcampos. | {"calle": "...", "ciudad": "..."} |
list_object | Una tabla — una lista de filas, cada una con las mismas columnas. | [{"descripcion": "...", "cantidad": 10}] |
Campos estructurales
Estos organizan la extracción pero no producen claves en la salida:| Tipo | Descripción |
|---|---|
group | Agrupa campos en una unidad de ejecución. Permite extracción en paralelo, ejecución condicional e instrucciones contextuales. Los campos hijos se aplanan al namespace padre en la salida. |
structure | Referencia la definición versionada de otra structure. Sus campos se aplanan en la salida padre. |
validation | Una regla inline que verifica los datos extraídos y puede disparar correcciones automáticas o reintentos del LLM. |
Groups
Los groups permiten organizar campos en unidades de extracción separadas que pueden ejecutarse en paralelo, mejorando el rendimiento para structures complejas. Una structure con groups:{/path} que referencian datos de otros groups.
Campos computados
Cualquier campo puede marcarse comois_computed: true. En lugar de ser extraído por el LLM, su valor se calcula a partir de una expresión después de la extracción. Útil para valores derivados como totales de línea.
Validaciones
Las structures pueden incluir reglas de validación que verifican los datos extraídos. Cuando una validación falla, puede disparar correcciones programáticas (por ejemplo, recalcular un campo) o pedir al LLM que re-extraiga campos específicos. Cuando un campo no pasa la validación, la respuesta tiene statuscompleted_with_errors e incluye un array de errors:
| Estado | Significado |
|---|---|
completed | Todos los campos extraídos y validados correctamente. |
completed_with_errors | La extracción funcionó, pero algunos campos fallaron la validación. Hay datos parciales disponibles. |
failed | El procesamiento no pudo completarse. |
Versionado
Las structures usan un flujo de borrador/publicación:- Borrador (Draft) — Tu copia de trabajo. Edita libremente sin afectar al procesamiento en producción.
- Versión publicada — Una instantánea a la que los deployments pueden apuntar. Una vez publicada, la versión es inmutable.
Siguientes pasos
Deployments
Conecta tu structure a un deployment para acceder vía API.
Entries
Entiende cómo se almacenan los resultados y como corregirlos.