Formation

Extraire des données fiables : sorties structurées et validation

Transformer des CV, des e-mails de commande et des comptes rendus en JSON fiable avec Gemini : schémas Pydantic, validation, réparation, revue humaine et précision mesurée par champ sur un jeu annoté.

Intermédiaire 8 leçons 4h
Commencer la formation
Progression 0% · 0/8

Un LLM lit très bien un e-mail de commande. Mais votre logiciel de gestion, lui, ne lit pas « deux sacs de café pour jeudi » : il veut {"reference": "CAF-1KG", "quantite": 2, "date_livraison": "2026-10-15"}, à chaque fois, au bon format, sans invention. Cette formation vous apprend à obtenir ce JSON, à le vérifier, à le réparer quand il est faux, à envoyer les cas douteux à un humain, et surtout à mesurer combien de champs sont justes.

Fil rouge : une petite entreprise fictive reçoit des CV, des e-mails de commande et des comptes rendus de réunion. Un pipeline Python les transforme en données structurées, et un script d'évaluation compare le résultat à un jeu de 15 documents annotés à la main.

Pour qui ?

  • Vous savez appeler Gemini en Python (par exemple après Premiers pas avec l'API Gemini en Python).
  • Vous êtes à l'aise avec les classes Python, les dictionnaires et JSON.
  • Pydantic n'est pas un prérequis : il est expliqué dès la première utilisation.

Ce que l'on construit

flowchart LR
  D["15 documents : CV, e-mails, comptes rendus"] --> E["extraction.py"]
  S["schemas.py : modèles Pydantic"] --> E
  E -->|"response_schema"| G["Gemini (API ou Vertex AI)"]
  G -->|"JSON"| V{"Validation Pydantic"}
  V -->|"invalide"| R["Réparation : erreurs renvoyées au modèle"]
  R --> V
  V -->|"valide"| C{"Confiance et champs incertains"}
  C -->|"douteux"| H["Revue humaine"]
  C -->|"sûr"| O["resultats.jsonl"]
  H --> O
  O --> M["evaluer.py : précision par champ"]
  A["jeu_annote.jsonl : réponses attendues"] --> M

Prérequis

  • Python 3.10 ou plus récent.
  • Sans GCP : une clé d'API Gemini (Google AI Studio) dans .env.
  • Avec GCP : un projet Google Cloud avec l'API Vertex AI activée et gcloud auth application-default login. Aucune ressource n'est créée : on ne fait que des appels au modèle.

Programme

ModuleLeçonsDurée indicative
1. Sorties structuréesDu texte libre au JSON garanti ; modéliser avec Pydantic (énumérations, optionnels)1h
2. FiabiliserValider et réparer ; confiance et revue humaine1h
3. À l'échelleExtraction en lot (API Gemini et Vertex AI) ; construire un jeu annoté ; mesurer la précision par champ1h20
4. Projet finalComparer trois modèles, analyser les erreurs, décider40 min

Le code du lab

Dans files/ : schemas.py (les 3 schémas), extraction.py (le pipeline), evaluer.py (la précision par champ), jeu_annote.jsonl (15 documents fictifs annotés), test_extraction.py (7 tests sans clé).

terminal
cd files
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env                                 # puis votre clé, ou la config Vertex AI
pytest -q                                            # sans clé
python extraction.py jeu_annote.jsonl resultats.jsonl   # 15 appels au modèle
python evaluer.py jeu_annote.jsonl resultats.jsonl

Sans GCP ou avec GCP ?

Sans GCP (API Gemini)Avec GCP (Vertex AI)
AuthentificationGOOGLE_API_KEYidentifiants Google Cloud (ADC), pas de clé
Configuration.env avec la cléGOOGLE_GENAI_USE_VERTEXAI=TRUE, projet, région
Modèle testégemini-3.5-flash, gemini-3.5-flash-litegemini-2.5-flash en europe-west1
Donnéestraitées par l'API Geminirestent dans la région choisie de votre projet
Codeidentiqueidentique

Tout le code a été exécuté le 2026-10-15 sur les deux plateformes ; les chiffres cités dans les leçons viennent de ces exécutions.

Ressources

Tout télécharger (.zip)

Références