40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
/**
|
|
* GET /api/admin/rag-info
|
|
*
|
|
* Retourne le statut du système RAG (v1 + v2) pour la page /admin/rag-status
|
|
*/
|
|
|
|
import { existsSync, readFileSync } from 'fs'
|
|
import { resolve } from 'path'
|
|
|
|
export default defineEventHandler(async (_event) => {
|
|
// Statut V2 : compter les embeddings
|
|
let v2Count = 0
|
|
let v2Date: string | null = null
|
|
let v2Model: string | null = null
|
|
|
|
try {
|
|
// Chercher depuis process.cwd() (racine du projet Nuxt)
|
|
const embPath = resolve(process.cwd(), 'server', 'data', 'embeddings-v2.json')
|
|
if (existsSync(embPath)) {
|
|
const data = JSON.parse(readFileSync(embPath, 'utf-8'))
|
|
v2Count = data.embeddings?.length ?? 0
|
|
v2Date = data.meta?.date ?? null
|
|
v2Model = data.meta?.model ?? null
|
|
}
|
|
} catch (e: any) {
|
|
console.warn('[rag-info] Erreur lecture embeddings-v2.json :', e?.message ?? e)
|
|
}
|
|
|
|
return {
|
|
v2_embeddings_count: v2Count,
|
|
v2_ready: v2Count > 0,
|
|
v2_model: v2Model ?? 'mistral-embed',
|
|
v2_generated_date: v2Date ?? null,
|
|
v1_enabled: process.env.RAG_V1_ENABLED !== 'false',
|
|
v1_deprecation_date: process.env.RAG_V1_DEPRECATION_DATE ?? 'non défini',
|
|
model_chat: 'mistral-small-latest',
|
|
setup_command: 'MISTRAL_API_KEY=xxx node scripts/vectorize-v2.js'
|
|
}
|
|
})
|