Checkpoint: Préparation recette : ajout du journal classification_errors, exposition de la cause technique des fallbacks IA, enregistrement non bloquant depuis le moteur RSS, écran d’administration Erreurs IA, route protégée et migration 0013. Validation locale : 28 tests, TypeScript et build de production réussis.
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
*/
|
||||
import { XMLParser } from "fast-xml-parser";
|
||||
import * as crypto from "crypto";
|
||||
import { getDb, removeArticleReadRecords } from "./db";
|
||||
import { getDb, recordClassificationError, removeArticleReadRecords } from "./db";
|
||||
import {
|
||||
rssFeeds,
|
||||
veilleItems,
|
||||
@@ -563,6 +563,16 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
||||
},
|
||||
contenuPage
|
||||
);
|
||||
if (aiResult.technicalError) {
|
||||
await recordClassificationError({
|
||||
feedId: feed.id,
|
||||
feedName: feed.name,
|
||||
feedType: "veille",
|
||||
articleTitle: title,
|
||||
articleUrl: link || null,
|
||||
errorMessage: aiResult.technicalError,
|
||||
});
|
||||
}
|
||||
|
||||
const typeVeille = (aiResult.typeVeille ?? feed.defaultTypeVeille ?? "informationnelle") as
|
||||
"reglementaire" | "concurrentielle" | "technologique" | "informationnelle";
|
||||
@@ -636,6 +646,16 @@ async function processFeed(feed: RssFeed): Promise<FetchResult> {
|
||||
(feed.defaultCategorieAap ?? "Autre") as "Handicap" | "PA" | "Enfance" | "Précarité" | "Sanitaire" | "Autre",
|
||||
contenuPageAap
|
||||
);
|
||||
if (aiResult.technicalError) {
|
||||
await recordClassificationError({
|
||||
feedId: feed.id,
|
||||
feedName: feed.name,
|
||||
feedType: "aap",
|
||||
articleTitle: title,
|
||||
articleUrl: link || null,
|
||||
errorMessage: aiResult.technicalError,
|
||||
});
|
||||
}
|
||||
const categorie = (aiResult.categorieAap ?? feed.defaultCategorieAap ?? "Autre") as
|
||||
"Handicap" | "PA" | "Enfance" | "Précarité" | "Sanitaire" | "Autre";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user