GSP1139
Présentation
Document AI est une solution de reconnaissance de documents qui exploite des données non structurées (par exemple, des documents, des e-mails, des factures, des formulaires, etc.) et en facilite la compréhension, l'analyse et l'utilisation. L'API fournit une structure via la classification de contenu, l'extraction d'entités, la recherche avancée, etc.
Dans cet atelier, vous allez apprendre à utiliser l'analyseur de formulaires de Document AI pour analyser un formulaire manuscrit avec Python. Vous allez utiliser un formulaire d'admission médicale simple comme exemple, mais cette procédure fonctionne avec n'importe quel formulaire généralisé compatible avec DocAI.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Extraire des données d'un formulaire scanné à l'aide de l'analyseur de formulaires de Document AI
- Extraire des paires clé/valeur d'un formulaire à l'aide de l'analyseur de formulaires de Document AI
- Extraire et exporter des données CSV à partir d'un formulaire à l'aide de l'analyseur de formulaires de Document AI
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Activer l'API Document AI
Avant de pouvoir utiliser Document AI, vous devez activer l'API.
-
Ouvrez Cloud Shell en cliquant sur le bouton Activer Cloud Shell en haut de la console.
-
Dans Cloud Shell, exécutez la commande suivante pour activer l'API Document AI.
gcloud services enable documentai.googleapis.com
L'écran qui s'affiche devrait ressembler à ce qui suit :
Operation "operations/..." finished successfully.
Vous devrez également installer Pandas, une bibliothèque d'analyse de données Open Source pour Python.
- Exécutez la commande suivante pour installer Pandas.
pip3 install --upgrade pandas
- Exécutez la commande suivante pour installer les bibliothèques clientes Python pour Document AI.
pip3 install --upgrade google-cloud-documentai
L'écran qui s'affiche devrait ressembler à ce qui suit :
...
Installing collected packages: google-cloud-documentai
Successfully installed google-cloud-documentai-2.15.0
Vous êtes maintenant prêt à utiliser l'API Document AI.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Activer l'API Document AI
Tâche 2 : Créer un processeur d'analyse de formulaires
Vous devez d'abord créer une instance d'analyseur de formulaires à utiliser sur la plate-forme Document AI lors de ce tutoriel.
- Dans la console Cloud, ouvrez le menu de navigation (
), cliquez sur Afficher tous les produits > Intelligence artificielle > Document AI.

- Cliquez sur Explorer les processeurs, puis dans Général, cliquez sur Analyseur de formulaires pour ouvrir la page Créer un processeur.

-
Nommez-le lab-form-parser et sélectionnez la région la plus proche dans la liste.
-
Cliquez sur Créer pour créer le processeur.
-
Copiez l'ID de votre processeur. Vous devrez l'utiliser ultérieurement dans votre code.

Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un processeur
Tester le processeur dans la console Cloud
Vous pouvez tester votre processeur dans la console en important un document.
- Effectuez un clic droit sur l'image ci-dessous, puis sélectionnez Enregistrer l'image sous pour télécharger l'exemple de formulaire.

- Sur la page Détails du processeur, cliquez sur Importer un document de test. Sélectionnez le formulaire que vous venez de télécharger.
Votre processeur d'analyse de formulaires traitera le document et renverra les données de formulaire analysées. Le résultat devrait ressembler à ce qui suit :

Tâche 3 : Télécharger l'exemple de formulaire
Dans cette section, vous allez télécharger un exemple de document contenant un formulaire d'admission médicale simple.
- Exécutez la commande suivante pour télécharger l'exemple de formulaire dans Cloud Shell.
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/form-parser/intake-form.pdf .
- Vérifiez que le fichier a bien été téléchargé dans Cloud Shell à l'aide de la commande suivante :
ls intake-form.pdf
Tâche 4 : Extraire les paires clé/valeur du formulaire
Dans cette section, vous allez utiliser l'API de traitement en ligne pour appeler le processeur d'analyse de formulaires que vous venez de créer. Ensuite, vous allez extraire les paires clé/valeur détectées dans le document.
Le traitement en ligne permet d'envoyer un unique document. Vous n'avez ensuite plus qu'à attendre la réponse. Vous pouvez également utiliser le traitement par lot si vous souhaitez envoyer plusieurs fichiers ou si la taille du fichier dépasse le nombre maximal de pages pour le traitement en ligne.
Le code permettant d'envoyer une requête de traitement est presque identique pour tous les types de processeurs : seul l'ID du processeur change. L'objet de réponse Document contient une liste des pages du document d'entrée. Chaque objet page contient une liste de champs de formulaire et leur emplacement dans le texte.
Le code suivant parcourt chaque page et en extrait l'ensemble des clés, valeurs et scores de confiance. Il s'agit de données structurées qui peuvent être plus facilement stockées dans des bases de données ou utilisées dans d'autres applications.
- Dans Cloud Shell, créez un fichier nommé
form_parser.py et collez-y le code suivant :
import pandas as pd
from google.cloud import documentai_v1 as documentai
def online_process(
project_id: str,
location: str,
processor_id: str,
file_path: str,
mime_type: str,
) -> documentai.Document:
"""
Processes a document using the Document AI Online Processing API.
"""
opts = {"api_endpoint": f"{location}-documentai.googleapis.com"}
# Instantiates a client
documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts)
# The full resource name of the processor, e.g.:
# projects/project-id/locations/location/processor/processor-id
# You must create new processors in the Cloud Console first
resource_name = documentai_client.processor_path(project_id, location, processor_id)
# Read the file into memory
with open(file_path, "rb") as image:
image_content = image.read()
# Load Binary Data into Document AI RawDocument Object
raw_document = documentai.RawDocument(
content=image_content, mime_type=mime_type
)
# Configure the process request
request = documentai.ProcessRequest(
name=resource_name, raw_document=raw_document
)
# Use the Document AI client to process the sample form
result = documentai_client.process_document(request=request)
return result.document
def trim_text(text: str):
"""
Remove extra space characters from text (blank, newline, tab, etc.)
"""
return text.strip().replace("\n", " ")
PROJECT_ID = "YOUR_PROJECT_ID"
LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu'
PROCESSOR_ID = "FORM_PARSER_ID" # Create processor in Cloud Console
# The local file in your current working directory
FILE_PATH = "form.pdf"
# Refer to https://cloud.google.com/document-ai/docs/processors-list
# for supported file types
MIME_TYPE = "application/pdf"
document = online_process(
project_id=PROJECT_ID,
location=LOCATION,
processor_id=PROCESSOR_ID,
file_path=FILE_PATH,
mime_type=MIME_TYPE,
)
names = []
name_confidence = []
values = []
value_confidence = []
for page in document.pages:
for field in page.form_fields:
# Get the extracted field names
names.append(trim_text(field.field_name.text_anchor.content))
# Confidence - How "sure" the Model is that the text is correct
name_confidence.append(field.field_name.confidence)
values.append(trim_text(field.field_value.text_anchor.content))
value_confidence.append(field.field_value.confidence)
# Create a Pandas Dataframe to print the values in tabular format.
df = pd.DataFrame(
{
"Field Name": names,
"Field Name Confidence": name_confidence,
"Field Value": values,
"Field Value Confidence": value_confidence,
}
)
print(df)
- Remplacez
YOUR_PROJECT_ID, YOUR_PROJECT_LOCATION, YOUR_PROCESSOR_ID et FILE_PATH par les valeurs appropriées pour votre environnement.
Remarque : FILE_PATH correspond au nom du fichier que vous avez téléchargé dans Cloud Shell à l'étape précédente. Si vous n'avez pas renommé le fichier, il devrait s'appeler intake-form.pdf. C'est cette valeur que vous devez indiquer dans le code.
- Exécutez le script avec la commande suivante :
python3 form_parser.py
Vous devriez obtenir le résultat suivant :
Field Name Field Name Confidence Field Value Field Value Confidence
0 Phone #: 0.999982 (906) 917-3486 0.999982
1 Emergency Contact: 0.999972 Eva Walker 0.999972
2 Marital Status: 0.999951 Single 0.999951
3 Gender: 0.999933 F 0.999933
4 Occupation: 0.999914 Software Engineer 0.999914
5 Referred By: 0.999862 None 0.999862
6 Date: 0.999858 9/14/19 0.999858
7 DOB: 0.999716 09/04/1986 0.999716
8 Address: 0.999147 24 Barney Lane 0.999147
9 City: 0.997718 Towaco 0.997718
10 Name: 0.997345 Sally Walker 0.997345
11 State: 0.996944 NJ 0.996944
...
Tâche 5 : Analyser des tableaux
L'analyseur de formulaires peut également extraire des données de tableaux dans des documents. Dans cette section, vous allez télécharger un nouvel exemple de document et extraire les données du tableau. Puisque vous chargez les données dans Pandas, vous pouvez les exporter dans un fichier CSV et dans de nombreux autres formats en utilisant un seul appel de méthode.
Télécharger le formulaire d'exemple contenant des tableaux
Notre exemple de document contient un formulaire et un tableau.
- Exécutez la commande suivante pour télécharger l'exemple de formulaire dans Cloud Shell.
gcloud storage cp gs://cloud-samples-data/documentai/codelabs/form-parser/form_with_tables.pdf .
- Vérifiez que le fichier a bien été téléchargé dans Cloud Shell à l'aide de la commande suivante :
ls form_with_tables.pdf
Extraire les données des tableaux
La requête de traitement des données de tableaux est identique à la requête d'extraction de paires clé/valeur. La différence réside dans les champs à partir desquels vous extrayez les données dans la réponse. Les données des tableaux sont stockées dans le champ pages[].tables[].
Cet exemple extrait les informations des lignes d'en-tête et des lignes de corps de chaque tableau sur toutes les pages, puis affiche le tableau et l'enregistre au format CSV.
- Créez un fichier nommé
table_parsing.py et collez-y le code suivant :
# type: ignore[1]
"""
Uses Document AI online processing to call a form parser processor
Extracts the tables and data in the document.
"""
from os.path import splitext
from typing import List, Sequence
import pandas as pd
from google.cloud import documentai
def online_process(
project_id: str,
location: str,
processor_id: str,
file_path: str,
mime_type: str,
) -> documentai.Document:
"""
Processes a document using the Document AI Online Processing API.
"""
opts = {"api_endpoint": f"{location}-documentai.googleapis.com"}
# Instantiates a client
documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts)
# The full resource name of the processor, e.g.:
# projects/project-id/locations/location/processor/processor-id
# You must create new processors in the Cloud Console first
resource_name = documentai_client.processor_path(project_id, location, processor_id)
# Read the file into memory
with open(file_path, "rb") as image:
image_content = image.read()
# Load Binary Data into Document AI RawDocument Object
raw_document = documentai.RawDocument(
content=image_content, mime_type=mime_type
)
# Configure the process request
request = documentai.ProcessRequest(
name=resource_name, raw_document=raw_document
)
# Use the Document AI client to process the sample form
result = documentai_client.process_document(request=request)
return result.document
def get_table_data(
rows: Sequence[documentai.Document.Page.Table.TableRow], text: str
) -> List[List[str]]:
"""
Get Text data from table rows
"""
all_values: List[List[str]] = []
for row in rows:
current_row_values: List[str] = []
for cell in row.cells:
current_row_values.append(
text_anchor_to_text(cell.layout.text_anchor, text)
)
all_values.append(current_row_values)
return all_values
def text_anchor_to_text(text_anchor: documentai.Document.TextAnchor, text: str) -> str:
"""
Document AI identifies table data by their offsets in the entirety of the
document's text. This function converts offsets to a string.
"""
response = ""
# If a text segment spans several lines, it will
# be stored in different text segments.
for segment in text_anchor.text_segments:
start_index = int(segment.start_index)
end_index = int(segment.end_index)
response += text[start_index:end_index]
return response.strip().replace("\n", " ")
PROJECT_ID = "YOUR_PROJECT_ID"
LOCATION = "YOUR_PROJECT_LOCATION" # Format is 'us' or 'eu'
PROCESSOR_ID = "FORM_PARSER_ID" # Create processor before running sample
# The local file in your current working directory
FILE_PATH = "form_with_tables.pdf"
# Refer to https://cloud.google.com/document-ai/docs/file-types
# for supported file types
MIME_TYPE = "application/pdf"
document = online_process(
project_id=PROJECT_ID,
location=LOCATION,
processor_id=PROCESSOR_ID,
file_path=FILE_PATH,
mime_type=MIME_TYPE,
)
header_row_values: List[List[str]] = []
body_row_values: List[List[str]] = []
# Input Filename without extension
output_file_prefix = splitext(FILE_PATH)[0]
for page in document.pages:
for index, table in enumerate(page.tables):
header_row_values = get_table_data(table.header_rows, document.text)
body_row_values = get_table_data(table.body_rows, document.text)
# Create a Pandas Dataframe to print the values in tabular format.
df = pd.DataFrame(
data=body_row_values,
columns=pd.MultiIndex.from_arrays(header_row_values),
)
print(f"Page {page.page_number} - Table {index}")
print(df)
# Save each table as a CSV file
output_filename = f"{output_file_prefix}_pg{page.page_number}_tb{index}.csv"
df.to_csv(output_filename, index=False)
- Remplacez
YOUR_PROJECT_ID, YOUR_PROJECT_LOCATION, YOUR_PROCESSOR_ID et FILE_PATH par les valeurs appropriées pour votre environnement.
Remarque : FILE_PATH correspond au nom du fichier que vous avez téléchargé dans Cloud Shell à l'étape précédente. Si vous n'avez pas renommé le fichier, il devrait s'appeler form_with_tables.pdf. Il s'agit de la valeur par défaut, et vous n'avez pas besoin de la modifier.
- Exécutez le script avec la commande suivante :
python3 table_parsing.py
Vous devriez obtenir le résultat suivant :
Page 1 - Table 0
Item Description
0 Item 1 Description 1
1 Item 2 Description 2
2 Item 3 Description 3
Le répertoire à partir duquel vous exécutez le code devrait également comporter un nouveau fichier CSV.
- Exécutez la commande suivante pour lister les fichiers de votre répertoire de travail actuel :
ls
Vous devriez obtenir le résultat suivant :
form_with_tables_pg1_tb0.csv
Félicitations !
Vous avez réussi à utiliser l'API Document AI pour extraire des données d'un formulaire manuscrit. Vous avez également appris à utiliser la bibliothèque cliente Python de Document AI pour extraire des paires clé/valeur d'un formulaire ainsi que des données tabulaires d'un formulaire contenant des tableaux.
Étapes suivantes et informations supplémentaires
Consultez les ressources suivantes pour en savoir plus sur Document AI et la bibliothèque cliente Python :
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière modification du manuel : 21 juillet 2025
Dernier test de l'atelier : 21 juillet 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.