Saltar al contenido principal

Descripción general

La extracción basada en prompts le permite usar instrucciones en lenguaje natural para extraer datos estructurados de documentos mediante LLMs. En lugar de entrenar modelos tradicionales de aprendizaje automático, usted describe qué datos desea extraer y cómo deben formatearse, y el LLM se encarga de la extracción según sus instrucciones. Para obtener información sobre cómo Vantage usa LLMs, incluidos el manejo de datos y el costo, consulte LLMs en ABBYY Vantage. Lo que logrará:
  • Crear una actividad de extracción basada en prompts.
  • Configurar una conexión LLM.
  • Escribir prompts de extracción eficaces.
  • Definir el formato y la estructura de salida.
  • Aplicar estrictitud y reglas de validación.
  • Probar y perfeccionar la extracción.
Tiempo de realización: 20-30 minutos Casos de uso:
  • Extracción de información del proveedor a partir de facturas
  • Captura de datos de documentos a nivel de encabezado
  • Procesamiento de documentos semiestructurados
  • Documentos con diseños variables

Requisitos previos

Antes de comenzar, asegúrese de contar con lo siguiente:
  1. Acceso a ABBYY Vantage Advanced Designer.
  2. Una conexión LLM configurada. Consulte Configurar conexiones LLM.
  3. Una Skill de documento con documentos de muestra cargados.
  4. Conocimientos básicos de la estructura JSON.
  5. Definiciones de campos para los datos que desea extraer.
Esta guía se centra en la extracción de campos del encabezado. Las capacidades de extracción de tablas pueden variar.

Introducción a extracción basada en prompts

¿Qué es la extracción basada en prompts?

La extracción basada en prompts utiliza LLMs para comprender y extraer datos de documentos a partir de instrucciones en lenguaje natural. Se definen los siguientes elementos:
  • Rol: La función que 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 gestionar datos ambiguos o ausentes.
Para conocer las ventajas y los límites de la extracción basada en prompts, y cuándo conviene optar por la extracción tradicional, consulte Cuándo usar LLMs.

Paso 1: Agregue una actividad basada en prompts

Cree una nueva actividad de extracción basada en prompts en su Skill de documento.
  1. Abra su Skill de documento en ABBYY Vantage Advanced Designer.
  2. En el panel izquierdo, localice EXTRACT FROM TEXT (NLP).
  3. Busque y haga clic en Prompt-based.
Selección de la actividad basada en prompts
  1. La actividad aparece en el lienzo de su flujo de trabajo.
  2. Conéctela entre sus actividades Input y Output.
Las actividades basadas en prompts se encuentran en “EXTRACT FROM TEXT (NLP)” en el panel Activities, junto con otros métodos de extracción como Named Entities (NER) y Deep Learning.

Paso 2: Configurar la conexión LLM

Seleccione qué conexión LLM debe usar esta actividad.
  1. Seleccione la actividad basada en prompts en su workflow.
  2. En el panel Activity Properties de la derecha, busque conexión LLM.
  3. Haga clic en el menú desplegable.
Configuración de conexión LLM
  1. Seleccione en la lista la conexión LLM que haya configurado.
    • Ejemplo: Nick-ChatGPT, Microsoft Foundry, Production GPT-4
  2. Compruebe que la conexión esté seleccionada.
Si no ve ninguna conexión en la lista, primero debe configurar una conexión LLM en Configuration → Connections.
Cuando publique la skill, la conexión que seleccione aquí se convertirá en la predeterminada para esa skill en Vantage Web Portal. En Skill Catalog → [su skill] → Parameters, la conexión aparecerá precargada. Los administradores del tenant pueden cambiarla por otra conexión distinta (por ejemplo, para apuntar una skill de producción a un endpoint de LLM diferente según el entorno) sin volver a publicar la skill; consulte parámetros de Skill de documento.

Paso 3: Defina los campos de salida

Configure los campos que desea extraer antes de escribir el prompt.
  1. En el panel Activity Properties, ubique la sección Output.
  2. Verá una lista jerárquica de grupos de campos y campos.
  3. Para este ejemplo, extraeremos información del proveedor:
    • Vendor
      • Name
      • Address
      • TaxID
      • Account Number
      • Sort Code
      • IBAN
      • BIC_SWIFT
    • Business Unit
      • Name
      • Address
      • Invoice Date
      • Invoice Number
    • Totals
      • Net Amount
Estructura de campos de salida
  1. Haga clic en el botón Activity Editor para comenzar a configurar el prompt.
Defina todos los campos antes de escribir el prompt. Los nombres de los campos se usarán como referencia en la estructura del prompt.

Paso 4: Redacte la definición del rol

Defina qué rol debe desempeñar el LLM al procesar documentos.
  1. En el Activity Editor, verá la interfaz Prompt Text
  2. Empiece por la sección ROLE:
Texto del prompt en el Editor de texto
Instrucciones clave sobre el rol:
  • Sé específico: “modelo de extracción de datos” le indica al LLM cuál es su propósito.
  • Define el alcance: “campos relacionados con el Proveedor” limita qué extraer.
  • Establece expectativas: “texto del valor tal cual” evita que se reformatee.
  • Gestiona los datos faltantes: “Omite cualquier campo que no esté claramente presente”.
Prácticas recomendadas:
  • Mantén el rol claro y conciso.
  • Usa instrucciones imperativas (“Extrae”, “No infieras”).
  • Deja claro lo que NO debe hacerse.
  • Define cómo manejar los casos límite.

Paso 5: Definir el formato de salida

Indique la estructura JSON exacta de los resultados de extracción.
  1. Debajo de la sección ROLE, agregue el encabezado FORMATO DE SALIDA.
  2. Defina la estructura JSON:
Formato de salida JSON
Componentes de la estructura:
  • FieldName: Debe coincidir exactamente con las definiciones de sus campos (p. ej., Vendor.Name).
  • Text: El valor extraído como una cadena.
  • Line: Índice de línea de base 0 donde aparece el valor en el documento.
Notas importantes:
  • Use los nombres exactos de los campos de la configuración de su actividad Output.
  • Incluya todos los campos, aunque algunos puedan estar vacíos.
  • La estructura debe ser un JSON válido.
  • Los números de línea ayudan con la verificación y la resolución de problemas.

Paso 6: Agregar reglas de extracción específicas para cada campo

Proporciona instrucciones detalladas para la extracción de cada campo. Debajo de OUTPUT FORMAT, agrega reglas específicas para cada tipo de campo:
Extraction Rules
Estructura de la regla:
  • Patrones de reconocimiento: Enumera etiquetas alternativas para cada campo.
  • Especificaciones de formato: Describe el formato exacto que debe extraerse.
  • Indicaciones de ubicación: Dónde suelen encontrarse los datos.
  • Exclusiones: Qué NO extraer.
Prácticas recomendadas:
  • Numera las reglas para mayor claridad.
  • Proporciona varias variantes de etiquetas.
  • Especifica a quién corresponden los datos (proveedor o cliente).
  • Incluye ejemplos de formato entre paréntesis.
  • Sé explícito con los campos relacionados (por ejemplo, “Ignora el IBAN: tiene su propio campo”).

Step 7: Aplicar reglas de estrictitud

Agregue reglas de validación para garantizar la calidad y la consistencia de los datos. Al final de su prompt, agregue una sección de STRICTNESS:
Reglas de estrictitud
Reglas adicionales de estrictitud (opcional):
Por qué importa la estrictitud:
  • Evita las alucinaciones: Los LLM pueden generar datos plausibles pero incorrectos.
  • Garantiza la consistencia: Las reglas claras reducen la variación entre ejecuciones.
  • Gestiona la ausencia de datos: Define qué hacer cuando no se encuentran campos.
  • Mantiene la integridad de los datos: La extracción literal conserva el formato original.
Principios clave de la estrictitud:
  • No generar nunca datos que no estén en el documento.
  • Omitir las extracciones inciertas en lugar de hacer suposiciones.
  • Devolver una estructura vacía si no se encuentra ningún campo.
  • Respetar exactamente los nombres de los campos.
  • Conservar el formato original del texto.

Paso 8: Seleccionar el formato del documento

Elija qué representación del documento enviar al LLM.
  1. En el Activity Editor, localice el menú desplegable Prompt.
  2. Verá opciones sobre cómo se proporciona el documento al LLM.
Opciones de formato del documento
Formatos disponibles:
  • PDF: Archivo PDF original
    • Uso: Documentos en los que la estructura es fundamental
    • Consideraciones: Mayor tamaño de archivo; algunos LLM tienen compatibilidad limitada con PDF
    En desuso: El formato de documento PDF está en desuso y solo está disponible en conexiones de OpenAI ya existentes. Este formato ya no es compatible con ninguna conexión nueva de ningún proveedor. Use Annotated Text en su lugar.
  • Texto sin formato: Extracción de texto sin formato
    • Uso: Documentos sencillos de solo texto
    • Consideraciones: Pierde todo el formato y la información de estructura
  • Annotated Text ⭐ (Recomendado)
    • Uso: La mayoría de los tipos de documento
    • Consideraciones: Conserva la estructura en un formato basado en texto
    • Beneficios: El mejor equilibrio entre estructura y rendimiento
  • Texto con formato: Texto con formato básico conservado
    • Uso: Documentos en los que parte del formato es importante
    • Consideraciones: Punto intermedio entre Plain y Annotated
  1. Seleccione Annotated Text para obtener los mejores resultados
Según las pruebas realizadas, Annotated Text ofrece los resultados más consistentes y fiables para las tareas de extracción. Conserva la estructura del documento y, al mismo tiempo, los LLM lo procesan de forma eficiente.

Paso 9: Pruebe la extracción

Ejecute la actividad con documentos de ejemplo para verificar los resultados.

Ejecute la actividad

  1. Cierre el Activity Editor.
  2. Vaya a la pestaña All Documents.
  3. Seleccione un documento de prueba.
  4. Haga clic en el botón Test Activity o Run.
Actividad de prueba
  1. Espere a que el LLM procese el documento
    • Tiempo de procesamiento: normalmente, entre 5 y 30 segundos, según la complejidad del documento.
    • Verá un indicador de carga mientras espera la respuesta de la API.

Revisar resultados

Una vez finalizado el procesamiento:
  1. La interfaz cambia a la vista Predictive.
  2. Revise el panel Output, que muestra los campos extraídos.
  3. Haga clic en cada campo para ver:
    • Valor extraído
    • Confianza (si se proporciona)
    • Región resaltada en la imagen del documento
Revisión de resultados
Qué comprobar:
  • ✅ Todos los campos esperados tienen valor
  • ✅ Los valores coinciden exactamente con el documento
  • ✅ No hay datos alucinados ni inferidos
  • ✅ Manejo adecuado de campos multilínea
  • ✅ Los campos que faltan se omiten (no se rellenan con datos incorrectos)

Patrones de resultados comunes

Extracción exitosa:
Extracción parcial (faltan algunos campos):
No se encontraron campos:

Paso 10: Refina tu prompt

Ajusta tu prompt en función de los resultados de las pruebas.

Problemas comunes y soluciones

Problema: el LLM extrae el campo equivocado
  • Solución: Añada pistas de ubicación más específicas.
  • Ejemplo: “Solo del lado del Proveedor; excluya las direcciones del cliente/comprador”
Problema: se cambia el formato
  • Solución: Enfatice la extracción literal.
  • Ejemplo: “Extraiga el formato numérico exactamente como aparece impreso (p. ej., ‘12-34-56’)”
Problema: el LLM inventa datos
  • Solución: Refuerce las reglas de estrictitud.
  • Ejemplo: “No genere ni infiera valores nunca. Omítalos si no están presentes.”
Problema: los campos multilínea se concatenan
  • Solución: Especifique las secuencias de escape.
  • Ejemplo: “Para valores multilínea, use \n para los saltos de línea”
Problema: nombres de campo incorrectos en la salida
  • Solución: Verifique que los nombres de campo coincidan exactamente.
  • Ejemplo: Use Vendor.Account Number y no AccountNumber

Proceso de mejora iterativa

  1. Pruebe con varios documentos: No optimice basándose en un solo ejemplo.
  2. Documente patrones: Anote qué reglas funcionan y cuáles necesitan ajustes.
  3. Agregue ejemplos específicos: Incluya ejemplos de formato entre paréntesis.
  4. Refine la estrictitud: Ajústela según los patrones de sobreextracción o subextracción.
  5. Pruebe casos límite: Use documentos con campos faltantes o diseños inusuales.

Ejemplos de mejoras

Antes:
Después:

Entender el proceso de extracción

Cómo funciona la Extracción basada en prompts

  1. Conversión del documento: Su documento se convierte al formato seleccionado (se recomienda Annotated Text).
  2. Ensamblado del prompt: Se combinan su rol, el formato de salida, las reglas de campo y las reglas de estrictitud.
  3. Llamada de API: El prompt y el documento se envían al LLM a través de su conexión.
  4. Procesamiento del LLM: El LLM lee el documento y extrae los datos de acuerdo con sus instrucciones.
  5. Respuesta JSON: El LLM devuelve datos estructurados en el formato JSON especificado.
  6. Asignación de campos: Vantage asigna la respuesta JSON a los campos de salida definidos.
  7. 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

Factores que afectan el costo:
  • Longitud del documento: Los documentos más largos usan más tokens.
  • Complejidad del prompt: Los prompts detallados aumentan la cantidad de tokens.
  • Elección del formato: Annotated Text suele ser más eficiente que PDF.
  • Número de campos: Más campos = prompts más largos.
Consejos de optimización:
  • Usa un lenguaje conciso, pero claro, en los prompts.
  • No dupliques las instrucciones.
  • Elimina los ejemplos innecesarios.
  • Considera agrupar los campos de datos relacionados.

Buenas prácticas

Redacción de prompts

Haz lo siguiente:
  • ✅ Usa instrucciones claras y en imperativo (“Extrae”, “Reconoce”, “Omite”).
  • ✅ Proporciona varias variantes de etiqueta para cada campo.
  • ✅ Incluye ejemplos de formato entre paréntesis.
  • ✅ Especifica qué NO extraer (exclusiones).
  • ✅ Numera tus reglas para poder consultarlas fácilmente.
  • ✅ Usa una terminología uniforme en todo el texto.
No hagas lo siguiente:
  • ❌ Uses instrucciones vagas (“obtén el nombre”).
  • ❌ Supongas que el LLM conoce convenciones propias del dominio.
  • ❌ Escribas oraciones demasiado largas y complejas.
  • ❌ Te contradigas en distintas secciones.
  • ❌ Omitas las reglas de estrictitud.

Definiciones de campos

Instrucciones eficaces para los campos:
  • Comience con patrones de reconocimiento (etiquetas alternativas).
  • Especifique el formato exacto que se debe conservar.
  • Proporcione indicaciones de ubicación (posición habitual).
  • Defina la pertenencia de los datos (Proveedor frente a cliente).
  • Incluya el tratamiento de valores multilínea.
  • Remítase a campos relacionados para evitar confusiones.
Ejemplo:

Estrategia de pruebas

  1. Empiece con documentos sencillos: Primero pruebe la extracción básica.
  2. Amplíe las pruebas a distintas variaciones: Pruebe diferentes diseños y formatos.
  3. Pruebe casos límite: campos faltantes, posiciones inusuales, múltiples coincidencias.
  4. Documente los fallos: Conserve ejemplos de los casos en que falla la extracción.
  5. Itere de forma sistemática: Cambie solo una cosa a la vez.

Optimización del rendimiento

Para la velocidad:
  • Mantén los prompts concisos.
  • Usa el formato Annotated Text.
  • Minimiza el número de campos por actividad.
  • Considera dividir los documentos complejos.
Para la precisión:
  • Proporciona reglas exhaustivas para los campos.
  • Incluye ejemplos de formato.
  • Agrega reglas de estrictitud claras.
  • Haz pruebas con muestras de documentos diversas.
Para el costo:
  • Optimiza la longitud del prompt.
  • Usa formatos de documento eficientes.
  • Almacena en caché los resultados cuando corresponda.
  • Supervisa el uso de tokens desde el panel del proveedor de LLM.

Solución de problemas

Problemas de extracción

Problema: Los campos están vacíos aunque los datos estén presentes. Soluciones:
  • Compruebe que la ortografía del nombre del campo coincida exactamente.
  • Verifique que los datos estén en el formato de documento seleccionado.
  • Añada más variaciones de etiquetas a los patrones de reconocimiento.
  • Reduzca temporalmente la estrictitud para ver si el LLM los encuentra.
  • Compruebe si la calidad del documento afecta al OCR o a la extracción de texto.
Problema: El LLM extrae datos del cliente en lugar de datos del proveedor. Soluciones:
  • Refuerce las especificaciones del proveedor.
  • Añada 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 e incorrecta.
Problema: Los valores multilínea se concatenan o tienen un formato incorrecto. Soluciones:
  • 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.
  • Añada la instrucción: “Conserve los saltos de línea originales usando \n”.
Problema: El LLM reformatea o normaliza los datos. Soluciones:
  • Destaque “literalmente” y “exactamente como está impreso”.
  • Añada una regla de estrictitud: “Sin normalización ni inferencia”.
  • Proporcione ejemplos específicos que muestren la conservación del formato.
  • Incluya ejemplos negativos: “No ‘12-34-56’, manténgalo como ‘12 34 56’”.

Problemas de rendimiento

Problema: La extracción es demasiado lenta. Soluciones:
  • Cambie al formato Annotated Text si usa PDF.
  • Simplifique el prompt sin perder instrucciones clave.
  • Reduzca la resolución del documento si las imágenes son muy grandes.
  • Compruebe el estado del proveedor de LLM y los límites de tasa.
  • Considere usar un modelo más rápido para documentos sencillos.
Problema: Resultados inconsistentes entre ejecuciones. Soluciones:
  • Refuerce las reglas de estrictitud.
  • Haga que las instrucciones sean más específicas y claras.
  • Añada más ejemplos de formato.
  • Reduzca la complejidad del prompt para evitar interpretaciones.
  • Pruebe valores de temperatura más altos (si están disponibles en la conexión).
Problema: Costos elevados de la API. Soluciones:
  • Optimice la longitud del prompt.
  • Use Annotated Text en lugar de PDF.
  • Procese documentos en lotes durante las horas de menor actividad.
  • Considere usar modelos más pequeños o más económicos para documentos sencillos.
  • Supervise y configure alertas de presupuesto en el panel del proveedor de LLM.

Técnicas avanzadas

Extracción condicional

Puede indicarle al LLM que extraiga determinados campos solo si se cumplen ciertas condiciones:

Compatibilidad multilingüe

La extracción basada en prompts funciona bien con documentos multilingües:

Reglas de Validación

Añada lógica de validación a sus prompts:

Relaciones entre campos

Especifique cómo se relacionan los campos entre sí:

Limitaciones y consideraciones

Capacidades actuales

Admitido:
  • ✅ Extracción de campos a nivel de encabezado
  • ✅ Valores de una sola línea y multilínea
  • ✅ Varios campos por documento
  • ✅ Lógica de extracción condicional
  • ✅ Documentos en varios idiomas
  • ✅ Formatos de documento variables
Compatibilidad limitada o no admitida:
  • ⚠️ Extracción de tablas (varía según la implementación)
  • ⚠️ Estructuras complejas anidadas
  • ⚠️ Documentos muy grandes (límites de tokens)
  • ⚠️ Procesamiento en tiempo real (latencia de la API)
  • ⚠️ Resultados deterministas garantizados

Cuándo usar la extracción basada en prompts

Para obtener orientación sobre cuándo la extracción basada en prompts encaja bien y cuándo conviene optar por la extracción tradicional, consulte Cuándo usar LLMs.

Integración con Skills de documento

Uso de los datos extraídos

Una vez finalizada la extracción, los datos de los campos están disponibles en todo el Skill de documento:
  1. Actividades de validación: Permiten aplicar reglas de negocio a los valores extraídos.
  2. Actividades de script: Permiten procesar o transformar los datos extraídos.
  3. Actividades de exportación: Permiten enviar datos a sistemas externos.
  4. Interfaz de revisión: Permite verificar manualmente los campos extraídos.

Combinación con otras actividades

La extracción basada en prompts puede utilizarse junto con otras actividades:

Asignación de campos

Los campos JSON extraídos se asignan automáticamente a los campos de salida que haya definido:
  • "FieldName": "Vendor.Name" → Se asigna al campo de salida Vendor.Name.
  • La jerarquía de campos se conserva en la estructura de salida.
  • Los números de línea ayudan en la verificación y la solución de problemas.

Resumen

Has completado correctamente lo siguiente:
  • ✅ Creaste una actividad de extracción basada en prompts.
  • ✅ Configuraste una conexión LLM.
  • ✅ Redactaste un prompt de extracción completo con rol, formato y reglas.
  • ✅ Seleccionaste el formato de documento óptimo (Annotated Text).
  • ✅ Aplicaste reglas de estrictitud para garantizar la calidad de los datos.
  • ✅ Probaste la extracción y revisaste los resultados.
  • ✅ Aprendiste las mejores prácticas de la ingeniería de prompts.
Puntos clave:
  • La extracción basada en prompts usa instrucciones en lenguaje natural.
  • El formato Annotated Text ofrece los mejores resultados.
  • Los prompts claros y específicos producen una extracción consistente.
  • Las reglas de estrictitud evitan las alucinaciones y mantienen la calidad de los datos.
  • Las pruebas iterativas y el refinamiento mejoran la precisión.
¡Tu actividad de extracción basada en prompts ya está lista para el procesamiento de documentos!

Próximos pasos

  1. Pruebe con diversos documentos: Valide distintos diseños y variaciones.
  2. Perfeccione sus prompts: Mejórelos continuamente en función de los resultados.
  3. Supervise los costos: Haga un seguimiento del uso de tokens en el panel de control de su proveedor de LLM.
  4. Optimice el rendimiento: Ajuste los prompts para mejorar la velocidad y la precisión.
  5. Explore la extracción de tablas: Experimente con la extracción de partidas (si es compatible).
  6. Intégrelo con flujos de trabajo: Combínelo con otras actividades para lograr un procesamiento integral.

Recursos adicionales

  • Documentación de ABBYY Vantage Advanced Designer: https://docs.abbyy.com
  • Guía de configuración de conexiones LLM: Configurar conexiones LLM.
  • Mejores prácticas de prompt engineering: Consulte la documentación de su proveedor de LLM.
  • Soporte: Póngase en contacto con el soporte de ABBYY para obtener asistencia técnica.

Preguntas frecuentes

P: ¿Cuál es la diferencia entre la extracción basada en prompts y la extracción tradicional? R: La extracción basada en prompts usa instrucciones en lenguaje natural para LLM sin datos de entrenamiento. Los métodos tradicionales requieren ejemplos de entrenamiento, pero son más rápidos y más rentables a gran escala. P: ¿Puedo extraer tablas con actividades basadas en prompts? R: La extracción a nivel de encabezado está bien admitida. Las capacidades de extracción de tablas pueden variar y requerir estructuras de prompt específicas. P: ¿Por qué usar Annotated Text en lugar de PDF? R: Annotated Text ofrece el mejor equilibrio entre la conservación de la estructura y la eficiencia del procesamiento. Las pruebas han demostrado que es la opción más fiable. P: ¿Cómo reduzco los costos de la API? R: Optimiza la longitud del prompt, usa el formato Annotated Text, procesa de forma eficiente y supervisa el uso de tokens en el panel de tu proveedor de LLM. P: ¿Qué pasa si falla mi conexión LLM? R: Revisa el estado de tu conexión en Configuración → Conexiones. Prueba la conexión, verifica las credenciales y asegúrate de no haber superado tu cuota de API. P: ¿Puedo usar varias conexiones LLM en una skill? R: Sí, distintas actividades pueden usar distintas conexiones. Esto te permite usar diferentes modelos para distintas tareas de extracción. P: ¿Cómo gestiono documentos en varios idiomas? R: Agrega variantes de etiquetas multilingües a las reglas de tus campos. Por lo general, los LLM manejan bien el contenido multilingüe. P: ¿Cuál es el tamaño máximo del documento? R: Esto depende de los límites de tokens de tu proveedor de LLM. Puede que sea necesario dividir los documentos muy largos o procesarlos por secciones.