Checkpoint: Classification IA en deux étapes (filtre pertinence + classification catégorie) intégrée dans le moteur RSS. Inclut : module aiClassifier.ts avec les deux prompts, intégration dans rssEngine.ts avec fallback sur règles, procédures tRPC reclassifyWithAI pour veille et AAP, badge IA violet dans VeilleDashboard, bouton "Classer avec l'IA" (admin), section "Analyse par l'IA" dans la boîte de dialogue détail, 7 nouveaux tests Vitest (20 tests au total). Migration BDD appliquée (4 nouveaux champs IA dans veille_items et aap_items).
This commit is contained in:
@@ -77,6 +77,11 @@ export const veilleItems = mysqlTable("veille_items", {
|
||||
// Date extraite de la colonne Source (qui contient parfois une date ISO)
|
||||
datePublication: timestamp("datePublication"),
|
||||
importedAt: timestamp("importedAt").defaultNow().notNull(),
|
||||
// Classification IA
|
||||
iaRelevant: boolean("iaRelevant"),
|
||||
iaCategorie: varchar("iaCategorie", { length: 128 }),
|
||||
iaClassifiedBy: mysqlEnum("iaClassifiedBy", ["ia", "rules"]),
|
||||
iaReason: text("iaReason"),
|
||||
});
|
||||
|
||||
export type VeilleItem = typeof veilleItems.$inferSelect;
|
||||
@@ -97,6 +102,11 @@ export const aapItems = mysqlTable("aap_items", {
|
||||
datePublication: timestamp("datePublication"),
|
||||
lien: text("lien"),
|
||||
importedAt: timestamp("importedAt").defaultNow().notNull(),
|
||||
// Classification IA
|
||||
iaRelevant: boolean("iaRelevant"),
|
||||
iaCategorie: varchar("iaCategorie", { length: 128 }),
|
||||
iaClassifiedBy: mysqlEnum("iaClassifiedBy", ["ia", "rules"]),
|
||||
iaReason: text("iaReason"),
|
||||
});
|
||||
|
||||
export type AapItem = typeof aapItems.$inferSelect;
|
||||
|
||||
Reference in New Issue
Block a user