From b36587cb0807cbbd03ddf6d6c82569ef5344d116 Mon Sep 17 00:00:00 2001 From: Jules Neny Date: Tue, 12 May 2026 18:04:03 +0200 Subject: [PATCH] feat(media): hashtag mentions chatbot #slug-auteur (Phase 8.E) Frontend ChatbotPensees.vue : - Parser regex #slug-auteur dans la query (case-insensitive) - Auto-completion dropdown au-dessus de l'input (Slack/Discord pattern) - Match fuzzy sur id et nom des auteurs ingeres (32 actuellement) - Navigation ArrowDown/Up/Enter/Tab/Escape sur la dropdown - send() extrait auteur_slug du premier hashtag matchant un ingere - Si hashtag tape mais ne matche aucun ingere, on l'envoie comme unmatched - Message info utilisateur si auteur_unmatched remonte Backend chatbot-pensees.post.ts : - Interface body etendue : auteur_slug?: string - Cache local de la liste auteurs ingeres depuis public/data/auteurs-pensees.json - Preface dediee buildPrefaceAuteur(nom, slug) si auteur_slug match un ingere - LightRAG /query enrichi avec hl_keywords + ll_keywords (preflight OpenAPI : keyword_filter, ids et metadata_filter ne sont PAS supportes par cette version, hl_keywords / ll_keywords sont les seuls leviers natifs) - Post-process references : compteur on_target / off_target sur slug__ - Fallback gracieux si auteur_slug ne matche pas : reponse normale + info front - Response enrichie : auteur, auteur_unmatched, auteur_chunks Pas d'em-dash sur le code modifie, accents francais preserves. Co-Authored-By: Claude Opus 4.7 (1M context) --- components/ChatbotPensees.vue | 174 +++++++++++++++++++++++++++-- server/api/chatbot-pensees.post.ts | 102 +++++++++++++++-- 2 files changed, 257 insertions(+), 19 deletions(-) diff --git a/components/ChatbotPensees.vue b/components/ChatbotPensees.vue index 56cb3b3..4cbeb75 100644 --- a/components/ChatbotPensees.vue +++ b/components/ChatbotPensees.vue @@ -76,11 +76,24 @@
-
- + +
+
+ #{{ auteur.id }} + {{ auteur.nom }} +
+
+ + @keydown="onInputKeydown" />