Checkpoint: Filtre de pertinence strict avant insertion en base : seuls les articles jugés pertinents (iaRelevant=true) sont insérés dans veille_items et aap_items. Les articles rejetés sont loggés et comptés dans skippedItems. Prompt IA mis à jour avec la formulation exacte de l'utilisateur (expert ESMS, 5 secteurs, liste noire explicite, principe "doute = false"). 21 tests passés, 0 erreur TypeScript.

This commit is contained in:
Manus
2026-06-26 09:50:58 -04:00
parent 3613e26034
commit a7cf918fa8
4 changed files with 31 additions and 17 deletions

View File

@@ -376,10 +376,15 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
const typeVeille = (aiResult.typeVeille ?? feed.defaultTypeVeille ?? "informationnelle") as
"reglementaire" | "concurrentielle" | "technologique" | "informationnelle";
// ── Filtre de pertinence : ne pas insérer les articles non pertinents ──────
if (!aiResult.relevant) {
console.log(`[RSS] Article rejeté (non pertinent) : "${title.substring(0, 80)}" — ${aiResult.reason}`);
result.skippedItems++;
continue;
}
// Générer le résumé IA uniquement pour les articles pertinents
const iaResume = aiResult.relevant
? await generateSummary(title, description)
: null;
const iaResume = await generateSummary(title, description);
try {
// Essayer d'insérer
@@ -444,10 +449,15 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
const categorie = (feed.defaultCategorieAap ?? "Autre") as
"Handicap" | "PA" | "Enfance" | "Précarité" | "Sanitaire" | "Autre";
// Générer le résumé IA uniquement pour les articles pertinents
const iaResume = aiResult.relevant
? await generateSummary(title, description)
: null;
// ── Filtre de pertinence : ne pas insérer les AAP non pertinents ─────────
if (!aiResult.relevant) {
console.log(`[RSS] AAP rejeté (non pertinent) : "${title.substring(0, 80)}" — ${aiResult.reason}`);
result.skippedItems++;
continue;
}
// Générer le résumé IA pour les AAP pertinents
const iaResume = await generateSummary(title, description);
try {
await db.insert(aapItems).values({