Convertissez des documents PDF professionnels de haute qualité dans un format de fichier plus simple pouvant être utilisé par des modèles d'IA.
Vous pouvez utiliser la méthode d'extraction de texte de document de l'API REST watsonx.ai pour convertir les fichiers PDF qui sont très structurés et utilisent des diagrammes, des images et des tableaux pour transmettre des informations, dans un format de fichier plus facile à utiliser par programme, tel que markdown ou JSON.
L'extraction de texte n'est disponible qu'avec les plans payants. La facturation est basée sur le nombre de pages traitées. Pour plus d'informations, voir les détails de la facturation pour les ressources génératives d'IA.
Simplifier vos documents commerciaux de cette manière est particulièrement utile pour les tâches de génération augmentée par extraction, lorsque vous souhaitez trouver des informations pertinentes par rapport à une requête d'utilisateur et les inclure dans les données d'entrée d'un foundation model. L'inclusion d'informations contextuelles précises dans les données d'entrée du modèle permet au foundation model d'intégrer des informations factuelles et actualisées dans les données de sortie du modèle. Pour plus d'informations, voir Retrieval-augmented generation (RAG).
L'API d'extraction de texte applique la technologie de compréhension du langage naturel développée par IBM pour identifier les structures des documents.
L'extraction de texte est un processus asynchrone qui convertit un fichier à la fois. Vous pouvez effectuer des demandes de méthodes parallèles pour extraire du texte d'un ensemble de documents.
Types de fichier pris en charge
Vous pouvez utiliser l'API pour extraire du texte des types de fichiers suivants :
- format PDF
Vous pouvez enregistrer le texte extrait dans les formats suivants :
- JavaScript Object Notation
- Démarque
Gestion des documents
Vous ajoutez les documents que vous souhaitez traiter dans IBM Cloud Object Storage afin de pouvoir les référencer à partir de l'API.
Seuls les actifs de connexion qui utilisent la paire " Clé d'accès et clé secrète pour les informations d'identification sont pris en charge. Pour plus d'informations sur l'établissement de la connexion, voir Référencement de fichiers à partir de l'API.
Par exemple, vous faites référence au fichier que vous ajoutez à IBM Cloud Object Storage comme suit :
"document_location": {
"type": "connection_asset",
"connection": {
"id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
},
"location": {
"file_name": "document.pdf",
"bucket":"janessandbox"
}
}
Vous définissez l'emplacement où vous souhaitez stocker le fichier de sortie généré comme suit :
"results_location": {
"type": "connection_asset",
"connection": {
"id": "6f5688fd-f3bf-42c2-a18b-49c0d8a1920d"
},
"location": {
"file_name": "extracted_document.json"
}
}
Langues prises en charge
La capacité d'extraction de texte à partir d'images est appelée reconnaissance optique de caractères (OCR). Cette capacité est utile pour préserver les informations qui sont représentées dans des images, des diagrammes ou du texte intégré dans des fichiers tels que des PDF numérisés.
Bien que la reconnaissance optique de caractères permette d'extraire du texte à partir d'images bruitées, la qualité des fichiers d'image doit répondre à l'exigence minimale de 80 DPI (points par pouce).
Si le document avec images que vous voulez convertir est dans une langue autre que l'anglais, vous devez spécifier la langue par son code ISO 639 dans le paramètre language_list
de votre requête.
"languages_list": [
"fr"
]
Si le document comporte un mélange de langues, il convient d'énumérer chaque langue séparément. La reconnaissance optique de caractères ne peut convertir les images d'un document multilingue que si les langues partagent un script commun. Par exemple, vous pouvez extraire du texte à partir d'images dans un document contenant un mélange de texte anglais et français, car les deux langues sont basées sur le latin. Cependant, vous ne pouvez pas utiliser l'OCR pour extraire le texte des images d'un document contenant à la fois du texte japonais et du texte anglais.
La fonction de reconnaissance optique de caractères permet d'extraire du texte à partir d'images dans des documents rédigés dans les langues suivantes :
Langue | Code linguistique ISO 639 | Script |
---|---|---|
Chinois (simplifié) | zh-CN |
Chinois |
Chinois (traditionnel) | zh-TW |
Chinois |
Danois | da |
Latin |
Néerlandais | nl |
Latin |
Anglais | en |
Latin |
Écriture anglaise | en_hw |
Latin |
Finnois | fi |
Latin |
Français | fr |
Latin |
Allemand | de |
Latin |
Grec | el |
Grec |
Hébreu | he |
Hébreu |
Italien | it |
Latin |
Japonais | ja |
Japonais |
Coréen | ko |
Coréen |
Norvégien (Bokmål) | nb |
Latin |
Norvégien (nynorsk) | nn |
Latin |
Polonais | pl |
Latin |
Portugais | pt |
Latin |
Espagnol | es |
Latin |
Suédois | sv |
Latin |
Extraction de texte à partir de tableaux
Convertir les données tabulaires d'un document en texte consommable qui capture les informations du tableau. De nombreux modèles linguistiques de grande taille ont des difficultés à interpréter correctement les informations tabulaires.
Pour activer la conversion des tableaux, spécifiez le paramètre suivant dans votre demande.
"steps": {
"tables_processing": {
"enabled": true
}
}
Choix du format du fichier de sortie
Par défaut, le texte extrait est écrit en syntaxe JSON. Si vous souhaitez que le texte extrait soit écrit en markdown, spécifiez le paramètre suivant dans le corps de la requête API :
"assembly_md": {}
Détails relatifs aux API
Le diagramme suivant montre le flux de travail que vous utilisez pour extraire des informations structurelles sur un document commercial à l'aide de l'API d'extraction de texte de document.
Suivez les étapes suivantes pour extraire du texte d'un document commercial à l'aide de l'API REST :
Ajoutez le fichier dont vous souhaitez extraire le texte à un IBM Cloud Object Storage bucket, puis définissez une connexion entre votre watsonx.ai et l'instance de service IBM Cloud Object Storage.
Pour plus d'informations, voir Référencement des fichiers de l'API.
Utilisez la méthode Démarrer une demande d'extraction de texte pour lancer le processus d'extraction de texte.
Notez l'identifiant renvoyé dans le champ
metadata.id
. Vous utiliserez cet identifiant comme identifiant d'extraction pour vérifier le statut de votre demande à l'étape suivante.Utilisez la méthode Get the results of the request pour vérifier l'état de votre demande.
La vérification de l'état est le seul moyen de savoir si le processus a échoué pour une raison quelconque.
Lorsque l'état est
Completed
, le fichier texte extrait est disponible dans le IBM Cloud Object Storage bucket spécifié.Téléchargez le fichier généré à partir de Cloud Object Storage.
Pour plus de détails sur les méthodes de l'API, voir la documentation de référence de l'API.
Exemple de demande
Par exemple, la commande suivante soumet une requête pour extraire du texte du fichier " retail_guidebook.pdf
et l'enregistrer au format markdown.
curl -X POST \
'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions?version=2024-10-18' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJraWQiOi...'
Le corps de la requête se présente comme suit :
{
"project_id": "e40e5895-ce4d-42a3-b699-8ac764b89a09",
"document_reference": {
"type": "connection_asset",
"connection": {
"id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
},
"location": {
"bucket":"my-cloud-object-storage-bucket",
"file_name": "retail_guidebook.pdf"
}
},
"results_reference": {
"type": "connection_asset",
"connection": {
"id": "5c0cefce-da57-408b-b47d-58f7785de3ee"
},
"location": {
"bucket":"my-cloud-object-storage-bucket",
"file_name": "output_retail.md"
}
},
"steps": {
"ocr": {
"languages_list": [
"en"
]
},
"tables_processing": {
"enabled": true
}
},
"assembly_md": {}
}
Dans la réponse, copiez le metadata.id
, tel que 64162e0a-b05d-4ba6-a688-422893f58663
. Spécifiez cet identifiant dans le point de terminaison que vous utilisez pour vérifier l'état du processus d'extraction.
curl -X GET \
'https://{region}.ml.cloud.ibm.com/ml/v1/text/extractions/64162e0a-b05d-4ba6-a688-422893f58663?project_id=e40e5895-ce4d-42a3-b699-8ac764b89a09&version=2024-09-23' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJraWQiOi...'
Détails de la sortie
Le texte extrait est écrit dans un fichier markdown portant le nom que vous avez spécifié dans le champ " results_reference.location.file_name
.
La démarque capture les structures du document, telles que les sections et les tableaux. Par exemple, l'image suivante montre comment un tableau du fichier PDF original est représenté en markdown après l'extraction du texte. Un aperçu du tableau markdown est inclus pour montrer que le texte du tableau original dans le PDF reste intact après l'extraction.
Exemple de sortie JSON
Lorsque le texte est extrait vers un fichier JSON, le fichier résultant contient des détails sur les différentes structures de données du document, telles que les sections, les paragraphes, les structures de tableau, les jetons, etc.
Pour plus d'informations sur la manière de travailler avec du texte extrait au format JSON, voir Analyse des structures JSON générées par l'extraction de texte.
Utilisation du texte extrait du fichier PDF
Vous pouvez convertir le fichier markdown généré en fichier texte en changeant l'extension du fichier de " .md
à " .txt
. Le fichier texte résultant comprend les balises markdown. Si vous souhaitez supprimer le balisage, vous pouvez utiliser une bibliothèque d'analyseur syntaxique pour trouver et convertir les balises.
Vous pouvez utiliser une bibliothèque de traitement JSON pour extraire le texte du fichier JSON généré et le stocker en tant que texte brut. Par exemple, la commande suivante extrait le texte de chaque jeton pour toutes les structures du document et le stocke dans un fichier nommé parsed_output_text.txt
:
cat output_retail.json | jq '[.all_structures.tokens[].text] | join(" ")' > parsed_output_text.txt
Après avoir converti le fichier généré en fichier TXT, vous pouvez utiliser le texte extrait comme information contextuelle pour une invite de foundation model manière suivante :
Référencer le texte extrait d'un cahier Python.
Par exemple, vous pouvez utiliser votre fichier TXT au lieu du fichier '
state_of_the_union.txt
dans le cahier d'exemples Utiliser watsonx, Chroma et LangChain pour répondre aux questions (RAG).Vous pouvez utiliser le fichier TXT comme document de base dans Prompt Lab. Pour plus d'informations, consultez la section Ancrer les invites du foundation model dans des informations contextuelles.
En savoir plus
- Extraction programmatique de texte à partir d'un fichier
- Analyse des structures JSON générées par l'extraction de texte
- Références pour l'accès aux programmes
Thème parent: Codage de solutions d'IA générative