4.9 KiB
RIA (Reglement Interieur Achats) — 179 articles verbatim dans le RAG, fiabilite citation
Instance auteur : hermes-tt Date : 2026-08-06 Tags : [ria, rag, nyora-notes-tt, fts, achats] Statut : valide
Probleme
Ingestion du RIA (reglement interieur achats TT, 179 articles) dans NyoraNotes REST (:8787) avec exigence stricte de Nabil : toute question RIA doit retourner l'article ou les articles correspondants, cites VERBATIM sans aucune modification. Audit demande apres l'ingestion initiale pour valider avant mise en confiance operationnelle.
Verification manuelle a revele que 12 des 179 fichiers articles/article-NNN.txt (et les notes NyoraNotes correspondantes) se terminaient par les premieres lignes du TITRE/Chapitre/Section qui introduit le groupe d'articles SUIVANT, au lieu que ce texte de structure reste attache a la suite. Consequence demontree en conditions reelles : la recherche FTS pénalité retard remontait l'article 97 en position 2 (score -7.3) alors que l'article 97 traite en realite des delais de signature de contrat, sans rapport avec les penalites — il ne remontait que parce que son fichier se terminait par "Section 1 - Delais et penalites de retard" (titre de la section qui commence a l'article 98).
Contexte et contraintes
- Source :
reglement-interieur-achats-TT.docx, hash MD5a6b534bb06473ce2ab6ac0f13ca4b0ea(verifie). - Extraction mecanique DOCX->XML vers 179 fichiers
article-NNN.txt(parse_ria_articles.py) + fichier canoniqueRIA_INTEGRAL_179_articles.txt. - Le fichier canonique integral N'EST PAS affecte (les headers TITRE/Chapitre y sont normaux et attendus, c'est un document continu).
- Seuls les fichiers PAR ARTICLE (split) sont concernes, car le parseur attachait le header de section suivant a la fin de l'article precedent plutot qu'au debut du suivant.
- Ingestion NyoraNotes : 179 notes "RIA — Article N" + 1 note index = 180 notes, tags
ria,hermes-tt,article.
Ce qui NE fonctionne PAS
| Tentative | Erreur obtenue | Raison de l'echec |
|---|---|---|
| Faire confiance au rapport d'ingestion sans re-verifier le contenu reel des fichiers | Aucune erreur visible dans le rapport — le defaut n'apparait qu'en testant des requetes FTS reelles | Le rapport verifiait "la question renvoie le bon article en position 1" mais pas "aucun autre article n'est pollue par du texte hors-sujet" |
| Se fier au seul comptage (179 fichiers, 180 notes, sequence 1-179 complete) | Comptage correct, mais insuffisant | Un comptage exact ne garantit pas la purete du contenu de chaque fichier |
Solution validee
- Detection : scanner les 6 dernieres lignes non-vides de chaque fichier
article-NNN.txt, chercher un match sur^(TITRE|Chapitre|Section\s+\d)en debut de ligne complete. - 12 fichiers concernes : 2, 5, 41, 97, 109, 127, 132, 142, 148, 152, 164, 172.
- Pour chacun : tronquer le fichier a la derniere ligne substantielle de l'article (avant le header), reecrire le fichier local.
- Recuperer l'ID de la note NyoraNotes correspondante (
GET /notes?tag=ria&limit=100&page=N, filtrer par titre "RIA — Article N"). PUT /notes/{id}avec le nouveau contenu (# RIA — Article N+ texte article corrige).- Aucune reindexation FTS manuelle necessaire : la recherche reflete le contenu corrige immediatement apres le PUT (verifie sur article 97 / requete "penalite retard").
Verification
curl -s -H "Authorization: Bearer $TOKEN" --get http://localhost:8787/search --data-urlencode "q=penalite retard"
# Attendu : article 99 en position 1, article 97 absent du top (ou present uniquement si legitimement pertinent)
Confirme le 06/08/2026 : article 97 n'apparait plus dans les 5 premiers resultats pour "penalite retard", le classement restant (99, 129, 30, 40, 105) est desormais coherent avec le contenu reel de chaque article.
Pieges specifiques DSM / NAS
- mcp-nas : la commande
dockern'est PAS disponible directement dans le shell du container mcp-nas (pas de docker.sock monte, pas de binaire docker). Il faut passer parssh nas-host(alias configure vers Best0f@172.17.0.1:22222) puis utiliser le binaire complet/usr/local/bin/docker. - L'API NyoraNotes REST pagine avec le parametre
page(1-indexe), PASoffset— passeroffsetest silencieusement ignore et retourne toujours la page 1. limitest plafonne a 100 par l'API (le depasser renvoie une 422 Pydantic, pas une troncature silencieuse).- Le hash affiche dans les noms de fichiers du pipeline OneDrive (ex.
...a6b534bb.md) est un MD5, pas un SHA256.
References
- Skill :
gsd-ao-evaluation/references/ria-articles-cles.md(procedure de citation verbatim, articles cles, structure du RIA) - Fichier canonique :
/opt/data/workspace/reference/RIA/RIA_INTEGRAL_179_articles.txt - Memoire hermes-tt :
/opt/data/memories/MEMORY.md(entree RIA ajoutee 06/08/2026)