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

# Extraire des données à l’aide d’activités basées sur des prompts

> Créez des activités d’extraction basées sur des prompts dans ABBYY Vantage Advanced Designer : utilisez des instructions en langage naturel avec des LLM pour extraire des données de documents.

<div id="overview">
  ## Vue d'ensemble
</div>

L'extraction basée sur des prompts vous permet d'utiliser des instructions en langage naturel pour extraire des données structurées à partir de documents à l'aide de LLMs. Au lieu d'entraîner des modèles de machine learning traditionnels, vous décrivez les données que vous souhaitez extraire et la façon dont elles doivent être formatées, et le LLM se charge de l'extraction en fonction de vos instructions.

**Ce que vous allez accomplir :**

* Créer une activité d'extraction basée sur des prompts.
* Configurer une connexion LLM.
* Rédiger des prompts d'extraction efficaces.
* Définir le format et la structure de sortie.
* Appliquer le niveau de rigueur et les Règles de validation.
* Tester et affiner votre extraction.

**Temps nécessaire :** 20-30 minutes

**Cas d'utilisation :**

* Extraction d'informations Fournisseur à partir de factures
* Capture de données de document au niveau de l'en-tête
* Traitement de documents semi-structurés
* Documents avec des mises en page variables

***

<div id="prerequisites">
  ## Prérequis
</div>

Avant de commencer, assurez-vous de disposer de :

1. **Un accès à ABBYY Vantage Advanced Designer**.
2. **Une connexion LLM configurée**. Voir [Configurer les connexions LLM](/fr/vantage/how-to/connections).
3. **Une Compétence de document** avec des documents d’exemple chargés.
4. **Une compréhension de base** de la structure JSON.
5. **Des définitions de champs** pour les données que vous souhaitez extraire.

<Note>
  Ce guide est axé sur l’extraction au niveau de l’en-tête. Les capacités d’extraction de tableaux peuvent varier.
</Note>

***

<div id="understanding-prompt-based-extraction">
  ## Comprendre l’extraction basée sur des prompts
</div>

<div id="what-is-prompt-based-extraction">
  ### Qu'est-ce que l'extraction basée sur des prompts ?
</div>

L'extraction basée sur des prompts utilise des LLM pour comprendre et extraire des données à partir de documents à partir d'instructions en langage naturel. Vous définissez :

* **Rôle** : Le rôle que le LLM doit jouer (par exemple, « modèle d'extraction de données »).
* **Instructions** : Comment extraire et formater les données.
* **Structure de sortie** : Le format JSON exact des résultats.
* **Règles** : Les directives pour gérer les données ambiguës ou manquantes.

<div id="benefits">
  ### Avantages
</div>

* **Aucune donnée d'entraînement requise** : fonctionne simplement grâce au prompt engineering.
* **Flexible** : il est facile d'ajouter ou de modifier des champs.
* **Gère les variations** : les LLM peuvent comprendre différents formats de documents.
* **Configuration rapide** : plus rapide que l'entraînement de modèles de ML traditionnels.
* **Langage naturel** : rédigez les instructions en anglais courant.

<div id="limitations">
  ### Limitations
</div>

* **Coût** : chaque extraction requiert des appels à l’API LLM.
* **Vitesse** : plus lente que l’extraction traditionnelle pour les documents simples.
* **Cohérence** : les résultats peuvent légèrement varier d’une exécution à l’autre.
* **Limites de contexte** : les documents très volumineux peuvent nécessiter un traitement spécifique.

***

<div id="step-1-add-a-prompt-based-activity">
  ## Étape 1 : Ajouter une activité basée sur un prompt
</div>

Créez une nouvelle activité d’extraction basée sur un prompt dans votre Compétence de document.

1. Ouvrez votre Compétence de document dans **ABBYY Vantage Advanced Designer**.
2. Dans le panneau de gauche, repérez **EXTRACT FROM TEXT (NLP)**.
3. Recherchez et cliquez sur **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="Sélection d'une activité basée sur un prompt" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_llm_connection.png" />
</Frame>

4. L’activité apparaît dans votre canevas de flux de travail.
5. Connectez-la entre vos activités d’entrée et de sortie.

<Note>
  les activités basées sur un prompt se trouvent sous « EXTRACT FROM TEXT (NLP) » dans le panneau Activities, à côté d’autres méthodes d’extraction comme Named Entities (NER) et Deep Learning.
</Note>

***

<div id="step-2-configure-the-llm-connection">
  ## Étape 2 : Configurer la connexion LLM
</div>

Sélectionnez la connexion LLM que l'activité doit utiliser.

1. Sélectionnez l'activité basée sur des prompts dans votre workflow.
2. Dans le panneau **Activity Properties** à droite, repérez **LLM Connection**.
3. Cliquez sur le menu déroulant.

<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="Configuration de la connexion LLM" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_llm_connection.png" />
</Frame>

4. Sélectionnez dans la liste votre connexion LLM déjà configurée.
   * Exemple : `Nick-ChatGPT`, `Microsoft Foundry`, `Production GPT-4`
5. Vérifiez que la connexion est bien sélectionnée.

<Note>
  Si aucune connexion n'apparaît dans la liste, vous devez d'abord configurer une connexion LLM via Configuration → Connections.
</Note>

<Note>
  Lorsque vous publiez la compétence, la connexion que vous sélectionnez ici devient la valeur **par défaut** de cette compétence dans le Vantage Web Portal. Sous **Skill Catalog → \[your skill] → Parameters**, la connexion apparaît préremplie. Les administrateurs du tenant peuvent la remplacer par une autre connexion (par exemple, pour faire pointer une compétence de production vers un autre point de terminaison LLM selon l'environnement) sans republier la compétence — voir [paramètres de compétence de document](/fr/vantage/documentation/skill-designer/skill-parameters/document-skill-params).
</Note>

***

<div id="step-3-define-output-fields">
  ## Étape 3 : Définir les champs de sortie
</div>

Configurez les champs que vous souhaitez extraire avant de rédiger votre prompt.

1. Dans le panneau **Activity Properties**, repérez la section **Output**.
2. Vous verrez une liste hiérarchique de groupes de champs et de champs.
3. Pour cet exemple, nous extrayons les informations du fournisseur :
   * Fournisseur
     * Nom
     * Adresse
     * TaxID
     * Numéro de compte
     * Code guichet
     * IBAN
     * BIC\_SWIFT
   * Unité opérationnelle
     * Nom
     * Adresse
     * Date de la facture
     * Numéro de facture
   * Totaux
     * Montant net

<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="Structure de sortie des champs" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_activity_editor.png" />
</Frame>

4. Cliquez sur le bouton **Activity Editor** pour commencer à configurer le prompt.

<Note>
  Définissez tous les champs avant de rédiger votre prompt. Les noms de champs seront utilisés dans la structure de votre prompt.
</Note>

***

<div id="step-4-write-the-role-definition">
  ## Étape 4 : Rédiger la définition du rôle
</div>

Définissez le rôle que le LLM doit jouer lors du traitement de documents.

1. Dans l’Activity Editor, l’interface **Prompt Text** s’affiche.
2. Commencez par la section **ROLE** :

```
RÔLE

Vous êtes un modèle d'extraction de données. Extrayez uniquement les champs 
relatifs au fournisseur spécifiés dans le document. Extrayez le texte de la 
valeur tel quel (pas l'étiquette). N'inférez ni ne reformatez aucune donnée. 
Omettez tout champ qui n'est pas clairement présent.
```

<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="Éditeur Prompt Text" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_prompt_text.png" />
</Frame>

**Instructions clés relatives au rôle :**

* **Soyez spécifique** : "data extraction model" indique au LLM son objectif.
* **Définissez le périmètre** : "vendor-related fields" limite ce qu’il faut extraire.
* **Fixez les attentes** : "value text verbatim" empêche tout reformatage.
* **Gérez les données manquantes** : "Omit any field that is not clairement présent".

**Bonnes pratiques :**

* Gardez le rôle clair et concis.
* Utilisez des formulations à l’impératif ("Extract", "Do not infer").
* Soyez explicite sur ce qu’il NE faut PAS faire.
* Définissez comment gérer les cas limites.

***

<div id="step-5-define-the-output-format">
  ## Étape 5 : Définir le format de sortie
</div>

Spécifiez la structure JSON exacte des résultats d'extraction.

1. Sous la section ROLE, ajoutez l'en-tête **OUTPUT FORMAT**.
2. Définissez la structure 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="Format de sortie JSON" style={{ width:"56%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_json_output_format.png" />
</Frame>

**Composants de la structure :**

* **FieldName**: Doit correspondre exactement à vos définitions de champs (par exemple, `Vendor.Name`).
* **Text**: La valeur extraite sous forme de string.
* **Line**: Index de ligne commençant à 0 où la valeur apparaît dans le document.

**Notes importantes :**

* Utilisez les noms de champs exacts de votre configuration Output.
* Incluez tous les champs, même si certains peuvent être vides.
* La structure doit être un JSON valide.
* Les numéros de ligne facilitent la vérification et le dépannage.

***

<div id="step-6-add-field-specific-extraction-rules">
  ## Étape 6 : Ajouter des règles d’extraction spécifiques à chaque champ
</div>

Fournissez des instructions détaillées pour l’extraction de chaque champ.

Sous OUTPUT FORMAT, ajoutez des règles spécifiques pour chaque type de champ :

```
NOM DU FOURNISSEUR
1) Reconnaître les noms tels que « ABC Corporation », « XYZ Ltd », « Acme Inc. ».
2) Extraire le nom complet de l'entreprise, y compris les suffixes juridiques (Ltd, Inc, GmbH, etc.).
3) Le nom du fournisseur apparaît généralement en haut du document.

ADRESSE DU FOURNISSEUR
1) Extraire l'adresse complète, y compris la rue, la ville et le code postal.
2) Pour les adresses sur plusieurs lignes, représenter chaque nouvelle ligne par « \n ».
3) Côté fournisseur uniquement ; exclure les adresses du client/acheteur.

NUMÉRO DE COMPTE
1) Reconnaître « Numéro de compte », « N° de compte », « Compte n° ».
2) Extraire le format numérique exactement tel qu'imprimé (par ex., « 12-34-56 » ou « 500 105 17 »).
3) Comptes du fournisseur uniquement (par ex., sections « Bénéficiaire » ou « Paiement fournisseur »).
4) Ignorer l'IBAN — il possède son propre champ.

CODE DE TRI
1) Reconnaître « Sort Code », « Sort No. », « BLZ », « Bankleitzahl ».
2) Extraire le format numérique exactement tel qu'imprimé (par ex., « 12-34-56 » ou « 500 105 17 »).
3) Données côté fournisseur uniquement ; ignorer les codes du payeur/acheteur.

IBAN
1) Reconnaître « IBAN », « Numéro de compte bancaire international ».
2) Extraire l'IBAN complet exactement tel qu'imprimé (espaces inclus).
3) Côté fournisseur uniquement, généralement sous « Bankverbindung », « Coordonnées bancaires », « Payment Details » ou « Beneficiary Bank ».

BIC_SWIFT
1) Reconnaître « BIC », « SWIFT » ou « BIC/SWIFT ».
2) Extraire l'identifiant complet (généralement 8 ou 11 lettres/chiffres en majuscules).
3) Côté fournisseur uniquement, près de l'IBAN ou du nom de la banque.
4) Exclure les données du client/payeur.
```

<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="Règles d’extraction" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_prompt_text.png" />
</Frame>

**Structure de la règle :**

* **Modèles de reconnaissance** : Lister des libellés alternatifs pour chaque champ.
* **Spécifications de format** : Décrire le format exact à extraire.
* **Indications de localisation** : Où trouver généralement les données.
* **Exclusions** : Ce qu’il NE FAUT PAS extraire.

**Bonnes pratiques :**

* Numérotez vos règles pour plus de clarté.
* Fournissez plusieurs variantes de libellés.
* Indiquez à qui appartiennent les données (côté fournisseur vs. côté client).
* Incluez des exemples de format entre parenthèses.
* Soyez explicite à propos des champs associés (par ex. : "Ignorer l’IBAN — il possède son propre champ").

***

<div id="step-7-apply-strictness-rules">
  ## Étape 7 : Appliquer des règles de rigueur
</div>

Ajoutez des règles de validation pour garantir la qualité et la cohérence des données.

À la fin de votre prompt, ajoutez une section **RIGUEUR** :

```
STRICTNESS
- Ne jamais générer ou déduire de valeurs.
- Omettre les champs ambigus ou manquants.
- Si aucun des champs du fournisseur n'est trouvé, retourner :
  {
    "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="Règles de rigueur" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_apply_strictness_rules.png" />
</Frame>

**Règles de rigueur supplémentaires (optionnel) :**

```
RÈGLES GÉNÉRALES
- Extraire exactement une valeur par champ.
- Ignorer tout champ qui ne peut pas être localisé avec certitude — l'omettre de la sortie.
- "FieldName" doit correspondre exactement aux noms ci-dessus.
- "Text" doit être copié textuellement du document — aucune normalisation ni inférence.
- Pour les valeurs multilignes (par exemple, les adresses), représenter chaque nouvelle ligne en utilisant la séquence d'échappement "\n" (une barre oblique inverse suivie de la lettre n).
- Ne pas insérer de balises HTML telles que <br> dans le texte de sortie.
- "Line" est l'index de base 0 de la première ligne contenant la valeur extraite ; l'inclure uniquement si vérifiable.
```

**Pourquoi la rigueur est importante :**

* **Empêche les hallucinations** : les LLM peuvent générer des données plausibles mais incorrectes.
* **Garantit la cohérence** : des règles claires réduisent les variations entre exécutions.
* **Gère les données manquantes** : définit quoi faire lorsque des champs ne sont pas trouvés.
* **Maintient l’intégrité des données** : une extraction à l’identique préserve le formatage d’origine.

**Principes clés en matière de rigueur :**

* Ne jamais générer de données qui ne figurent pas dans le document.
* Omettre les extractions incertaines plutôt que de deviner.
* Renvoyer une structure vide si aucun champ n’est trouvé.
* Respecter exactement les noms de champ.
* Préserver le formatage du texte original.

***

<div id="step-8-select-document-format">
  ## Étape 8 : Sélectionner le format de document
</div>

Choisissez quelle représentation du document envoyer au LLM.

1. Dans l'Activity Editor, repérez la liste déroulante **Prompt**.
2. Vous verrez des options indiquant comment le document est fourni au 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="Options de format de document" style={{ width:"61%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_extracted_data_format.png" />
</Frame>

**Formats disponibles :**

* **PDF** : Fichier PDF d'origine

  * À utiliser pour : Documents dont la mise en page est critique
  * Points à prendre en compte : Taille de fichier plus importante, certains LLM offrent une prise en charge du PDF limitée

  <Warning>
    **Déprécié :** Le format de document PDF est déprécié et disponible uniquement sur les connexions OpenAI préexistantes. Ce format n'est plus pris en charge pour aucune nouvelle connexion, quel que soit le fournisseur. Utilisez Annotated Text à la place.
  </Warning>

* **Texte brut** : Extraction de texte non formaté
  * À utiliser pour : Documents simples contenant uniquement du texte
  * Points à prendre en compte : Perte de toute mise en forme et de toutes les informations de disposition

* **Annotated Text** ⭐ (Recommandé)
  * À utiliser pour : La plupart des types de documents
  * Points à prendre en compte : Préserve la structure tout en restant basé sur du texte
  * Avantages : Meilleur compromis entre structure et performances

* **Texte mis en forme** : Texte avec une mise en forme de base préservée
  * À utiliser pour : Documents pour lesquels une partie de la mise en forme est importante
  * Points à prendre en compte : Solution intermédiaire entre Texte brut et Annotated Text

3. Sélectionnez **Annotated Text** pour obtenir les meilleurs résultats

<Note>
  D'après les tests, le format Annotated Text fournit les résultats les plus cohérents et fiables pour les tâches d'extraction. Il préserve la structure du document tout en étant traité efficacement par les LLM.
</Note>

***

<div id="step-9-test-your-extraction">
  ## Étape 9 : Testez votre extraction
</div>

Exécutez l'activité sur des documents d'exemple afin de vérifier les résultats.

<div id="run-the-activity">
  ### Exécuter l’Activity
</div>

1. Fermez l’Activity Editor.
2. Accédez à l’onglet **All Documents**.
3. Sélectionnez un document de test.
4. Cliquez sur le bouton **Test Activity** ou sur **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="Test de l’Activity" style={{ width:"60%" }} width="950" height="1360" data-path="images/vantage/how-to/prompt-extraction/how_to_json_output_format.png" />
</Frame>

5. Attendez que le LLM traite le document.
   * Temps de traitement : généralement de 5 à 30 secondes selon la complexité du document.
   * Un indicateur de chargement s’affiche en attendant la réponse de l’API.

<div id="review-results">
  ### Examiner les résultats
</div>

Une fois le traitement terminé :

1. L’interface bascule en **Predictive view**.
2. Examinez le panneau **Output** affichant les champs extraits.
3. Cliquez sur chaque champ pour voir :
   * Valeur extraite
   * Niveau de confiance (si disponible)
   * Zone surlignée sur l’image du document

<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="Examen des résultats" width="2936" height="1618" data-path="images/vantage/how-to/prompt-extraction/how_to_activity_editor.png" />
</Frame>

**Points à vérifier :**

* ✅ Tous les champs attendus sont renseignés
* ✅ Les valeurs correspondent exactement au document
* ✅ Aucune donnée hallucinée ou déduite
* ✅ Gestion correcte des champs multilignes
* ✅ Les champs manquants sont omis (et non remplis avec des données incorrectes)

<div id="common-result-patterns">
  ### Schémas de résultats courants
</div>

**Extraction réussie :**

```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 }
  ]
}
```

**Extraction partielle (certains champs manquent) :**

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

**Aucun champ trouvé :**

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

***

<div id="step-10-refine-your-prompt">
  ## Étape 10 : Affiner votre prompt
</div>

Affinez votre prompt en fonction des résultats des tests.

<div id="common-issues-and-solutions">
  ### Problèmes courants et solutions
</div>

**Problème : le LLM extrait le mauvais champ**

* **Solution** : Ajoutez des indications de position plus précises.
* **Exemple** : "Côté Fournisseur uniquement ; exclure les adresses client/acheteur"

**Problème : le formatage est modifié**

* **Solution** : Insistez sur l'extraction à l'identique.
* **Exemple** : "Extrayez le format numérique exactement tel qu'imprimé (par ex. '12-34-56')"

**Problème : le LLM invente des données**

* **Solution** : Renforcez les règles de stricte rigueur.
* **Exemple** : "Ne générez ni ne déduisez jamais de valeurs. Omettez-les si elles ne sont pas présentes."

**Problème : les champs multilignes sont concaténés**

* **Solution** : Spécifiez les séquences d'échappement.
* **Exemple** : "Pour les valeurs multilignes, utilisez `\n` pour les retours à la ligne"

**Problème : noms de champs incorrects dans la sortie**

* **Solution** : Vérifiez que les noms de champs correspondent exactement.
* **Exemple** : Utilisez `Vendor.Account Number` et non `AccountNumber`

<div id="iterative-improvement-process">
  ### Processus d'amélioration itératif
</div>

1. **Tester sur plusieurs documents** : ne pas optimiser pour un seul exemple.
2. **Documenter les schémas** : noter quelles règles fonctionnent et lesquelles doivent être affinées.
3. **Ajouter des exemples spécifiques** : inclure des exemples de formats entre parenthèses.
4. **Ajuster le niveau de strictité** : modifier en fonction des schémas de sur‑ ou de sous‑extraction.
5. **Tester les cas limites** : essayer des documents avec des champs manquants, des mises en page inhabituelles.

<div id="example-refinements">
  ### Exemples d’optimisation
</div>

**Avant :**

```
NOM DU FOURNISSEUR
1) Extraire le nom du fournisseur du document.
```

**Après :**

```
NOM DU FOURNISSEUR
1) Reconnaître les noms tels que « ABC Corporation », « XYZ Ltd », « Acme Inc. ».
2) Extraire la raison sociale complète, y compris les suffixes juridiques (Ltd, Inc, GmbH, etc.).
3) Le nom du fournisseur apparaît généralement en haut du document.
4) Exclure les noms de clients/acheteurs - se concentrer sur l'entité qui émet la facture.
```

***

<div id="understanding-the-extraction-process">
  ## Comprendre le processus d’extraction
</div>

<div id="how-prompt-based-extraction-works">
  ### Fonctionnement de l’extraction basée sur des prompts
</div>

1. **Conversion du document** : Votre document est converti dans le format sélectionné (Annotated Text recommandé).
2. **Assemblage du prompt** : Votre rôle, le format de sortie, les règles de champ et les règles de strictité sont combinés.
3. **Appel à l’API** : Le prompt et le document sont envoyés au LLM via votre connexion.
4. **Traitement par le LLM** : Le LLM lit le document et extrait les données conformément à vos instructions.
5. **Réponse JSON** : Le LLM renvoie des données structurées dans le format JSON spécifié.
6. **Correspondance des champs** : Vantage associe la réponse JSON aux champs de sortie que vous avez définis.
7. **Vérification** : Les numéros de ligne et les scores de confiance (s’ils sont fournis) aident à vérifier la précision.

<div id="token-usage-and-costs">
  ### Utilisation des jetons et coûts associés
</div>

**Facteurs influençant le coût :**

* **Longueur du document** : les documents plus longs consomment plus de jetons.
* **Complexité du prompt** : des prompts détaillés augmentent le nombre de jetons.
* **Choix du format** : le format Annotated Text est généralement plus efficace que le PDF.
* **Nombre de champs** : plus de champs = prompts plus longs.

**Conseils d’optimisation :**

* Utilisez un langage concis mais clair dans les prompts.
* Évitez de dupliquer les instructions.
* Supprimez les exemples non essentiels.
* Envisagez de regrouper les champs pour les données connexes.

***

<div id="best-practices">
  ## Bonnes pratiques
</div>

<div id="prompt-writing">
  ### Rédaction de prompts
</div>

**À faire :**

* ✅ Utiliser des énoncés clairs et impératifs ("Extraire", "Reconnaître", "Omettre").
* ✅ Fournir plusieurs variantes de libellés pour chaque champ.
* ✅ Inclure des exemples de format entre parenthèses.
* ✅ Préciser ce qu’il ne faut PAS extraire (exclusions).
* ✅ Numéroter vos règles pour y faire référence facilement.
* ✅ Utiliser une terminologie cohérente dans tout le document.

**À ne pas faire :**

* ❌ Utiliser des instructions vagues ("récupérer le nom").
* ❌ Supposer que le LLM connaît les conventions spécifiques au domaine.
* ❌ Rédiger des phrases trop longues et complexes.
* ❌ Vous contredire dans différentes sections.
* ❌ Ignorer les règles de rigueur.

<div id="field-definitions">
  ### Définitions de champs
</div>

**Instructions efficaces pour les champs :**

* Commencez par les modèles de reconnaissance (libellés alternatifs).
* Précisez le format exact à conserver.
* Fournissez des indications de position (emplacement habituel).
* Définissez l’appartenance des données (Fournisseur vs client).
* Prévoyez la gestion des valeurs sur plusieurs lignes.
* Faites référence aux champs associés pour éviter toute confusion.

**Exemple :**

```
IBAN
1) Reconnaître « IBAN », « International Bank Account Number ».
2) Extraire l'IBAN complet exactement tel qu'imprimé (inclure les espaces).
3) Côté Fournisseur uniquement, généralement sous « Bankverbindung », « Payment Details ».
4) NE PAS confondre avec le Numéro de compte — l'IBAN est plus long et alphanumérique.
```

<div id="testing-strategy">
  ### Stratégie de test
</div>

1. **Commencez par des documents simples** : Testez d'abord l'extraction de base.
2. **Étendez ensuite aux variantes** : Essayez différentes mises en page et différents formats.
3. **Testez les cas limites** : champs manquants, positions inhabituelles, correspondances multiples.
4. **Documentez les échecs** : Conservez des exemples des cas où l'extraction échoue.
5. **Itérez de manière systématique** : Ne modifiez qu'un seul paramètre à la fois.

<div id="performance-optimization">
  ### Optimisation des performances
</div>

**Pour la vitesse :**

* Gardez les prompts concis.
* Utilisez le format Annotated Text.
* Réduisez au minimum le nombre de champs par activité.
* Envisagez de scinder les documents complexes.

**Pour la précision :**

* Fournissez des règles de champ exhaustives.
* Incluez des exemples de format.
* Ajoutez des règles de validation strictes.
* Testez avec un large éventail d’exemples de documents.

**Pour le coût :**

* Optimisez la longueur des prompts.
* Utilisez des formats de documents efficaces.
* Mettez en cache les résultats lorsque c’est approprié.
* Surveillez l’utilisation des tokens via le tableau de bord du fournisseur LLM.

***

<div id="troubleshooting">
  ## Résolution des problèmes
</div>

<div id="extraction-issues">
  ### Problèmes d'extraction
</div>

**Problème :** Les champs sont vides alors que les données sont présentes.

**Solutions :**

* Vérifiez que l’orthographe du nom du champ correspond exactement.
* Vérifiez que les données sont dans le format de document sélectionné.
* Ajoutez davantage de variantes de libellés aux modèles de reconnaissance.
* Réduisez temporairement le niveau de strictité pour voir si le LLM les trouve.
* Vérifiez si la qualité du document affecte la Reconnaissance optique de caractères (OCR) / l’extraction de texte.

**Problème :** Le LLM extrait les données du client au lieu des données du fournisseur.

**Solutions :**

* Renforcez les spécifications du côté fournisseur.
* Ajoutez des exclusions explicites pour les données du client/acheteur.
* Fournissez des indications de localisation (par exemple, "haut du document", "section émetteur").
* Incluez des exemples d’extraction correcte vs. incorrecte.

**Problème :** Les valeurs sur plusieurs lignes sont concaténées ou mal formées.

**Solutions :**

* Indiquez explicitement le format de la séquence d’échappement (`\n`).
* Fournissez des exemples de sortie correcte sur plusieurs lignes.
* Vérifiez que le format du document préserve les sauts de ligne.
* Ajoutez l’instruction : "Conservez les sauts de ligne d’origine en utilisant `\n`".

**Problème :** Le LLM reformate ou normalise les données.

**Solutions :**

* Mettez l’accent sur "textuellement" et "exactement comme imprimé".
* Ajoutez une règle de strictité : "Aucune normalisation ni inférence".
* Fournissez des exemples spécifiques montrant la préservation du formatage.
* Incluez des exemples négatifs : "Pas '12-34-56', conservez '12 34 56'".

<div id="performance-issues">
  ### Problèmes de performance
</div>

**Problème :** L'extraction est trop lente.

**Solutions :**

* Passer au format Annotated Text si vous utilisez un PDF.
* Simplifier le prompt sans perdre les instructions critiques.
* Réduire la résolution du document si les images sont très grandes.
* Vérifier l'état du fournisseur LLM et les limites de taux.
* Envisager d'utiliser un modèle plus rapide pour les documents simples.

**Problème :** Résultats incohérents entre les exécutions.

**Solutions :**

* Renforcer les règles de stricte conformité.
* Rendre les instructions plus spécifiques et non ambiguës.
* Ajouter davantage d'exemples de format.
* Réduire la complexité du prompt qui pourrait laisser place à l'interprétation.
* Tester avec des paramètres de température plus élevés (si disponibles dans la connexion).

**Problème :** Coûts API élevés.

**Solutions :**

* Optimiser la longueur du prompt.
* Utiliser Annotated Text au lieu de PDF.
* Traiter les documents par lots en heures creuses.
* Envisager d'utiliser des modèles plus petits/moins coûteux pour les documents simples.
* Surveiller et définir des alertes de budget dans le tableau de bord du fournisseur LLM.

***

<div id="advanced-techniques">
  ## Techniques avancées
</div>

<div id="conditional-extraction">
  ### Extraction conditionnelle
</div>

Vous pouvez demander au LLM d'extraire certains champs uniquement si des conditions sont remplies :

```
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">
  ### Prise en charge multilingue
</div>

L'extraction basée sur des prompts fonctionne bien avec les documents multilingues :

```
VENDOR NAME (MULTI-LANGUAGE)
1) Recognize in English: "Vendor Name", "Supplier", "Seller"
2) Recognize in German: "Verkäufer", "Lieferant", "Anbieter"
3) Recognize in French: "Fournisseur", "Vendeur"
4) Extract the complete company name regardless of language.
```

<div id="validation-rules">
  ### Règles de validation
</div>

Ajoutez une logique de validation à vos 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">
  ### Relations entre champs
</div>

Indiquez comment les champs sont liés entre eux :

```
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">
  ## Limitations et points à prendre en compte
</div>

<div id="current-capabilities">
  ### Fonctionnalités actuelles
</div>

**Fonctionnalités prises en charge :**

* ✅ Extraction de champs au niveau de l'en-tête
* ✅ Valeurs sur une ou plusieurs lignes
* ✅ Champs multiples par document
* ✅ Logique d'extraction conditionnelle
* ✅ Documents multilingues
* ✅ Mises en page de documents variables

**Fonctionnalités limitées ou non prises en charge :**

* ⚠️ Extraction de tableaux (varie selon l'implémentation)
* ⚠️ Structures complexes imbriquées
* ⚠️ Documents très volumineux (limites de jetons)
* ⚠️ Traitement en temps réel (latence de l'API)
* ⚠️ Résultats entièrement déterministes garantis

<div id="when-to-use-prompt-based-extraction">
  ### Quand utiliser l’extraction basée sur des prompts
</div>

**Idéale pour :**

* Documents avec des mises en page variables
* Documents semi-structurés
* Prototypage et tests rapides
* Volumes de documents faibles à moyens
* Lorsque les données d’entraînement ne sont pas disponibles
* Traitement de documents en plusieurs langues

**À envisager des alternatives pour :**

* Production à hauts volumes (le machine learning traditionnel peut être plus rapide)
* Formulaires fortement structurés (extraction basée sur des modèles)
* Applications sensibles aux coûts (les méthodes traditionnelles peuvent être moins chères)
* Applications sensibles à la latence (les API LLM introduisent une latence réseau)
* Besoins de traitement hors ligne (aucune connexion Internet nécessaire pour les méthodes traditionnelles)

***

<div id="integration-with-document-skills">
  ## Intégration avec les Compétences de document
</div>

<div id="using-extracted-data">
  ### Utilisation des données extraites
</div>

Une fois l'extraction terminée, les données des champs sont disponibles dans l'ensemble de votre Compétence de document :

1. **Activités de validation** : Appliquer des règles métier aux valeurs extraites.
2. **Activités de script** : Traiter ou transformer les données extraites.
3. **Activités d'export** : Envoyer les données vers des systèmes externes.
4. **Interface de révision** : Vérification manuelle des champs extraits.

<div id="combining-with-other-activities">
  ### Combiner avec d'autres activités
</div>

L'extraction basée sur des prompts peut être utilisée en parallèle d'autres activités :

```
Workflow Example:
1. Classification (identify document type)
2. OCR (extract text)
3. Prompt-based extraction (extract structured data)
4. Validation rules (verify data quality)
5. Script (format for export)
6. Output (deliver results)
```

<div id="field-mapping">
  ### Mappage des Fields
</div>

Les champs JSON extraits sont automatiquement mappés sur vos champs de sortie définis :

* `"FieldName": "Vendor.Name"` → Est mappé sur le champ de sortie `Vendor.Name`.
* La hiérarchie des champs est préservée dans la structure de sortie.
* Les numéros de ligne facilitent la vérification et le dépannage.

***

<div id="summary">
  ## Récapitulatif
</div>

Vous avez réussi à :

* ✅ Créer une activité d’extraction basée sur des prompts.
* ✅ Configurer une connexion à un LLM.
* ✅ Rédiger un prompt d’extraction complet avec rôle, format et règles.
* ✅ Sélectionner le format de document optimal (Annotated Text).
* ✅ Appliquer des règles de stricteté pour garantir la qualité des données.
* ✅ Tester l’extraction et examiner les résultats.
* ✅ Apprendre les meilleures pratiques pour l’ingénierie de prompts.

**Points clés à retenir :**

* L’extraction basée sur des prompts utilise des instructions en langage naturel.
* Le format Annotated Text fournit les meilleurs résultats.
* Des prompts clairs et spécifiques produisent une extraction cohérente.
* Les règles de stricteté empêchent les hallucinations et maintiennent la qualité des données.
* Des tests itératifs et un raffinement continu améliorent la précision.

Votre activité d’extraction basée sur des prompts est maintenant prête pour le traitement des documents !

***

<div id="next-steps">
  ## Prochaines étapes
</div>

1. **Testez avec des documents variés** : Validez-les sur différentes mises en page et variantes.
2. **Affinez vos prompts** : Améliorez-les en continu en fonction des résultats.
3. **Surveillez les coûts** : Suivez l’utilisation de jetons dans le tableau de bord de votre fournisseur de LLM.
4. **Optimisez les performances** : Ajustez finement vos prompts pour la rapidité et la précision.
5. **Explorez l’extraction de tableaux** : Expérimentez l’extraction de Lignes d’articles (si pris en charge).
6. **Intégrez-les à vos workflows** : Combinez-les avec d’autres activités pour un traitement complet.

***

<div id="additional-resources">
  ## Ressources supplémentaires
</div>

* **Documentation d’ABBYY Vantage Advanced Designer :** [https://docs.abbyy.com](https://docs.abbyy.com)
* **Guide de configuration des connexions LLM :** [Configurer les connexions LLM](/fr/vantage/how-to/connections).
* **Bonnes pratiques d’ingénierie de prompts :** consultez la documentation de votre fournisseur de LLM.
* **Assistance :** contactez l’assistance ABBYY pour obtenir une aide technique.

***

<div id="frequently-asked-questions">
  ## Foire aux questions
</div>

**Q : Quelle est la différence entre l'extraction basée sur des prompts et l'extraction traditionnelle ?**
R : L'extraction basée sur des prompts utilise des instructions en langage naturel pour les LLM, sans données d'entraînement. Les méthodes traditionnelles nécessitent des exemples d'entraînement, mais sont plus rapides et plus économiques à grande échelle.

**Q : Puis-je extraire des tableaux avec des activités basées sur des prompts ?**
R : L'extraction au niveau des en-tête est bien prise en charge. Les capacités d'extraction de tableaux peuvent varier et nécessiter des structures de prompts spécifiques.

**Q : Pourquoi utiliser Annotated Text plutôt que le PDF ?**
R : Annotated Text offre le meilleur compromis entre préservation de la structure et efficacité de traitement. Il s'est avéré le plus fiable lors des tests.

**Q : Comment puis-je réduire les coûts de l'API ?**
R : Optimisez la longueur des prompts, utilisez le format Annotated Text, traitez efficacement et surveillez l'utilisation des tokens via le tableau de bord de votre fournisseur de LLM.

**Q : Que faire si ma connexion LLM échoue ?**
R : Vérifiez l'état de votre connexion dans Configuration → Connections. Testez la connexion, vérifiez les identifiants et assurez-vous que votre quota d'API n'est pas dépassé.

**Q : Puis-je utiliser plusieurs connexions LLM dans une seule compétence ?**
R : Oui, différentes activités peuvent utiliser différentes connexions. Cela vous permet d'utiliser des modèles distincts pour différentes tâches d'extraction.

**Q : Comment gérer les documents dans plusieurs langues ?**
R : Ajoutez des variantes de libellé multilingues à vos règles de champ. Les LLM gèrent généralement bien le contenu multilingue.

**Q : Quelle est la taille maximale d'un document ?**
R : Cela dépend des limites de tokens de votre fournisseur de LLM. Les documents très volumineux devront peut-être être fractionnés ou traités par sections.
