> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Extraer datos con actividades basadas en prompts

> Cree actividades de extracción basadas en prompts en ABBYY Vantage Advanced Designer: use instrucciones en lenguaje natural con LLM para extraer datos de los documentos.

<div id="overview">
  ## Descripción general
</div>

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](/es/vantage/documentation/llms/llms).

**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

***

<div id="prerequisites">
  ## Requisitos previos
</div>

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](/es/vantage/documentation/skills/connections).
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.

<Note>
  Esta guía se centra en la extracción de campos del encabezado. Las capacidades de extracción de tablas pueden variar.
</Note>

***

<div id="understanding-prompt-based-extraction">
  ## Introducción a extracción basada en prompts
</div>

<div id="what-is-prompt-based-extraction">
  ### ¿Qué es la extracción basada en prompts?
</div>

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](/es/vantage/documentation/llms/llms#when-to-use-llms).

***

<div id="step-1-add-a-prompt-based-activity">
  ## Paso 1: Agregue una actividad basada en prompts
</div>

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**.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_llm_connection.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=54644cb9dc145d0dcaf163af5201822e" alt="Selección de la actividad basada en prompts" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_llm_connection.png" />
</Frame>

4. La actividad aparece en el lienzo de su flujo de trabajo.
5. Conéctela entre sus actividades Input y Output.

<Note>
  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.
</Note>

***

<div id="step-2-configure-the-llm-connection">
  ## Paso 2: Configurar la conexión LLM
</div>

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.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_llm_connection.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=54644cb9dc145d0dcaf163af5201822e" alt="Configuración de conexión LLM" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_llm_connection.png" />
</Frame>

4. Seleccione en la lista la conexión LLM que haya configurado.
   * Ejemplo: `Nick-ChatGPT`, `Microsoft Foundry`, `Production GPT-4`
5. Compruebe que la conexión esté seleccionada.

<Note>
  Si no ve ninguna conexión en la lista, primero debe configurar una conexión LLM en Configuration → Connections.
</Note>

<Note>
  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](/es/vantage/documentation/skill-designer/skill-parameters/document-skill-params).
</Note>

***

<div id="step-3-define-output-fields">
  ## Paso 3: Defina los campos de salida
</div>

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

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_activity_editor.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=ca35ebd6bead5efce02f1e85af1afaed" alt="Estructura de campos de salida" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_activity_editor.png" />
</Frame>

4. Haga clic en el botón **Activity Editor** para comenzar a configurar el prompt.

<Note>
  Defina todos los campos antes de escribir el prompt. Los nombres de los campos se usarán como referencia en la estructura del prompt.
</Note>

***

<div id="step-4-write-the-role-definition">
  ## Paso 4: Redacte la definición del rol
</div>

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**:

```
ROLE

Eres un modelo de extracción de datos. Extrae únicamente los campos especificados relacionados con el proveedor 
de un documento. Extrae el texto del valor de forma literal (no la etiqueta). No 
inferas ni reformates ningún dato. Omite cualquier campo que no esté claramente presente.
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_prompt_text.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=5427ab4101aefbfd00f26b5c70c179a4" alt="Texto del prompt en el Editor de texto" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_prompt_text.png" />
</Frame>

**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.

***

<div id="step-5-define-the-output-format">
  ## Paso 5: Definir el formato de salida
</div>

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:

```
OUTPUT FORMAT

Return one valid JSON object using this exact structure:

{
  "Fields": [
    { "FieldName": Vendor.Name, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.Address, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.TaxID, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.Account Number, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.Sort Code, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.IBAN, "Text": "...", "Line": <FirstLineIndex> },
    { "FieldName": Vendor.BIC_SWIFT, "Text": "...", "Line": <FirstLineIndex> }
  ]
}
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_json_output_format.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=a4885a4609b89597c9113b43ca825883" alt="Formato de salida JSON" style={{ width:"56%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_json_output_format.png" />
</Frame>

**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.

***

<div id="step-6-add-field-specific-extraction-rules">
  ## Paso 6: Agregar reglas de extracción específicas para cada campo
</div>

Proporciona instrucciones detalladas para la extracción de cada campo.

Debajo de OUTPUT FORMAT, agrega reglas específicas para cada tipo de campo:

```
VENDOR NAME
1) Recognize names like "ABC Corporation", "XYZ Ltd", "Acme Inc.".
2) Extract the complete company name including legal suffixes (Ltd, Inc, GmbH, etc.).
3) Vendor name typically appears near the top of the document.

VENDOR ADDRESS
1) Extract the complete address including street, city, postal code.
2) For multiline addresses, represent each new line using "\n".
3) Vendor-side only; exclude customer/buyer addresses.

ACCOUNT NUMBER
1) Recognize "Account Number", "Account No", "Acct #".
2) Extract the numeric format exactly as printed (e.g., "12-34-56" or "500 105 17").
3) Vendor-owned accounts only (e.g., "Beneficiary" or "Vendor Payment" sections).
4) Ignore IBAN — it has its own field.

SORT CODE
1) Recognize "Sort Code", "Sort No.", "BLZ", "Bankleitzahl".
2) Extract the numeric format exactly as printed (e.g., "12-34-56" or "500 105 17").
3) Vendor-side data only; ignore payer/buyer codes.

IBAN
1) Recognize "IBAN", "International Bank Account Number".
2) Extract the full IBAN exactly as printed (include spaces).
3) Vendor-side only, typically under "Bankverbindung", "Coordonnées bancaires", "Payment Details", or "Beneficiary Bank".

BIC_SWIFT
1) Recognize "BIC", "SWIFT", or "BIC/SWIFT".
2) Extract the complete identifier (usually 8 or 11 uppercase letters/numbers).
3) Vendor-side only, near the IBAN or bank name.
4) Exclude customer/payer data.
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_prompt_text.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=5427ab4101aefbfd00f26b5c70c179a4" alt="Extraction Rules" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_prompt_text.png" />
</Frame>

**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").

***

<div id="step-7-apply-strictness-rules">
  ## Step 7: Aplicar reglas de estrictitud
</div>

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**:

```
STRICTNESS
- Never generate or infer values.
- Omit ambiguous or missing fields.
- If none of the vendor fields are found, return:
  {
    "Fields": []
  }
```

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_apply_strictness_rules.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=a345f62b355223d968714bb938bb2f0a" alt="Reglas de estrictitud" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_apply_strictness_rules.png" />
</Frame>

**Reglas adicionales de estrictitud (opcional):**

```
GENERAL RULES
- Extract exactly one value per field.
- Skip any field that cannot be confidently located — omit it from the output.
- "FieldName" must match the names above exactly.
- "Text" must be copied verbatim from the document — no normalization or inference.
- For multiline values (e.g., addresses), represent each new line using the escape sequence "\n" (a backslash followed by the letter n).
- Do not insert HTML tags such as <br> in the output text.
- "Line" is the 0-based index of the first line containing the extracted value; include it only if verifiable.
```

**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.

***

<div id="step-8-select-document-format">
  ## Paso 8: Seleccionar el formato del documento
</div>

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.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_extracted_data_format.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=138f0f10dad8a127cface25d11d502bb" alt="Opciones de formato del documento" style={{ width:"61%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_extracted_data_format.png" />
</Frame>

**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

  <Warning>
    **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.
  </Warning>

* **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

3. Seleccione **Annotated Text** para obtener los mejores resultados

<Note>
  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.
</Note>

***

<div id="step-9-test-your-extraction">
  ## Paso 9: Pruebe la extracción
</div>

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

<div id="run-the-activity">
  ### Ejecute la actividad
</div>

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**.

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_json_output_format.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=a4885a4609b89597c9113b43ca825883" alt="Actividad de prueba" style={{ width:"60%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_json_output_format.png" />
</Frame>

5. 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.

<div id="review-results">
  ### Revisar resultados
</div>

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

<Frame>
  <img src="https://mintcdn.com/abbyy/avxuzLZ1P3ksjmH1/images/vantage/how-to/prompt-extraction/how_to_activity_editor.png?fit=max&auto=format&n=avxuzLZ1P3ksjmH1&q=85&s=ca35ebd6bead5efce02f1e85af1afaed" alt="Revisión de resultados" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_activity_editor.png" />
</Frame>

**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)

<div id="common-result-patterns">
  ### Patrones de resultados comunes
</div>

**Extracción exitosa:**

```json theme={null}
{
  "Fields": [
    { "FieldName": "Vendor.Name", "Text": "ABC Corporation Ltd", "Line": 3 },
    { "FieldName": "Vendor.Address", "Text": "123 Business Street\nLondon SW1A 1AA", "Line": 5 },
    { "FieldName": "Vendor.IBAN", "Text": "GB29 NWBK 6016 1331 9268 19", "Line": 15 }
  ]
}
```

**Extracción parcial (faltan algunos campos):**

```json theme={null}
{
  "Fields": [
    { "FieldName": "Vendor.Name", "Text": "ABC Corporation Ltd", "Line": 3 }
  ]
}
```

**No se encontraron campos:**

```json theme={null}
{
  "Fields": []
}
```

***

<div id="step-10-refine-your-prompt">
  ## Paso 10: Refina tu prompt
</div>

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

<div id="common-issues-and-solutions">
  ### Problemas comunes y soluciones
</div>

**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`

<div id="iterative-improvement-process">
  ### Proceso de mejora iterativa
</div>

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.

<div id="example-refinements">
  ### Ejemplos de mejoras
</div>

**Antes:**

```
VENDOR NAME
1) Extract the vendor name from the document.
```

**Después:**

```
VENDOR NAME
1) Recognize names like "ABC Corporation", "XYZ Ltd", "Acme Inc.".
2) Extract the complete company name including legal suffixes (Ltd, Inc, GmbH, etc.).
3) Vendor name typically appears near the top of the document.
4) Exclude customer/buyer names - focus on the entity issuing the invoice.
```

***

<div id="understanding-the-extraction-process">
  ## Entender el proceso de extracción
</div>

<div id="how-prompt-based-extraction-works">
  ### Cómo funciona la Extracción basada en prompts
</div>

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.

<div id="token-usage-and-costs">
  ### Uso de tokens y costos
</div>

**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.

***

<div id="best-practices">
  ## Buenas prácticas
</div>

<div id="prompt-writing">
  ### Redacción de prompts
</div>

**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.

<div id="field-definitions">
  ### Definiciones de campos
</div>

**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:**

```
IBAN
1) Recognize "IBAN", "International Bank Account Number".
2) Extract the full IBAN exactly as printed (include spaces).
3) Vendor-side only, typically under "Bankverbindung", "Payment Details".
4) Do NOT confuse with Account Number — IBAN is longer and alphanumeric.
```

<div id="testing-strategy">
  ### Estrategia de pruebas
</div>

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.

<div id="performance-optimization">
  ### Optimización del rendimiento
</div>

**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.

***

<div id="troubleshooting">
  ## Solución de problemas
</div>

<div id="extraction-issues">
  ### Problemas de extracción
</div>

**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'".

<div id="performance-issues">
  ### Problemas de rendimiento
</div>

**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.

***

<div id="advanced-techniques">
  ## Técnicas avanzadas
</div>

<div id="conditional-extraction">
  ### Extracción condicional
</div>

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

```
ACCOUNT NUMBER (CONDITIONAL)
1) Only extract if the document contains bank payment details.
2) If "Payment Method: Check" or similar appears, omit this field.
3) Recognize "Account Number", "Account No", "Acct #".
```

<div id="multi-language-support">
  ### Compatibilidad multilingüe
</div>

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

```
VENDOR NAME (MULTI-LANGUAGE)
1) Reconocer en inglés: "Vendor Name", "Supplier", "Seller"
2) Reconocer en alemán: "Verkäufer", "Lieferant", "Anbieter"
3) Reconocer en francés: "Fournisseur", "Vendeur"
4) Extraer el nombre completo de la empresa independientemente del idioma.
```

<div id="validation-rules">
  ### Reglas de Validación
</div>

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

```
IBAN (WITH VALIDATION)
1) Extract the full IBAN exactly as printed.
2) Verify it starts with a 2-letter country code.
3) If format doesn't match IBAN pattern, omit the field.
4) Do not invent check digits or country codes.
```

<div id="field-relationships">
  ### Relaciones entre campos
</div>

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

```
ACCOUNT NUMBER vs IBAN
- Account Number: Usually shorter, numeric, domestic format.
- IBAN: Alphanumeric, starts with country code (e.g., "GB29 NWBK...").
- If both are present, extract both to separate fields.
- If only one is present, extract to the appropriate field.
- Do not duplicate the same value in both fields.
```

***

<div id="limitations-and-considerations">
  ## Limitaciones y consideraciones
</div>

<div id="current-capabilities">
  ### Capacidades actuales
</div>

**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

<div id="when-to-use-prompt-based-extraction">
  ### Cuándo usar la extracción basada en prompts
</div>

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](/es/vantage/documentation/llms/llms#when-to-use-llms).

***

<div id="integration-with-document-skills">
  ## Integración con Skills de documento
</div>

<div id="using-extracted-data">
  ### Uso de los datos extraídos
</div>

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.

<div id="combining-with-other-activities">
  ### Combinación con otras actividades
</div>

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

```
Ejemplo de workflow:
1. Classification (identificar el tipo de documento)
2. Reconocimiento óptico de caracteres (OCR) (extraer texto)
3. Extracción basada en prompts (extraer datos estructurados)
4. Reglas de Validación (verificar la calidad de los datos)
5. Script (dar formato para exportar)
6. Actividad Output (entregar resultados)
```

<div id="field-mapping">
  ### Asignación de campos
</div>

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.

***

<div id="summary">
  ## Resumen
</div>

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!

***

<div id="next-steps">
  ## Próximos pasos
</div>

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.

***

<div id="additional-resources">
  ## Recursos adicionales
</div>

* **Documentación de ABBYY Vantage Advanced Designer:** [https://docs.abbyy.com](https://docs.abbyy.com)
* **Guía de configuración de conexiones LLM:** [Configurar conexiones LLM](/es/vantage/documentation/skills/connections).
* **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.

***

<div id="frequently-asked-questions">
  ## Preguntas frecuentes
</div>

**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.
