Refonte de la section Fournisseur & modele de l'assistant : capacites regroupees dans une bulle d'information (survol/clic/appui long) au lieu d'une liste permanente, et liste de modeles avec recherche. Correctifs : detection Unicode + filtrage insensible aux accents des commandes / et mentions @, navigation clavier fiable, et prise en compte du contexte ad-hoc en mode General cote backend.
2.7 KiB
2.7 KiB
#82 — Assistant IA — Section « Fournisseur & modèle » compacte
Statut : ✅ Livré (en attente de validation utilisateur) Effort : 1 jour | Impact : 🟢 Références : Roadmap · Assistant IA #81 · Changelog
- Description : rendre la barre de sélection du modèle de l'assistant IA plus discrète tout
en conservant les informations utiles :
- Capacités via bulle — la liste complète des types d'endpoints (Chat, Embeddings, Rerank, Images, Video, Audio Speech, Audio Transcriptions, Vision) n'est plus affichée en permanence. Un bouton ⓘ révèle une bulle d'information au survol, au clic ou par appui long (mobile).
- Recherche de modèle — le
<select>natif est remplacé par une liste déroulante compacte dotée d'un champ de recherche qui filtre les modèles en tapant (insensible à la casse et aux accents). - Compatibilité — un
<select class="ai-picker-model">masqué reste présent (source de vérité) pour les commandes admin/modelet l'état persistéobsigate_ai_picker.
A. Picker partagé — ✅ livré
frontend/js/ai.js:buildAIPickerUI()réécrit (provider compact + combobox modèle + bulle capacités). Le picker reste partagé par l'assistant (bookslm.js) et la barre d'édition IA.renderCapabilityList()conservé et affiché dans la bulle (le panneau de configuration#cfg-ai-default-model-capscontinue de l'utiliser directement).- Fermeture des popovers au clic extérieur via un unique listener délégué (pas de fuite).
- i18n FR/EN (
ai.model_search,ai.model_info).
B. Correctifs associés — ✅ livré
- BUG-007 — détection
/et@Unicode + filtrage insensible aux accents + navigation clavier ↑/↓ fiabilisée (jeton de séquence,scrollIntoView). - BUG-008 — contexte ad-hoc
@pris en compte en mode Général côté backend (backend/bookslm_routes.py) et recherche de mention survault=allsans vault courant.
C. Tests — ✅ livré
tests/frontend/ai.test.mjs: filtrage accentué, mentions accentuées, navigation ↑/↓, recherche de modèle + bulle de capacités.tests/test_bookslm.py: contexte ad-hoc en mode Général (/chat).
D. Points d'attention
- La table de capacités reste statique (
backend/model_capabilities.py) : un modèle inconnu retombe sur le défaut du fournisseur. - Le select masqué est conservé uniquement pour la rétro-compatibilité ; ne pas le supprimer sans
migrer
_cmdSwitchModel/_applyPickerSelectiondansfrontend/js/bookslm.js.