IA Locale & Souveraine #4 : Extraction d’entités — Du texte libre au CSV/JSON exploitable#

CV, formulaires, mails de présentation, notes CRM — vos données arrivent en texte libre. Ce tuto montre comment en extraire prénom, nom, âge, email de façon fiable, typée, et sortir direct un CSV/JSON prêt à charger dans votre SI.
Ce que fait ce tuto (en 15 min)#
- Lit un
prospects.csv(5 bios variées : formats d’âge différents, emails noyés, noms composés typeDe La Tour,N'Guyen). - Prompt système Few-shot (1 exemple) +
response_format={"type":"json_object"}+temperature=0→ extraction JSON stricte, typée (ageenint, pas en string). - Gère les noms composés sans les casser (
De La Tour→ nom complet, pas 3 tokens). - Double export :
fiches_profils.json(complet) +profils_extraits.csv(plat, prêt pour import CRM/Excel). - Récupération des fichiers via
podman cp— zéro montage complexe.
Résultat type#
id,prenom,nom,age,email
1,Julien,Bertrand,34,julien.bertrand@email-pro.fr
2,Claire,Duchemin,28,claire.d@design-studio.io
3,Marc,De La Tour,42,marc.delatour@data-corp.com
4,Sophie,N'Guyen,19,sophie.nguyen99@provider.com
5,Antoine,Vasseur,51,a.vasseur@finance-conseil.frPourquoi c’est robuste#
| Défi extraction | Solution |
|---|---|
| Âge écrit « 34 ans » | Prompt : « age = entier » → modèle convertit seul |
| Email perdu dans la phrase | Few-shot apprend le pattern |
| Noms composés / apostrophes | Exemple De La Tour + N'Guyen dans le few-shot |
| Hallucination champs vides | null explicite si introuvable, pas d’invention |
Pour qui ?#
RH (parsing candidatures), Sales (enrichissement leads), Data (nettoyage bases legacy) — tout cas où du texte sale doit devenir données propres sans quitter votre infra.
Accès au code complet#
👉 Tutoriel pas à pas (GitHub) : 04-extraction/docs/tutoriel.md
Prochain épisode : RAG 100 % local avec preuve d’origine — on prouve que la réponse vient de vos docs, pas de la mémoire du modèle.
