دورة

Présélection de CV équitable

Construire avec Google ADK un assistant qui note des CV fictifs critère par critère face à une fiche de poste, après anonymisation contrôlée par un callback, puis mesurer pour de vrai sa cohérence en permutant noms et genres, avec revue humaine obligatoire.

متقدم 4 دروس 3h30
ابدأ الدورة
التقدّم 0% · 0/4

هذا المحتوى غير مترجم بعد. تُعرض النسخة الأصلية.

Trier des candidatures prend du temps, et un modèle de langage peut aider à lire vite et à justifier une première appréciation. Mais un outil de présélection peut aussi reproduire, à grande échelle, des discriminations liées au nom, au genre, à l'âge ou à l'origine. Ce lab construit un assistant utile et contrôlé : il note des CV fictifs critère par critère, ne voit jamais les attributs sensibles, cite ses preuves, et ne décide de rien.

Ce que vous allez construire

flowchart LR
  CV["CV fictif (identité + sections)"] --> AN["anonymiser() : liste blanche de sections, nom, contacts, accords"]
  AN --> G{"before_model_callback garde_anonymat : attribut sensible présent ?"}
  G -->|"oui"| X["appel BLOQUÉ (PermissionError)"]
  G -->|"non"| M["evaluateur Gemini : output_schema EvaluationCV"]
  M --> S["scorer() : score pondéré, preuves vérifiées"]
  S --> H["revue_humaine.csv : statut en_attente_revue_humaine"]
  • Anonymisation par liste blanche : seules les sections expérience, compétences, formation et langues passent ; le nom, les contacts et les accords grammaticaux de genre sont neutralisés.
  • Un callback qui bloque l'appel au modèle si un attribut sensible du CV d'origine apparaît encore dans la requête.
  • Une sortie structurée : une note de 0 à 3 et une justification avec citation par critère de la fiche de poste.
  • Le score et la tranche sont calculés en Python, et chaque dossier reste en attente de revue humaine.
  • Une évaluation réelle : accord avec un recruteur fictif et test de cohérence en permutant noms et genres.

Pour qui ?

  • Développeurs et équipes data qui conçoivent des outils RH, et toute personne qui veut voir concrètement ce que « contrôles d'équité » veut dire dans du code.
  • Prérequis : un agent ADK avec output_schema, les bases de pytest.

Prérequis

  • Python 3.10+, pip install -r files/requirements.txt (google-adk 2.10.0).
  • Une clé d'API Gemini dans un fichier .env (modèle : .env.example).

Programme

ModuleLeçonCe que vous faites
1. Cas d'usage et architectureUn outil d'aide, pas de décisionRisques, cadre, architecture, données fictives
2. Construire pas à pasAnonymiser et bloquer les fuitesListe blanche, before_model_callback
2. Construire pas à pasNoter par critère, scorer en codeoutput_schema, preuves vérifiées, revue humaine
3. Tester, évaluer, exploiterÉvaluer l'équité pour de vraiTests sans clé, permutations, accord avec un recruteur

En local ou sur GCP ?

En local (ce lab)Sur Google Cloud
ModèleGemini via clé d'APIGemini via Vertex AI, données traitées dans la région choisie
Données6 CV fictifs en JSONCV réels : base légale, information des candidats, durée de conservation
Traçabilitérapport_evaluation.json, revue_humaine.csvjournalisation des versions de prompt, de modèle et des décisions humaines

Le code

Dans le dossier files/ : agent.py, evaluation.py, test_agent.py, cvs.json, fiche_poste.json, reference.json, rapport_evaluation.json (résultat réel), requirements.txt.

الموارد

تنزيل الكل (.zip)

المراجع