fix(chatbot-taff): import JSON statique — fonctionne dev + prod

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>
This commit is contained in:
Jules Neny
2026-05-07 01:17:07 +02:00
parent 4d7e8bede9
commit 6525afd5f5
3 changed files with 21 additions and 23 deletions

View File

@@ -28,12 +28,6 @@ export default defineNuxtConfig({
// Leaflet ne fonctionne pas en SSR — forcer le rendu côté client // Leaflet ne fonctionne pas en SSR — forcer le rendu côté client
ssr: true, ssr: true,
nitro: {
serverAssets: [
{ baseName: 'taff', dir: './public/data' },
],
},
vite: { vite: {
cacheDir: 'C:/Users/jules/AppData/Local/nav-carte-vite-cache', cacheDir: 'C:/Users/jules/AppData/Local/nav-carte-vite-cache',
optimizeDeps: { optimizeDeps: {

View File

@@ -4,6 +4,8 @@
* Lit plateformes-taff.json, appelle Mistral Small, retourne recommandations. * 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' import { checkRateLimitJson } from '~/server/utils/rateLimitJson'
interface PlateformeMinimal { interface PlateformeMinimal {
@@ -65,12 +67,8 @@ export default defineEventHandler(async (event) => {
throw createError({ statusCode: 400, statusMessage: 'Question trop courte.' }) throw createError({ statusCode: 400, statusMessage: 'Question trop courte.' })
} }
// Lire le JSON via Nitro serverAssets (bunde avec le serveur, dev + prod) // Données bundlées statiquement à la compilation (import JSON)
let plateformes: PlateformeMinimal[] = [] const plateformes: PlateformeMinimal[] = ((taffData as any).plateformes ?? []).map((p: any) => ({
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, id: p.id,
nom: p.nom, nom: p.nom,
type: p.type, type: p.type,
@@ -79,9 +77,6 @@ export default defineEventHandler(async (event) => {
secteurs_servis: p.secteurs_servis, secteurs_servis: p.secteurs_servis,
cout_entree: p.cout_entree, cout_entree: p.cout_entree,
})) }))
} catch (e) {
throw createError({ statusCode: 500, statusMessage: 'Données plateformes introuvables.' })
}
const context = plateformes.map(p => ({ const context = plateformes.map(p => ({
id: p.id, id: p.id,

View File

@@ -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)