Extracteur
Ce document décrit comment utiliser l’API DIMARC pour interagir avec les endpoints d’extraction. L’API offre deux approches pour extraire des données structurées de documents.
Prérequis
Section intitulée « Prérequis »- Un compte DIMARC actif.
- Être administrateur de votre organisation.
- Votre token d’authentification
x-api-key(voir Récupération de votre Token d’Authentification)
Deux approches d’extraction
Section intitulée « Deux approches d’extraction »L’API Extracteur propose deux méthodes d’utilisation selon vos besoins:
1. Extracteur Global
Section intitulée « 1. Extracteur Global »L’extracteur global permet de définir le schéma d’extraction directement dans la requête API, sans nécessiter de configuration préalable d’un agent.
Endpoints:
POST /v2/extractorPOST /v2/extractor/asyncCas d’usage: Idéal pour des extractions ponctuelles, des tests, ou lorsque vous souhaitez définir dynamiquement le schéma d’extraction sans passer par l’interface Dimarc.
2. Extracteur avec Agent
Section intitulée « 2. Extracteur avec Agent »L’extracteur avec agent utilise des modèles d’extraction préconfigurés dans l’interface Dimarc. Cette approche est recommandée pour des extractions répétitives avec le même schéma.
Endpoints:
POST /v2/extractor/:agentReferencePOST /v2/extractor/async/:agentReferenceCas d’usage: Recommandé pour des cas d’usage en production où vous avez des modèles d’extraction standardisés et réutilisables.
Récupérer la référence d’un agent
Section intitulée « Récupérer la référence d’un agent »Pour utiliser l’extracteur avec agent, vous devez d’abord récupérer la référence de votre agent:
- Cliquez en haut à droite sur l’icône de votre profil puis accédez à la section Organisation > API ou en cliquant ici
- Dans la section Références de vos agents, vous pouvez récupérer la référence de l’agent Extracteur que vous souhaitez utiliser.
Configurer les modèles d’extraction
Section intitulée « Configurer les modèles d’extraction »Les modèles d’extraction sont configurés dans l’interface Dimarc. Pour ajouter un nouveau modèle, rendez-vous sur votre tableau de bord: https://app.dimarc.ai
Rendez-vous dans la configuration de votre agent Extracteur et ajoutez un nouveau modèle en définissant les champs à extraire.
Modes de traitement
Section intitulée « Modes de traitement »Chaque approche (Global et Agent) offre deux modes de traitement:
- Synchrone: La requête est traitée immédiatement et la réponse est retournée dans la même connexion HTTP.
- Asynchrone: Le traitement est mis en file d’attente et les résultats sont envoyés à un webhook défini une fois l’extraction terminée.
Extraction synchrone
Section intitulée « Extraction synchrone »L’extraction synchrone est idéale pour des traitements rapides ou lorsque votre application attend directement le résultat.
Approche 1: Extracteur Global (Synchrone)
Section intitulée « Approche 1: Extracteur Global (Synchrone) »Cette méthode permet de définir le schéma d’extraction directement dans la requête.
curl --location 'https://api.dimarc.ai/v2/extractor' \--header 'Content-Type: application/json' \--header 'x-api-key: <your_api_key>' \--data '{ "filename": "facture.pdf", "file": "<base64_encoded_file>", "params": [ { "name": "invoice_number", "format": "text", "description": "Numéro de facture" }, { "name": "total_amount", "format": "number", "description": "Montant total TTC" }, { "name": "products", "format": "list", "description": "Liste des produits", "items": [ { "name": "product_name", "format": "text", "description": "Nom du produit" }, { "name": "quantity", "format": "number", "description": "Quantité" } ] } ]}'Paramètres
Section intitulée « Paramètres »| Paramètre | Type | Description |
|---|---|---|
filename | string | Nom du fichier original (avec extension) |
file | string | Contenu du fichier encodé en base64 |
params | array | Tableau définissant le schéma d’extraction (voir Structure des paramètres) |
Approche 2: Extracteur avec Agent (Synchrone)
Section intitulée « Approche 2: Extracteur avec Agent (Synchrone) »Cette méthode utilise un agent préconfiguré avec un schéma d’extraction défini dans l’interface Dimarc.
curl --location 'https://api.dimarc.ai/v2/extractor/<agent_reference>' \--header 'Content-Type: application/json' \--header 'x-api-key: <your_api_key>' \--data '{ "filename": "facture.pdf", "file": "<base64_encoded_file>"}'Paramètres
Section intitulée « Paramètres »| Paramètre | Type | Description |
|---|---|---|
filename | string | Nom du fichier original (avec extension) |
file | string | Contenu du fichier encodé en base64 |
Format de réponse synchrone (commune aux deux approches)
Section intitulée « Format de réponse synchrone (commune aux deux approches) »{ "status": "success", "data": [ { "invoice_number": "INV-2024-001", "total_amount": 1250.50, "products": [ { "product_name": "Produit A", "quantity": 2 }, { "product_name": "Produit B", "quantity": 1 } ] }, ], "metadata": { "filename": "facture.pdf", "duration": "3.45", "tokens_consumed": 1 }}En cas d’erreur
Section intitulée « En cas d’erreur »{ "status": "error", "error": "Extraction failed: Unable to process the document",}Extraction asynchrone
Section intitulée « Extraction asynchrone »L’extraction asynchrone est recommandée pour:
- Les documents volumineux
- Les extractions complexes nécessitant plus de temps
- Les systèmes qui ne peuvent pas attendre une réponse immédiate
Approche 1: Extracteur Global (Asynchrone)
Section intitulée « Approche 1: Extracteur Global (Asynchrone) »Cette méthode permet de définir le schéma d’extraction directement dans la requête.
curl --location 'https://api.dimarc.ai/v2/extractor/async' \--header 'Content-Type: application/json' \--header 'x-api-key: <your_api_key>' \--data '{ "filename": "facture.pdf", "file": "<base64_encoded_file>", "callback": "https://votre-endpoint-de-callback.com/webhook", "params": [ { "name": "invoice_number", "format": "text", "description": "Numéro de facture" }, { "name": "total_amount", "format": "number", "description": "Montant total TTC" } ]}'Paramètres
Section intitulée « Paramètres »| Paramètre | Type | Description |
|---|---|---|
filename | string | Nom du fichier original (avec extension) |
file | string | Contenu du fichier encodé en base64 |
callback | string | URL du webhook qui recevra les résultats |
params | array | Tableau définissant le schéma d’extraction (voir Structure des paramètres) |
Approche 2: Extracteur avec Agent (Asynchrone)
Section intitulée « Approche 2: Extracteur avec Agent (Asynchrone) »Cette méthode utilise un agent préconfiguré avec un schéma d’extraction défini dans l’interface Dimarc.
curl --location 'https://api.dimarc.ai/v2/extractor/async/<agent_reference>' \--header 'Content-Type: application/json' \--header 'x-api-key: <your_api_key>' \--data '{ "filename": "facture.pdf", "file": "<base64_encoded_file>", "callback": "https://votre-endpoint-de-callback.com/webhook"}'Paramètres
Section intitulée « Paramètres »| Paramètre | Type | Description |
|---|---|---|
filename | string | Nom du fichier original (avec extension) |
file | string | Contenu du fichier encodé en base64 |
callback | string | URL du webhook qui recevra les résultats |
Réponse immédiate (commune aux deux approches)
Section intitulée « Réponse immédiate (commune aux deux approches) »{ "status": "started", "extract_id": "550e8400-e29b-41d4-a716-446655440000"}Format de la réponse au webhook
Section intitulée « Format de la réponse au webhook »Lorsque l’extraction est terminée, les résultats sont envoyés à l’URL de callback spécifiée.
En cas de succès
Section intitulée « En cas de succès »{ "status": "success", "extract_id": "550e8400-e29b-41d4-a716-446655440000", "data": { "invoice_number": "INV-2024-001", "total_amount": 1250.50 }, "metadata": { "filename": "facture.pdf", "duration": "3.45", "tokens_consumed": 1 }}En cas d’erreur
Section intitulée « En cas d’erreur »{ "extract_id": "550e8400-e29b-41d4-a716-446655440000", "error": "Extraction failed: Unable to process the document", "detail": "HTTP status: 500"}Structure des paramètres
Section intitulée « Structure des paramètres »Lorsque vous utilisez l’extracteur global, vous devez définir le schéma d’extraction via le paramètre params. Chaque élément du tableau params est un objet avec les propriétés suivantes:
| Propriété | Type | Description |
|---|---|---|
name | string | Nom du champ à extraire |
format | string | Type de données: text, number, boolean, ou list |
description | string | Description claire du champ à extraire (aide l’IA à comprendre) |
items | array | (Requis uniquement pour format: "list") Tableau des sous-champs à extraire pour chaque élément de la liste |
Types de formats supportés
Section intitulée « Types de formats supportés »1. Types simples
Section intitulée « 1. Types simples »Pour les valeurs scalaires, utilisez:
text: Pour du texte, des chaînes de caractèresnumber: Pour des valeurs numériquesboolean: Pour des valeurs vraies/fausses
{ "name": "invoice_number", "format": "text", "description": "Numéro de facture"}2. Listes (format list)
Section intitulée « 2. Listes (format list) »Pour les données complexes comme les tableaux, séries d’articles, etc., utilisez le format list et définissez les sous-éléments dans le tableau items:
{ "name": "products", "format": "list", "description": "Liste des produits dans la facture", "items": [ { "name": "product_name", "format": "text", "description": "Nom du produit" }, { "name": "quantity", "format": "number", "description": "Quantité commandée" }, { "name": "unit_price", "format": "number", "description": "Prix unitaire HT" } ]}Exemple complet de schéma
Section intitulée « Exemple complet de schéma »{ "params": [ { "name": "invoice_number", "format": "text", "description": "Numéro de facture" }, { "name": "invoice_date", "format": "text", "description": "Date d'émission de la facture" }, { "name": "total_ht", "format": "number", "description": "Montant total HT" }, { "name": "total_ttc", "format": "number", "description": "Montant total TTC" }, { "name": "is_paid", "format": "boolean", "description": "La facture est-elle payée?" }, { "name": "products", "format": "list", "description": "Liste des produits facturés", "items": [ { "name": "designation", "format": "text", "description": "Désignation du produit ou service" }, { "name": "quantity", "format": "number", "description": "Quantité" }, { "name": "unit_price", "format": "number", "description": "Prix unitaire HT" } ] } ]}Comparaison des approches
Section intitulée « Comparaison des approches »| Critère | Extracteur Global | Extracteur avec Agent |
|---|---|---|
| Configuration | Schéma défini dans la requête API | Schéma préconfiguré dans l’interface Dimarc |
| Flexibilité | ⭐⭐⭐ Très flexible, schéma différent à chaque requête | ⭐ Schéma fixe, nécessite une modification via l’interface |
| Maintenance | ⚠️ Schéma géré côté code client | ✅ Schéma centralisé |
| Cas d’usage | Tests, extractions ponctuelles, intégrations dynamiques | Production, extractions répétitives, processus standardisés |
| Réutilisabilité | ❌ Chaque client doit définir le schéma | ✅ Schéma partagé entre différents systèmes |
| Complexité requête | Plus volumineuse (inclut le schéma) | Plus légère (seulement le fichier) |
Quelle approche choisir ?
Section intitulée « Quelle approche choisir ? »Choisissez l’Extracteur Global si:
- Vous faites des tests ou du prototypage
- Vous avez besoin de schémas d’extraction différents pour chaque document
- Vous voulez une intégration rapide sans configuration préalable
- Votre cas d’usage est ponctuel ou exploratoire
Choisissez l’Extracteur avec Agent si:
- Vous êtes en production avec des processus répétitifs
- Vous extrayez toujours les mêmes types de données
- Vous souhaitez centraliser la gestion des schémas d’extraction
- Plusieurs systèmes doivent utiliser le même schéma d’extraction
- Vous voulez un meilleur suivi et une meilleure traçabilité
Limites et considérations
Section intitulée « Limites et considérations »- Taille maximale du fichier: 36 Mo
- Formats supportés: PDF, PNG, JPG, JPEG, DOCX, XLSX
- Temps moyen d’extraction: 5 à 10 secondes pour des documents standards (sans trop d’imagerie)
- Le mode asynchrone est fortement recommandé pour les fichiers > 20 Mo
Support et assistance
Section intitulée « Support et assistance »Pour toute question concernant l’API Extracteur, contactez notre équipe de support à l’adresse contact@dimarc.fr