SPB Git forge

spb/immbot-ai

Public
1commits 1branches 0releases
1.5 MBsize
maindefault branch
19 days agolast push
TypeScript 98.3% CSS 0.9% Shell 0.7%
1.6 KB · 41 lines typescript
Raw Blame History
1// Ingestion des cours : pnpm ingest (incrémental) / pnpm reindex (--force).2import { writeFileSync } from "node:fs";3import { resolve } from "node:path";4import { ingestCourses } from "../lib/rag/ingest.ts";56const force = process.argv.includes("--force");7console.log(`Ingestion ${force ? "complète (--force)" : "incrémentale"} — embeddings locaux (premier lancement : téléchargement du modèle ~120 Mo)…`);8const t0 = Date.now();9const result = await ingestCourses({ force, triggeredBy: "script" });10const dt = ((Date.now() - t0) / 1000).toFixed(1);1112console.log(result.report);13console.log(`\n— Terminé en ${dt}s : ${result.scanned} fichiers scannés, ${result.ingested} ingérés, ${result.skipped} inchangés, ${result.chunks} fragments.`);14if (result.errors.length) {15  console.error(`⚠ ${result.errors.length} erreur(s) :`);16  for (const e of result.errors) console.error(`  - ${e.path} : ${e.error}`);17}1819const report = `# Rapport d'ingestion — Immbot AI2021Exécution nº ${result.runId} — durée ${dt}s2223| Mesure | Valeur |24|---|---|25| Fichiers scannés | ${result.scanned} |26| Fichiers ingérés | ${result.ingested} |27| Fichiers inchangés (somme de contrôle) | ${result.skipped} |28| Fragments créés | ${result.chunks} |29| Erreurs | ${result.errors.length} |3031## Détail3233\`\`\`34${result.report}35\`\`\`36${result.errors.length ? `\n## Erreurs\n\n${result.errors.map((e) => `- \`${e.path}\` : ${e.error}`).join("\n")}\n` : ""}37`;38writeFileSync(resolve(process.cwd(), "docs/ingestion-report.md"), report);39console.log("Rapport écrit : docs/ingestion-report.md");40process.exit(result.errors.length ? 1 : 0);41