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: Agrega indicaciones de ubicación más específicas
- Ejemplo: “Solo en la parte del Proveedor; excluye las direcciones del cliente/comprador”
- Solución: Destaca que la extracción debe ser literal
- Ejemplo: “Extrae el formato numérico exactamente como está impreso (p. ej., ‘12-34-56’)”
- Solución: Refuerza las reglas de estrictitud
- Ejemplo: “Nunca generes ni infieras valores. Omite si no están presentes.”
- Solución: Especifica las secuencias de escape
- Ejemplo: “Para valores multilínea, usa
\npara los saltos de línea”
- Solución: Verifica que los nombres de campos 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
- ✅ Usar enunciados claros en modo imperativo (“Extraer”, “Reconocer”, “Omitir”)
- ✅ Proporcionar múltiples variantes de etiqueta para cada campo
- ✅ Incluir ejemplos de formato entre paréntesis
- ✅ Especificar qué NO se debe extraer (exclusiones)
- ✅ Numerar las reglas para facilitar su referencia
- ✅ Usar terminología consistente en todo el prompt
- ❌ Usar instrucciones vagas (“obtener el nombre”)
- ❌ Suponer que el LLM conoce las convenciones específicas del dominio
- ❌ Escribir oraciones demasiado largas y complejas
- ❌ Contradecirte en diferentes secciones
- ❌ Omitir las reglas sobre el nivel de estrictitud
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
- Mantén los prompts concisos
- Usa el formato Annotated Text
- Reduce al mínimo el número de campos por actividad
- Considera dividir los documentos complejos
- Define reglas completas para cada campo
- Incluye ejemplos de formato
- Añade reglas de validación estrictas
- Prueba con muestras de documentos variadas
- Optimiza la longitud del prompt
- Usa formatos de documento eficientes
- Almacena en caché los resultados cuando sea adecuado
- Supervisa el consumo de tokens desde el panel de control del proveedor de LLM
Resolución de problemas
Problemas de extracción
- Compruebe que el nombre del campo esté escrito exactamente igual
- Verifique que los datos estén en el formato de documento seleccionado
- Añada más variantes de etiquetas a los patrones de reconocimiento
- Reduzca temporalmente el nivel de estrictitud para comprobar si el LLM lo encuentra
- Compruebe si la calidad del documento afecta a la extracción mediante Reconocimiento óptico de caracteres (OCR) o
text
- Refuerce las especificaciones para los datos del proveedor
- Agregue exclusiones explícitas para los datos del cliente/comprador
- Proporcione indicaciones de ubicación (por ejemplo, “parte superior del documento”, “sección del emisor”)
- Incluya ejemplos de extracción correcta frente a incorrecta
- Especifique explícitamente el formato de la secuencia de escape (
\n) - Proporcione ejemplos de salida multilínea correcta
- Verifique que el formato del documento conserve los saltos de línea
- Agregue la instrucción: “Conserve los saltos de línea originales usando
\n”
- Haga hincapié en “verbatim” y “exactamente como impreso”
- Agregue una regla estricta: “Sin normalización ni inferencias”
- Proporcione ejemplos específicos que muestren la preservación del formato
- Incluya ejemplos negativos: “No ‘12-34-56’, mantener como ‘12 34 56‘“
Problemas de rendimiento
- Cambie al formato Annotated Text si está utilizando 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 del proveedor de LLM y los límites de uso
- Considere usar un modelo más rápido para documentos simples
- Refuerce las reglas de estrictitud
- 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 ajustes 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 fuera de las horas pico
- 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 LLM
- ✅ Redactar un prompt de extracción completo con rol, formato y reglas
- ✅ Seleccionar el formato de documento óptimo (Annotated Text)
- ✅ Aplicar reglas estrictas para la calidad de los datos
- ✅ Probar la extracción y revisar los resultados
- ✅ Aprender las prácticas recomendadas para la 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 estrictas evitan alucinaciones y mantienen la calidad de los datos
- Las pruebas iterativas y su posterior perfeccionamiento 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
