Formation

FAQ de SAV : citations obligatoires et refus

Construire un assistant de service client qui répond avec la FAQ en citant ses sources, dit « je ne sais pas » hors périmètre grâce à un seuil calibré, et journalise les questions non couvertes ; version chaîne simple et version agent ADK.

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

Un assistant de service après-vente (SAV) qui invente un délai de remboursement coûte plus cher qu'un assistant qui n'existe pas. Ce lab construit un assistant pour Roue Libre, une boutique fictive de vélos électriques, avec trois garde-fous mesurés :

  1. un seuil de pertinence : si aucune entrée de FAQ n'est assez proche de la question, on refuse sans appeler le modèle ;
  2. des citations obligatoires [FAQ-xx], vérifiées par du code : une réponse sans citation, ou qui cite une entrée non récupérée, est remplacée par un refus ;
  3. un journal des questions non couvertes, pour savoir quelles entrées ajouter à la FAQ.

Ce que vous allez construire

flowchart LR
  Q["Question client"] --> A["Agent ADK sav_roue_libre"]
  A --> T["Outil rechercher_faq"]
  T --> S{"meilleur score >= seuil ?"}
  S -- "non" --> L["questions_non_couvertes.jsonl"]
  S -- "non" --> HP["hors_perimetre"]
  S -- "oui" --> R["entrées FAQ + scores"]
  HP --> A
  R --> A
  A --> V{"citations valides ?"}
  V -- "oui" --> OK["réponse citée"]
  V -- "non" --> NS["Je ne sais pas + formulaire de contact"]

Pour qui ?

  • Vous avez fait le lab 1 ou vous savez ce que sont un embedding et une similarité cosinus.
  • Vous voulez comprendre comment rendre un RAG prudent et le prouver par des chiffres.
  • Première rencontre avec ADK (Agent Development Kit, le framework d'agents de Google) : tout est expliqué.

Prérequis

  • Python 3.10+, une clé d'API Gemini dans .env (voir .env.example).
  • pip install -r requirements.txt (requirements.txt) : google-genai, google-adk, numpy.

Programme

ModuleLeçonCe que vous faitesFichiers
1. Le cas d'usageLe SAV et ses garde-fousles 3 façons de refuser, la FAQ fictivefaq.json
2. ConstruireIndex, seuil et journalindex en cache, recherche, calibration du seuilfaq_rag.py, eval.py --calibrer
2. ConstruireL'agent ADK et la vérification des citationsoutil, instruction, runner, garde-fouagent.py
3. ÉvaluerÉvaluer et enrichir la FAQtests sans clé, 4 métriques, itération sur l'instruction, rapporttest_faq.py, eval.py, golden.json

En local ou sur GCP ?

Ce labSur Google Cloud
FAQfaq.jsondocument dans Cloud Storage ou base de connaissances
Indexfaq_index.npz (16 vecteurs)Vertex AI RAG Engine
AgentInMemoryRunner en localAgent Engine ou Cloud Run
Journalfichier JSONLBigQuery ou Cloud Logging

Le code complet : faq_rag.py, agent.py, eval.py, test_faq.py.

Ressources

Tout télécharger (.zip)

Références