From 6525afd5f55e61f63665a63077a7af934d218a50 Mon Sep 17 00:00:00 2001 From: Jules Neny Date: Thu, 7 May 2026 01:17:07 +0200 Subject: [PATCH] =?UTF-8?q?fix(chatbot-taff):=20import=20JSON=20statique?= =?UTF-8?q?=20=E2=80=94=20fonctionne=20dev=20+=20prod?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- nuxt.config.ts | 6 ------ server/api/chatbot-taff.post.ts | 29 ++++++++++++----------------- server/api/plateformes-taff.get.ts | 9 +++++++++ 3 files changed, 21 insertions(+), 23 deletions(-) create mode 100644 server/api/plateformes-taff.get.ts diff --git a/nuxt.config.ts b/nuxt.config.ts index 6ea9ddc..f84f305 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -28,12 +28,6 @@ export default defineNuxtConfig({ // Leaflet ne fonctionne pas en SSR — forcer le rendu côté client ssr: true, - nitro: { - serverAssets: [ - { baseName: 'taff', dir: './public/data' }, - ], - }, - vite: { cacheDir: 'C:/Users/jules/AppData/Local/nav-carte-vite-cache', optimizeDeps: { diff --git a/server/api/chatbot-taff.post.ts b/server/api/chatbot-taff.post.ts index 1b3cfdb..b76fbb1 100644 --- a/server/api/chatbot-taff.post.ts +++ b/server/api/chatbot-taff.post.ts @@ -4,6 +4,8 @@ * Lit plateformes-taff.json, appelle Mistral Small, retourne recommandations. */ +// @ts-ignore — JSON import résolu par Vite/Rollup +import taffData from '../../public/data/plateformes-taff.json' import { checkRateLimitJson } from '~/server/utils/rateLimitJson' interface PlateformeMinimal { @@ -65,23 +67,16 @@ export default defineEventHandler(async (event) => { throw createError({ statusCode: 400, statusMessage: 'Question trop courte.' }) } - // Lire le JSON via Nitro serverAssets (bundelé avec le serveur, dev + prod) - let plateformes: PlateformeMinimal[] = [] - try { - const raw = await useStorage('assets:taff').getItem('plateformes-taff.json') as { plateformes: PlateformeMinimal[] } | null - if (!raw) throw new Error('null') - plateformes = (raw.plateformes ?? []).map((p: any) => ({ - id: p.id, - nom: p.nom, - type: p.type, - description_courte: p.description_courte, - scoring: p.scoring, - secteurs_servis: p.secteurs_servis, - cout_entree: p.cout_entree, - })) - } catch (e) { - throw createError({ statusCode: 500, statusMessage: 'Données plateformes introuvables.' }) - } + // Données bundlées statiquement à la compilation (import JSON) + const plateformes: PlateformeMinimal[] = ((taffData as any).plateformes ?? []).map((p: any) => ({ + id: p.id, + nom: p.nom, + type: p.type, + description_courte: p.description_courte, + scoring: p.scoring, + secteurs_servis: p.secteurs_servis, + cout_entree: p.cout_entree, + })) const context = plateformes.map(p => ({ id: p.id, diff --git a/server/api/plateformes-taff.get.ts b/server/api/plateformes-taff.get.ts new file mode 100644 index 0000000..1dd5ee0 --- /dev/null +++ b/server/api/plateformes-taff.get.ts @@ -0,0 +1,9 @@ +/** + * GET /api/plateformes-taff + * Retourne les données TAFF — JSON importé statiquement (bundlé par Rollup). + * Utilisé par le chatbot-taff en interne et potentiellement par le front. + */ +// @ts-ignore — JSON import résolu par Vite/Rollup +import data from '../../public/data/plateformes-taff.json' + +export default defineEventHandler(() => data)