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:
@@ -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: {
|
||||||
|
|||||||
@@ -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 (bundelé 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,
|
||||||
|
|||||||
9
server/api/plateformes-taff.get.ts
Normal file
9
server/api/plateformes-taff.get.ts
Normal 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)
|
||||||
Reference in New Issue
Block a user