RAPIDE groq/llama-3.1-8b-instant → groq/openai/gpt-oss-20b ; APPROFONDI
groq/llama-3.3-70b-versatile → groq/openai/gpt-oss-120b ; replis inchangés.
Les chatbots vivaient sur le repli Gemini depuis le retrait.
gpt-oss raisonne : ses tokens de raisonnement sont décomptés de max_tokens.
REASONING_MARGIN_TOKENS (800) ajouté au budget des trois routes, et
bifrostContent() signale au journal une réponse tronquée (finish_reason
length). Le champ message.reasoning est ignoré. Défaut WORKER_MODEL aligné
sur la prod. En-têtes « Mistral Small » corrigés, PIPE-IA-DOC §11.3.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AzGo8bxhHp6M9RxuAFbyLU
Checkpoint Fable 27/09 : sans lien, nomSuggere() reprenait 60 caractères du texte du contributeur et les envoyait sur un topic ntfy (public par URL). Le nom n'est transmis que s'il vient d'un hostname. Click → sheets.trans-former.fr (localhost inutilisable depuis un téléphone). trackingUrl pointait nav.trans-former.fr/suivi/, page inexistante.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Le contributeur colle un lien (ou plusieurs) et explique en texte libre
pourquoi c'est pertinent, sans template ni minimum de caractères. Le type
devient une suggestion optionnelle (chips). Les 5 formulaires typés restent
disponibles derrière « Mode détaillé » (replié par défaut).
- utils/submitLibre.ts : schéma Zod partagé client/serveur + mapping vers les
colonnes NocoDB existantes (aucun changement de schéma) — table orgas par
défaut, table ressources_references si le chip « Références » est choisi.
- components/FormLibre.vue : liens dynamiques (1-10), texte libre, chips,
email optionnel, honeypot.
- server/api/submit/index.post.ts : branche mode=libre en amont du schéma
typé existant ; email Jules remplacé par ntfy (server/utils/notify.ts) —
jamais l'email ni le texte du contributeur dans la notif.
- scripts/test-submit-libre.mjs : 6 cas contre le vrai schéma Zod (via jiti).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Les 3 routes chatbot (chatbot.post.ts, chatbot-reseaux.post.ts, chatbot-taff.post.ts)
appellent désormais ${bifrostUrl}/v1/chat/completions (header x-bf-vk) au lieu de
api.mistral.ai direct. Tier RAPIDE par défaut (groq/llama-3.1-8b-instant + fallbacks
cerebras/gemini-flash-lite/cohere), tier APPROFONDI si body.mode === 'approfondi'
(prêt pour un futur toggle UI, hors-scope ici).
- server/utils/bifrost.ts (nouveau) : mutualise les 2 tiers pour les 3 routes.
- nuxt.config.ts : ajoute bifrostUrl/bifrostVk au runtimeConfig (mistralApiKey
conservé, juste plus utilisé par ces 3 routes).
- chatbot.post.ts : garde son circuit breaker + logging stats_usage tels quels,
mais logUsage reflète maintenant le provider/modèle réel ayant répondu
(extra_fields de Bifrost) et ne calcule un coût que si ce provider est Mistral
(les autres tiers Bifrost sont free-tier — cout_eur=0 sinon, pour ne pas fausser
le circuit breaker budget).
- chatbot-reseaux.post.ts / chatbot-taff.post.ts : aucun circuit breaker/logging
avant, aucun ajouté (asymétrie pré-existante préservée telle quelle).
- chatbot-v2.post.ts (orphelin) et chatbot-pensees.post.ts (proxy LightRAG,
config runtime séparée) non touchés.
Testé en dev local contre Bifrost (IP Tailscale) : 1 appel réel par route,
réponses conformes, provider réel confirmé dans les logs de test.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- server/api/chatbot-reseaux.post.ts : keyword search sur reseaux-bifurcation.json
(120 structures, même pattern que chatbot-taff)
- ChatbotSheet.vue : prop endpoint? (défaut /api/chatbot) + renderMd déjà actif
- agences.vue : endpoint='/api/chatbot-reseaux'
Markdown s'active au prochain restart du bat (cache .nuxt à nettoyer).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Import direct du JSON au moment du build (bundlé par Rollup).
Supprime serverAssets et useStorage qui ne marchaient pas en dev Nitro.
Ajoute GET /api/plateformes-taff comme endpoint réutilisable.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- nuxt.config.ts: nitro.serverAssets pointe sur public/data/
- chatbot-taff: useStorage remplace readFileSync et $fetch
(fonctionne dev + prod sans dépendance filesystem ni réseau)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remplace readFileSync (chemin instable Nitro) par $fetch sur le serveur
lui-même qui sert déjà plateformes-taff.json en statique.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>