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>
47 lines
1.8 KiB
TypeScript
47 lines
1.8 KiB
TypeScript
export default defineNuxtConfig({
|
|
modules: ['@nuxtjs/tailwindcss'],
|
|
css: [
|
|
'~/assets/css/main.css',
|
|
'leaflet/dist/leaflet.css',
|
|
'leaflet.markercluster/dist/MarkerCluster.css',
|
|
'leaflet.markercluster/dist/MarkerCluster.Default.css',
|
|
],
|
|
|
|
runtimeConfig: {
|
|
nocodbUrl: process.env.NOCODB_URL,
|
|
nocodbToken: process.env.NOCODB_TOKEN,
|
|
nocodbBase: process.env.NOCODB_BASE || process.env.NOCODB_BASE_ID || 'pipilvsi7dibo80',
|
|
orgTableId: process.env.ORG_TABLE_ID || process.env.NOCODB_TABLE_ORGAS || 'm08t7g5v4wch6wb',
|
|
avisTableId: process.env.AVIS_TABLE_ID,
|
|
commentTableId: process.env.COMMENT_TABLE_ID || process.env.AVIS_TABLE_ID,
|
|
statsTableId: process.env.STATS_TABLE_ID || 'mbbq7n47ixy19mc',
|
|
mistralApiKey: process.env.MISTRAL_API_KEY,
|
|
bifrostUrl: process.env.BIFROST_URL || 'http://127.0.0.1:8080',
|
|
bifrostVk: process.env.BIFROST_VK,
|
|
redisUrl: process.env.REDIS_URL || 'redis://127.0.0.1:6379',
|
|
resendApiKey: process.env.RESEND_API_KEY,
|
|
emailJules: process.env.EMAIL_JULES || 'jules@trans-former.fr',
|
|
codevTableId: '', // NUXT_CODEV_TABLE_ID
|
|
codevPassword: 'merci', // NUXT_CODEV_PASSWORD - défaut "merci", overridable
|
|
codevBaseId: '', // NUXT_CODEV_BASE_ID - base NocoDB (ex: pipilvsi7dibo80)
|
|
codevAdminPassword: 'admin2026', // NUXT_CODEV_ADMIN_PASSWORD
|
|
ragPeUrl: process.env.RAG_PE_URL || 'http://localhost:9621',
|
|
referencesTableId: process.env.REFERENCES_TABLE_ID || process.env.NUXT_REFERENCES_TABLE_ID || '',
|
|
},
|
|
|
|
// Leaflet ne fonctionne pas en SSR — forcer le rendu côté client
|
|
ssr: true,
|
|
|
|
vite: {
|
|
cacheDir: 'C:/Users/jules/AppData/Local/nav-carte-vite-cache',
|
|
optimizeDeps: {
|
|
include: ['leaflet', 'leaflet.markercluster', 'd3'],
|
|
},
|
|
ssr: {
|
|
noExternal: [],
|
|
},
|
|
},
|
|
|
|
compatibilityDate: '2024-11-01',
|
|
})
|