Checkpoint: Simplification de la classification IA dans l'onglet Veille Stratégique : suppression de la catégorie médico-sociale (Handicap, PA, Enfance, etc.), remplacement de "Générale" par "Informationnelle", classification IA réduite au seul type de veille (réglementaire/concurrentielle/technologique/informationnelle). Migration BDD des données generale → informationnelle. 0 erreur TypeScript, 21 tests passés.
This commit is contained in:
@@ -36,7 +36,7 @@ interface RssItem {
|
||||
|
||||
interface AutoRule {
|
||||
keyword: string;
|
||||
typeVeille?: "reglementaire" | "concurrentielle" | "technologique" | "generale";
|
||||
typeVeille?: "reglementaire" | "concurrentielle" | "technologique" | "informationnelle";
|
||||
categorieAap?: "Handicap" | "PA" | "Enfance" | "Précarité" | "Sanitaire" | "Autre";
|
||||
}
|
||||
|
||||
@@ -360,16 +360,14 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
||||
() => {
|
||||
const matchedRule = applyAutoRules(title, description, rules);
|
||||
return {
|
||||
categorie: detectVeilleCategorie(fullText),
|
||||
typeVeille: (matchedRule?.typeVeille ?? feed.defaultTypeVeille ?? "generale") as
|
||||
"reglementaire" | "concurrentielle" | "technologique" | "generale",
|
||||
typeVeille: (matchedRule?.typeVeille ?? feed.defaultTypeVeille ?? "informationnelle") as
|
||||
"reglementaire" | "concurrentielle" | "technologique" | "informationnelle",
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
const categorie = aiResult.categorie;
|
||||
const typeVeille = (aiResult.typeVeille ?? feed.defaultTypeVeille ?? "generale") as
|
||||
"reglementaire" | "concurrentielle" | "technologique" | "generale";
|
||||
const typeVeille = (aiResult.typeVeille ?? feed.defaultTypeVeille ?? "informationnelle") as
|
||||
"reglementaire" | "concurrentielle" | "technologique" | "informationnelle";
|
||||
|
||||
// Générer le résumé IA uniquement pour les articles pertinents
|
||||
const iaResume = aiResult.relevant
|
||||
@@ -381,7 +379,6 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
||||
await db.insert(veilleItems).values({
|
||||
dedupKey,
|
||||
titre: title,
|
||||
categorie,
|
||||
niveau,
|
||||
territoire,
|
||||
territoires: JSON.stringify(territoire !== "France" && territoire !== "Auvergne-Rhône-Alpes" ? [territoire] : []),
|
||||
@@ -391,7 +388,6 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
||||
typeVeille,
|
||||
datePublication: pubDate,
|
||||
iaRelevant: aiResult.relevant,
|
||||
iaCategorie: aiResult.categorie,
|
||||
iaClassifiedBy: aiResult.classifiedBy,
|
||||
iaReason: aiResult.reason,
|
||||
iaResume: iaResume || null,
|
||||
@@ -427,17 +423,12 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
||||
const aiResult = await classifyArticle(
|
||||
title,
|
||||
description,
|
||||
() => {
|
||||
const matchedRule = applyAutoRules(title, description, rules);
|
||||
return {
|
||||
categorie: (matchedRule?.categorieAap ?? feed.defaultCategorieAap ?? "Autre") as
|
||||
"Handicap" | "PA" | "Enfance" | "Précarité" | "Sanitaire" | "Autre",
|
||||
typeVeille: "generale" as const,
|
||||
};
|
||||
}
|
||||
() => ({
|
||||
typeVeille: "informationnelle" as const,
|
||||
})
|
||||
);
|
||||
|
||||
const categorie = aiResult.categorie as
|
||||
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
|
||||
@@ -456,7 +447,6 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
||||
lien: link || null,
|
||||
datePublication: pubDate,
|
||||
iaRelevant: aiResult.relevant,
|
||||
iaCategorie: aiResult.categorie,
|
||||
iaClassifiedBy: aiResult.classifiedBy,
|
||||
iaReason: aiResult.reason,
|
||||
iaResume: iaResume || null,
|
||||
|
||||
Reference in New Issue
Block a user