Travail final
- Après les études de cas
- environ 5 h
Ce que vous saurez faire
Appliquez chaque module du cours à un changement que les vraies bases de connaissances rencontrent chaque mois. Il comprend de nouveaux documents, une nouvelle version, un avis qui expire et un document réservé au personnel. Vous prouvez par des mesures que l’assistant trouve encore les bonnes preuves et les cite. Il dit « les documents ne le précisent pas » quand c’est le cas, et oublie ce qu’il doit oublier.
Avant de commencerCe qu’il faut savoir et avoir sous la main
- Vous avez terminé les modules 1 à 6. Chaque partie ci-dessous nomme les leçons qu’elle utilise.
- Vous n’avez pas besoin des études de cas pour ce travail. Le certificat en exige au moins une.
- Partez de votre propre
policy-assistantà la fin du module 6, ou copiez l’instantanéend-of-m06du cours. Suivez les étapes de Utiliser un instantané. Exécutez d’abordpython -m pytest: le résultat doit afficher90 passed, 1 deselected(90 tests réussis, 1 exclu) avant tout changement. - Certains tests fixent la collection et le jeu de questions du cours, par exemple 36 documents et 67 questions. Ils échouent après les parties 1 et 2, comme prévu. Mettez leurs nombres à jour. Dans votre rapport, indiquez chaque test modifié et pourquoi.
- La partie 5 exige des appels réels au modèle, car les réponses enregistrées ne peuvent pas répondre aux nouvelles questions. Utilisez un modèle local gratuit avec Ollama, ou votre propre clé, comme le décrit le README du projet. Aucun paiement n’est requis.
- Testé avec Python 3.12 et les versions dans
requirements.txt, sur macOS.
Le changement : trois nouveaux documents
Section intitulée « Le changement : trois nouveaux documents »Mei apporte trois documents de l’équipe de Grace. Rédigez-les vous-même à partir des faits ci-dessous. Utilisez le même format Markdown et les mêmes métadonnées d’en-tête que les autres documents dans corpus/documents/ :
- Avis de retours des Fêtes (public, version 1, en vigueur du 20 novembre 2026 au 31 janvier 2027). Cette dernière date est le dernier jour pour les retours, comme dans l’avis des Fêtes précédent. Les articles achetés entre le 20 novembre 2026 et le 15 janvier 2027 peuvent être retournés jusqu’au 31 janvier 2027. Cela s’applique même si le délai normal de retour est terminé. L’avis ne s’applique pas aux cartes-cadeaux ni aux produits coupés sur mesure.
- Politique de retours, version 5 (publique, en vigueur à partir du 1er février 2027). Identique à la version 4, sauf pour une nouvelle règle. Les gros appareils déballés (nettoyeurs à pression, tondeuses, génératrices) entraînent des frais de remise en stock de 10 % du prix. Ces frais ne s’appliquent pas si l’article est défectueux.
- Procédure en cas de fraude soupçonnée (personnel, version 1, en vigueur à partir du 1er novembre 2026). Ce qu’un agent fait quand un retour semble frauduleux : ne pas accuser le client, ne pas rembourser, ouvrir un dossier pour l’équipe des paiements et répondre avec le texte neutre du document.
Grace pose une question qui décide si la mise à jour sera mise en service : « Un client a acheté une tondeuse livrée le 25 novembre 2026. Le 10 janvier 2027, il demande s’il peut encore la retourner. Les 45 jours de la version 4 se sont terminés le 9 janvier; seul l’avis des Fêtes le permet. L’assistant citera-t-il l’avis des Fêtes, et ne montrera-t-il jamais la procédure de fraude à un client? »
Les documents et les questions sont fictifs. Aucun vrai client.
Partie 1 : rédiger et ingérer les documents
Section intitulée « Partie 1 : rédiger et ingérer les documents »Utilise Conserver les métadonnées et Mises à jour et suppressions.
- Rédigez les trois documents avec toutes les métadonnées d’en-tête (
doc_id,title,version,effective_from,effective_tosi applicable,owner,access,languageetdoc_type). La version 5 conserve ledoc_idde la politique de retours, dans un nouveau fichier commereturns-policy.v5.md. - Faites expirer la version 4 la veille de l’entrée en vigueur de la version 5. Suivez l’exercice du module dans La passation opérationnelle. La version 4 est le fichier HTML
returns-policy.v4.html. Ajoutez donc la ligne<meta name="effective_to" content="2027-01-31">sous sa ligneeffective_from. Sans elle, les deux versions sont en vigueur à partir du 1er février 2027. Ajoutez une ligne pour chaque nouveau document danscorpus/inventory.csv, et définissez-y aussi leeffective_tode la version 4. - Exécutez
python -m policy_assistant ingest. Montrez que seuls les documents nouveaux et modifiés ont été traités, et montrezinfoavant et après. - Montrez avec
chunksque chaque nouveau segment possède un identifiant stable, son document, sa version, sa section et son étiquette d’accès. Retracez trois de ces segments jusqu’à une ligne du fichier source.
Partie 2 : élargir et figer le jeu de questions
Section intitulée « Partie 2 : élargir et figer le jeu de questions »Utilise Le corpus et les questions et Mesurer la récupération.
- Rédigez 12 nouvelles questions, Q68 à Q79, comme nouvelles lignes de
questions/questions.jsonl. Donnez à chaque ligne tous les champs des autres lignes :id,question,language,kind,as_of,public_ok,abstain,reference_answer,keys,must_not,relevant,relevant_chunks,wrong_version,tagsetnotes. Le projet refuse une ligne avec un champ manquant. Copiez une question semblable comme modèle. Par exemple, Q22 pour une question de date ou Q51 pour une question réservée au personnel. Rédigez au moins 3 questions avec une date de référence où l’avis des Fêtes ou la version 5 détermine la réponse. Incluez une question au 10 janvier 2027 et une au 15 février 2027. Ajoutez 2 questions auxquelles seule la règle des frais de remise en stock répond, et 2 auxquelles les documents ne répondent pas. Ajoutez 2 questions réservées au personnel sur la procédure de fraude, 1 en français et 2 questions ordinaires. Donnez à chacune sa réponse de référence et ses passages pertinents. Précisez aussi si un agent destiné au public peut voir la réponse. - Figez le jeu : enregistrez-le dans un commit (enregistrement des changements), ou sauvegardez une copie horodatée, avant d’effectuer toute mesure dessus. Expliquez pourquoi en une phrase, à partir de Mesurer les réponses.
Partie 3 : mesurer équitablement la récupération
Section intitulée « Partie 3 : mesurer équitablement la récupération »Utilise Recherche lexicale, dense et hybride, Reclassement et reformulation des requêtes et Trouver où ça échoue.
- Exécutez
evalsur les 79 questions avec le réglage par défaut du cours (reclassement, 5 premiers résultats). Testez aussi un autre réglage que vous choisissez et justifiez, par exemple--k 10ou--method dense. Changez une seule chose.eval --k 1donne hit@1. - Rapportez hit@5 (ou recall@k), MRR et hit@1, pour l’ensemble et pour vos 12 nouvelles questions. Listez chaque nouvelle question manquée par chaque réglage, avec le rang de son premier passage pertinent.
evalrapporte seulement les résultats pour l’ensemble du jeu et pour chaque type. Pour vos 12 questions, changez les identifiants des questions dans la boucle Python de Trouver où ça échoue. Elle affiche le rang du premier passage pertinent et recall@5. - Pour les questions de date, montrez que le filtre de date renvoie la version en vigueur à la date de la question. Montrez aussi ce qui arrive sans le filtre.
Partie 4 : l’accès, avant que le modèle voie quoi que ce soit
Section intitulée « Partie 4 : l’accès, avant que le modèle voie quoi que ce soit »Utilise Autorisations et isolation.
- Pour un public externe, montrez qu’aucun segment de la procédure de fraude n’atteint le contexte d’une question, même celles réservées au personnel. Montrez que ces questions reçoivent « les documents ne le précisent pas » ou une orientation vers un service, jamais le texte interne.
- Montrez les mêmes questions pour un public de membres du personnel, et que les réponses citent alors la procédure. Les réponses de cette partie nécessitent votre modèle en direct, comme dans la partie 5.
- Expliquez en deux ou trois phrases pourquoi filtrer après la récupération ne suffirait pas, avec vos propres nombres.
Partie 5 : réponses fondées sur les sources et abstention
Section intitulée « Partie 5 : réponses fondées sur les sources et abstention »Utilise Assembler le contexte, Répondre et citer et Traiter les preuves difficiles.
- Exécutez
asksur vos 12 questions avec votre modèle en direct, pour le réglage par défaut. - Pour chaque réponse, rapportez les résultats des vérifications de citations. Notez-la manuellement pour la justesse, l’appui sur les sources et l’exactitude des citations, comme dans Mesurer les réponses.
- Montrez au moins une abstention justifiée. Expliquez au moins une réponse incorrecte, en précisant l’étape où l’échec s’est produit.
Partie 6 : l’avis expire
Section intitulée « Partie 6 : l’avis expire »Utilise Mises à jour et suppressions et La passation opérationnelle.
- Retirez l’avis des Fêtes de la collection, comme Mei le ferait après son expiration, et relancez l’ingestion.
- Prouvez avec
search,chunksetaskqu’aucune entrée d’index ni nouvelle réponse ne renvoie ou ne cite encore ses passages. Montrez que votre question du 10 janvier 2027 entraîne maintenant une abstention ou une réponse fondée sur la version en vigueur. La réponse doit suivre vos documents. - Exécutez
audit. Il vérifie seulement les réponses enregistrées du cours, pas vos réponses en direct. Conservez donc dans un fichier les sorties de vos exécutions deaskde la partie 5. Listez les réponses qui citent un passage de l’avis. Dans un vrai assistant, ce sont les réponses en cache à supprimer. - Mettez à jour le dossier de passation (
infoet le README). Consignez l’empreinte des documents, les modèles et leurs révisions, la version de la requête, les coûts et la commande de reconstruction.
Ce qu’il faut remettre
Section intitulée « Ce qu’il faut remettre »Votre dossier policy-assistant (sans .env, l’index et l’environnement virtuel), avec les nouveaux documents et questions et REPORT.md :
# Policy assistant: holiday notice, returns v5, fraud procedure## Documents and ingestion (Part 1: front matter, incremental ingest, traced chunks)## Question set (Part 2: the 12 questions, frozen before measuring, and why)## Retrieval (Part 3: two settings, one change, the measures and the misses)## Access (Part 4: public vs staff, and why filtering first matters)## Answers and abstention (Part 5: citation checks and hand scores, one right abstention, one failure by stage)## Deletion (Part 6: proof that the notice is gone everywhere)## Handoff and limits (versions, costs, rebuild command; synthetic data, one live model, what you did not test)Vérifiez votre travail
Section intitulée « Vérifiez votre travail »La personne qui révise note chaque élément comme démontré, partiellement démontré ou pas encore démontré, avec une raison. Pour terminer le cours, les quatre éléments obligatoires doivent être démontrés.
- Segments et citations traçables (obligatoire) : chaque nouveau segment remonte à sa ligne source. Chaque citation dans les réponses est vérifiée, et les citations incorrectes sont signalées.
- Un jeu d’évaluation de la récupération (obligatoire) : 12 nouvelles questions avec passages pertinents, figées avant les mesures. Deux réglages qui diffèrent sur un seul point, mesurés sur les 79 questions.
- Abstention fondée sur les preuves (obligatoire) : les questions sans réponse et celles réservées au personnel reçoivent « les documents ne le précisent pas » pour le public externe. Au moins une abstention justifiée est montrée.
- Comportement de mise à jour et de suppression (obligatoire) : ingestion incrémentale, version en vigueur selon la date et preuve que l’avis expiré n’apparaît plus nulle part.
Il n’y a pas de nombres de référence à comparer pour vos nouvelles questions : elles et votre modèle en direct vous appartiennent. Les résultats du cours pour les 67 questions originales figurent dans Mesurer la récupération et Mesurer les réponses.
Récapitulatif
Vous avez entretenu une base de connaissances comme une équipe doit le faire : nouveaux documents avec versions et étiquettes d’accès claires, jeu de questions figé, un changement à la fois, accès contrôlé avant que le modèle voie quoi que ce soit, réponses qui citent ou s’abstiennent, et suppressions qui effacent vraiment. Si vous n’en avez pas encore fait, choisissez une étude de cas pour le certificat : Répondre à partir de pages d’orientation publiques, Chercher dans une documentation technique ou Répondre à partir de règlements versionnés.