Locales chargees en cache no-store + SW_VERSION v4 pour eviter les cles brutes (fr.json obsolete). Picker : styles critiques en ligne (popover/liste/options), plafond de 200 modeles avec indicateur, et non-chevauchement entre la liste de modeles et la bulle de capacites.
3.3 KiB
3.3 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, plafonnement des longues listes (OpenRouter).tests/test_bookslm.py: contexte ad-hoc en mode Général (/chat).
D. Durcissement anti-cache (BUG-009) — ✅ livré
- Locales chargées avec
cache: 'no-store'(frontend/js/i18n.js) : plus de clés brutes affichées à cause d'unfr.jsonobsolète en cache HTTP. SW_VERSIONincrémenté (frontend/sw.js) pour purger les caches du service worker.- Styles critiques du picker appliqués en ligne (popover absolu, liste en colonne, options
display:block) pour rester corrects même sistyle.cssest servi depuis un cache. - Rendu plafonné à 200 modèles (
MODEL_RENDER_LIMIT) + indicateurai.model_more.
E. 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.