Descripción general
- Crear una actividad de extracción basada en prompts.
- Configurar una conexión con un LLM.
- Redactar prompts de extracción eficaces.
- Definir el formato y la estructura de salida.
- Aplicar nivel de rigurosidad y Reglas de Validación.
- Probar y perfeccionar tu extracción.
- Extracción de información del proveedor a partir de facturas
- Captura de datos del documento a nivel de encabezado
- Procesamiento de documentos semiestructurados
- Documentos con diseños variables
Requisitos previos
- Acceso a ABBYY Vantage Advanced Designer.
- Una conexión LLM configurada. Consulta Cómo configurar conexiones LLM.
- Un Skill de documento con documentos de muestra cargados.
- Comprensión básica de la estructura JSON.
- Definiciones de campos para los datos que quieres extraer.
Comprender la extracción basada en prompts
¿Qué es la extracción basada en prompts?
- Rol: Qué papel debe asumir el LLM (por ejemplo, «modelo de extracción de datos»).
- Instrucciones: Cómo extraer y dar formato a los datos.
- Estructura de salida: El formato JSON exacto de los resultados.
- Reglas: Directrices para manejar datos ambiguos o faltantes.
Ventajas
- No se requieren datos de entrenamiento: Funciona únicamente mediante ingeniería de prompts.
- Flexible: Fácil de añadir o modificar campos.
- Soporta variaciones: Los LLM pueden comprender diferentes formatos de documentos.
- Configuración rápida: Más rápido que entrenar modelos de ML tradicionales.
- Lenguaje natural: Permite escribir instrucciones en inglés sencillo.
Limitaciones
- Costo: Cada extracción realiza llamadas a la API de LLM.
- Velocidad: Más lenta que la extracción tradicional para documentos simples.
- Consistencia: Los resultados pueden variar ligeramente entre ejecuciones.
- Límites de contexto: Es posible que los documentos muy largos requieran un tratamiento especial.
Paso 1: Agregar una actividad basada en prompts
- Abra su Skill de documento en ABBYY Vantage Advanced Designer.
- En el panel izquierdo, localice EXTRACT FROM TEXT (NLP).
- Busque y haga clic en Prompt-based.

- La actividad aparece en el lienzo de su flujo de trabajo.
- Conéctela entre sus actividades de entrada y salida.
Paso 2: Configurar la conexión LLM
- Seleccione la actividad basada en prompts en su flujo de trabajo.
- En el panel Activity Properties a la derecha, busque LLM Connection.
- Haga clic en el menú desplegable.

- Seleccione su conexión LLM configurada de la lista.
- Ejemplo:
Nick-ChatGPT,Microsoft Foundry,Production GPT-4
- Ejemplo:
- Verifique que la conexión esté seleccionada.
Paso 3: Definir campos de salida
- En el panel Activity Properties, busque la sección Output.
- Verá una lista jerárquica de grupos de campos y campos individuales.
- En este ejemplo, estamos extrayendo información del proveedor:
- Proveedor
- Name
- Address
- TaxID
- Número de cuenta
- Sort Code
- IBAN
- BIC_SWIFT
- Business Unit
- Name
- Address
- Fecha de la factura
- Número de factura
- Totals
- Monto neto
- Proveedor

- Haga clic en el botón Activity Editor para comenzar a configurar el prompt.
Paso 4: Redactar la definición del rol
- En el Activity Editor, verá la interfaz Prompt Text
- Comience con la sección ROLE:

- Sea específico: “data extraction model” indica al LLM cuál es su propósito.
- Defina el alcance: “vendor-related fields” limita qué se debe extraer.
- Establezca expectativas: “value text verbatim” evita el reformateo.
- Gestione la ausencia de datos: “Omit any field that is not clearly present”.
- Mantenga el rol claro y conciso.
- Use enunciados imperativos (“Extract”, “Do not infer”).
- Sea explícito sobre lo que NO se debe hacer.
- Defina cómo manejar los casos límite.
Paso 5: Definir el formato de salida
- Debajo de la sección ROLE, agregue el encabezado OUTPUT FORMAT.
- Defina la estructura JSON:

- FieldName: Debe coincidir exactamente con las definiciones de campos (por ejemplo,
Vendor.Name). - Text: El valor extraído como una cadena.
- Line: Índice de línea con base 0 donde el valor aparece en el documento.
- Usar los nombres de campo exactos de la configuración de Output.
- Incluir todos los campos, incluso si algunos pueden estar vacíos.
- La estructura debe ser JSON válido.
- Los números de línea ayudan con la verificación y el diagnóstico de problemas.
Paso 6: Agregar reglas de extracción específicas por Field

- Patrones de reconocimiento: Enumera etiquetas alternativas para cada campo.
- Especificaciones de formato: Describe el formato exacto que se debe extraer.
- Indicaciones de ubicación: Dónde se suele encontrar el dato.
- Exclusiones: Qué NO se debe extraer.
- Numera tus reglas para mayor claridad.
- Proporciona distintas variantes de etiqueta.
- Especifica la propiedad de los datos (del lado del proveedor vs. del lado del cliente).
- Incluye ejemplos de formato entre paréntesis.
- Sé explícito sobre los campos relacionados (por ejemplo, “Ignora el IBAN: tiene su propio campo”).
Paso 7: Aplicar reglas de estrictitud

- Evita alucinaciones: Los LLM pueden generar datos plausibles pero incorrectos.
- Garantiza la consistencia: Reglas claras reducen la variación entre ejecuciones.
- Gestiona datos faltantes: Define qué hacer cuando no se encuentran campos.
- Mantiene la integridad de los datos: La extracción literal preserva el formato original.
- Nunca generar datos que no estén en el documento.
- Omitir extracciones inciertas en lugar de adivinar.
- Devolver una estructura vacía si no se encuentran campos.
- Hacer que los nombres de los campos coincidan exactamente.
- Conservar el formato original del texto.
Paso 8: Seleccionar el formato de documento
- En el Activity Editor, busque la lista desplegable Prompt.
- Verá opciones sobre cómo se proporciona el documento al LLM.

- PDF: Archivo PDF original
- Úselo para: Documentos en los que el diseño es fundamental
- Consideraciones: Tamaño de archivo mayor; algunos LLM tienen compatibilidad limitada con PDF
- Texto sin formato: Extracción de texto sin formato
- Úselo para: Documentos sencillos solo de texto
- Consideraciones: Se pierde todo el formato y la información de diseño
- Texto anotado ⭐ (recomendado)
- Úselo para: La mayoría de los tipos de documentos
- Consideraciones: Conserva la estructura aunque se base en texto
- Ventajas: Mejor equilibrio entre estructura y rendimiento
- Texto con formato: Texto con formato básico conservado
- Úselo para: Documentos en los que parte del formato es importante
- Consideraciones: Punto intermedio entre texto sin formato y texto anotado
- Seleccione Texto anotado para obtener los mejores resultados
Paso 9: Pruebe la extracción
Ejecutar la Activity
- Cierre el Activity Editor.
- Vaya a la pestaña All Documents.
- Seleccione un documento de prueba.
- Haga clic en Test Activity o en el botón Run.

- Espere a que el LLM termine de procesar el documento.
- Tiempo de procesamiento: por lo general de 5 a 30 segundos, según la complejidad del documento.
- Verá un indicador de carga mientras espera la respuesta de la API.
Revisión de resultados
- La interfaz cambia a Predictive view.
- Revisa el panel de Output que muestra los campos extraídos.
- Haz clic en cada campo para ver:
- Valor extraído
- Nivel de confianza (si se proporciona)
- Región resaltada en la imagen del documento

- ✅ Todos los campos esperados están completados
- ✅ Los valores coinciden exactamente con el documento
- ✅ No hay datos inventados o inferidos
- ✅ Correcto manejo de campos multilínea
- ✅ Los campos que faltan se omiten (no se completan con datos incorrectos)
Patrones de resultados habituales
Paso 10: Perfecciona tu prompt
Problemas comunes y soluciones
- Solución: Proporciona indicaciones de ubicación más específicas.
- Ejemplo: “Solo del lado del Proveedor; excluye las direcciones del cliente/comprador”
- Solución: Haz hincapié en la extracción literal.
- Ejemplo: “Extrae el formato numérico exactamente como está impreso (p. ej., ‘12-34-56’)”
- Solución: Refuerza las reglas de estrictez.
- Ejemplo: “Nunca generes ni infieras valores. Omite si no está presente.”
- Solución: Especifica secuencias de escape.
- Ejemplo: “Para valores multilínea, utiliza
\npara los saltos de línea”
- Solución: Verifica que los nombres de campo coincidan exactamente.
- Ejemplo: Usa
Vendor.Account Numbery noAccountNumber
Proceso de mejora iterativa
- Pruebe con múltiples documentos: No optimice pensando solo en un único ejemplo.
- Documente los patrones: Tome nota de qué reglas funcionan y cuáles necesitan refinamiento.
- Agregue ejemplos específicos: Incluya ejemplos de formato entre paréntesis.
- Refine el grado de estrictitud: Ajústelo según los patrones de sobreextracción o subextracción.
- Pruebe casos límite: Use documentos con campos ausentes y diseños poco habituales.
Ejemplos de mejoras
Descripción del proceso de extracción
Cómo funciona la extracción basada en prompts
- Conversión del documento: Su documento se convierte al formato seleccionado (se recomienda Annotated Text).
- Construcción del prompt: Se combinan su rol, el formato de salida, las reglas de campos y las reglas de rigor.
- Llamada a la API: El prompt y el documento se envían al LLM a través de su conexión.
- Procesamiento del LLM: El LLM lee el documento y extrae los datos según sus instrucciones.
- Respuesta JSON: El LLM devuelve datos estructurados en el formato JSON especificado.
- Asignación de campos: Vantage asigna la respuesta JSON a sus campos de salida definidos.
- Verificación: Los números de línea y las puntuaciones de confianza (si se proporcionan) ayudan a verificar la exactitud.
Uso de tokens y costos
- Longitud del documento: Los documentos más largos usan más tokens.
- Complejidad del prompt: Los prompts más detallados aumentan la cantidad de tokens.
- Elección de formato: Annotated Text suele ser más eficiente que PDF.
- Número de campos: Más campos = prompts más largos.
- Usa un lenguaje conciso pero claro en los prompts.
- No repitas las instrucciones.
- Elimina ejemplos innecesarios.
- Considera agrupar campos para datos relacionados.
Mejores prácticas
Redacción de prompts
- ✅ Usa instrucciones claras en modo imperativo (“Extract”, “Recognize”, “Omit”).
- ✅ Proporciona varias alternativas de etiqueta para cada campo.
- ✅ Incluye ejemplos de formato entre paréntesis.
- ✅ Especifica qué NO se debe extraer (exclusiones).
- ✅ Numera tus reglas para facilitar la referencia.
- ✅ Utiliza una terminología coherente en todo el texto.
- ❌ No uses instrucciones vagas (“get the name”).
- ❌ No supongas que el LLM conoce las convenciones específicas del dominio.
- ❌ No escribas oraciones demasiado largas y complejas.
- ❌ No te contradigas en diferentes secciones.
- ❌ No omitas las reglas sobre el grado de rigor.
Definiciones de campos
- Comience con patrones de reconocimiento (etiquetas alternativas)
- Especifique el formato exacto que se debe conservar
- Proporcione indicaciones de ubicación (posición típica)
- Defina la propiedad de los datos (Proveedor vs. cliente)
- Incluya el tratamiento de valores de varias líneas
- Haga referencia a campos relacionados para evitar confusiones
Estrategia de pruebas
- Comience con documentos simples: Pruebe primero la extracción básica.
- Amplíe a variaciones: Pruebe con diferentes diseños y formatos.
- Pruebe casos límite: Campos faltantes, posiciones inusuales, múltiples coincidencias.
- Documente los errores: Conserve ejemplos de dónde falla la extracción.
- Itére de forma sistemática: Cambie una sola cosa a la vez.
Optimización del rendimiento
- Mantenga los prompts concisos.
- Use el formato Annotated Text.
- Minimice el número de campos por actividad.
- Considere dividir los documentos complejos.
- Proporcione reglas de campos completas.
- Incluya ejemplos de formato.
- Agregue reglas de validación estrictas.
- Pruebe con muestras de documentos variadas.
- Optimice la longitud del prompt.
- Use formatos de documento eficientes.
- Almacene en caché los resultados cuando sea apropiado.
- Supervise el uso de tokens mediante el panel del proveedor de LLM.
Resolución de problemas
Problemas de extracción
- Comprueba que el nombre del campo esté escrito exactamente igual.
- Verifica que los datos estén en el formato de documento seleccionado.
- Añade más variaciones de etiquetas a los patrones de reconocimiento.
- Reduce temporalmente el nivel de estrictitud para ver si el LLM lo encuentra.
- Comprueba si la calidad del documento afecta al Reconocimiento óptico de caracteres (OCR) o a la extracción de texto.
- Refuerza las especificaciones para los datos del Proveedor.
- Añade exclusiones explícitas para los datos del cliente/comprador.
- Proporciona indicaciones de ubicación (p. ej., “parte superior del documento”, “sección del emisor”).
- Incluye ejemplos de extracción correcta frente a incorrecta.
- Especifica explícitamente el formato de la secuencia de escape (
\n). - Proporciona ejemplos de salida multilínea correcta.
- Verifica que el formato del documento preserve los saltos de línea.
- Añade la instrucción: “Preservar los saltos de línea originales usando
\n”.
- Destaca “literal” y “exactamente como está impreso”.
- Añade una regla de estrictitud: “Sin normalización ni inferencias”.
- Proporciona ejemplos específicos que muestren la preservación del formato.
- Incluye ejemplos negativos: “No ‘12-34-56’, mantener como ‘12 34 56’”.
Problemas de rendimiento
- Cambie al formato Annotated Text si usa PDF.
- Simplifique el prompt sin perder instrucciones críticas.
- Reduzca la resolución del documento si las imágenes son muy grandes.
- Verifique el estado y los límites de tasa del proveedor de LLM.
- Considere usar un modelo más rápido para documentos simples.
- Refuerce las reglas estrictas.
- Haga que las instrucciones sean más específicas e inequívocas.
- Agregue más ejemplos de formato.
- Reduzca la complejidad del prompt que pueda dar lugar a interpretaciones.
- Pruebe con valores de temperatura más altos (si están disponibles en la conexión).
- Optimice la longitud del prompt.
- Use Annotated Text en lugar de PDF.
- Procese documentos por lotes durante horas de baja demanda.
- Considere usar modelos más pequeños o más económicos para documentos simples.
- Supervise y configure alertas de presupuesto en el panel del proveedor de LLM.
Técnicas avanzadas
Extracción condicional
Compatibilidad con varios idiomas
Reglas de Validación
Relaciones entre campos
Limitaciones y consideraciones
Capacidades actuales
- ✅ Extracción de campos a nivel de encabezado
- ✅ Valores de una y varias líneas
- ✅ Varios campos por documento
- ✅ Lógica de extracción condicional
- ✅ Documentos en varios idiomas
- ✅ Diseños de documento variables
- ⚠️ Extracción de tablas (varía según la implementación)
- ⚠️ Estructuras complejas anidadas
- ⚠️ Documentos muy grandes (límite de tokens)
- ⚠️ Procesamiento en tiempo real (latencia de la API)
- ⚠️ Garantía de resultados deterministas
Cuándo usar la extracción basada en prompts
- Documentos con diseños variables
- Documentos semiestructurados
- Prototipado y pruebas rápidas
- Volúmenes de documentos de pequeños a medianos
- Cuando no se dispone de datos de entrenamiento
- Procesamiento de documentos en varios idiomas
- Producción de alto volumen (el ML tradicional puede ser más rápido)
- Formularios altamente estructurados (extracción basada en plantillas)
- Aplicaciones sensibles al costo (los métodos tradicionales pueden ser más económicos)
- Aplicaciones con requisitos estrictos de latencia (las API de LLM tienen retraso de red)
- Requisitos de procesamiento sin conexión (los métodos tradicionales no necesitan internet)
Integración con Skills de documento
Uso de los datos extraídos
- Actividades de validación: aplicar reglas de negocio a los valores extraídos.
- Actividades de script: procesar o transformar los datos extraídos.
- Actividades de exportación: enviar datos a sistemas externos.
- Interfaz de revisión: verificación manual de los campos extraídos.
Combinación con otras actividades
Asignación de campos
"FieldName": "Vendor.Name"→ Se asigna al campo de salidaVendor.Name.- La jerarquía de campos se conserva en la estructura de salida.
- Los números de línea ayudan con la verificación y la solución de problemas.
Resumen
- ✅ Crear una actividad de extracción basada en prompts.
- ✅ Configurar una conexión con un LLM.
- ✅ Redactar un prompt de extracción completo con rol, formato y reglas.
- ✅ Seleccionar el formato de documento óptimo (Annotated Text).
- ✅ Aplicar reglas de estrictitud para la calidad de los datos.
- ✅ Probar la extracción y revisar los resultados.
- ✅ Aprender prácticas recomendadas de ingeniería de prompts.
- La extracción basada en prompts utiliza instrucciones en lenguaje natural.
- El formato Annotated Text ofrece los mejores resultados.
- Prompts claros y específicos producen una extracción consistente.
- Las reglas de estrictitud evitan alucinaciones y mantienen la calidad de los datos.
- Las pruebas y el perfeccionamiento iterativos mejoran la precisión.
Próximos pasos
- Pruebe con documentos diversos: Valide distintos diseños y variaciones.
- Refine sus prompts: Mejórelos de forma continua en función de los resultados.
- Supervise los costos: Haga un seguimiento del uso de tokens en el panel de control de su proveedor de LLM.
- Optimice el rendimiento: Ajuste los prompts para mejorar la velocidad y la precisión.
- Explore la extracción de tablas: Experimente con la extracción de Partidas (si está disponible).
- Intégrelo en sus flujos de trabajo: Combínelo con otras actividades para lograr un procesamiento completo.
Recursos adicionales
- Documentación de ABBYY Vantage Advanced Designer: https://docs.abbyy.com
- Guía de configuración de conexiones LLM: Cómo configurar conexiones LLM.
- Mejores prácticas de ingeniería de prompts: Consulte la documentación de su proveedor de LLM.
- Soporte: Póngase en contacto con el soporte técnico de ABBYY para obtener asistencia.
