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:
@@ -38,6 +38,13 @@ export interface AiClassificationResult {
|
||||
reason: string;
|
||||
/** Indique si la classification a été faite par l'IA ou par les règles (fallback) */
|
||||
classifiedBy: "ia" | "rules";
|
||||
/** Cause technique du fallback, réservée au journal d'administration. */
|
||||
technicalError: string | null;
|
||||
}
|
||||
|
||||
function getTechnicalErrorMessage(error: unknown): string {
|
||||
const message = error instanceof Error ? error.message : String(error);
|
||||
return message.slice(0, 1000);
|
||||
}
|
||||
|
||||
// ─── Prompt veille stratégique : pertinence + type de veille ─────────────────
|
||||
@@ -194,9 +201,11 @@ export async function classifyArticle(
|
||||
categorieAap: null,
|
||||
reason: parsed.raison,
|
||||
classifiedBy: "ia",
|
||||
technicalError: null,
|
||||
};
|
||||
} catch (e) {
|
||||
console.error("[AI Classifier] Erreur classification veille:", (e as Error).message);
|
||||
const technicalError = getTechnicalErrorMessage(e);
|
||||
console.error("[AI Classifier] Erreur classification veille:", technicalError);
|
||||
const fb = fallbackFn();
|
||||
return {
|
||||
relevant: true,
|
||||
@@ -204,6 +213,7 @@ export async function classifyArticle(
|
||||
categorieAap: null,
|
||||
reason: "Classification par règles (erreur LLM)",
|
||||
classifiedBy: "rules",
|
||||
technicalError,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -265,15 +275,18 @@ export async function classifyAap(
|
||||
categorieAap: parsed.pertinent ? (parsed.categorie ?? "Autre") : null,
|
||||
reason: parsed.raison,
|
||||
classifiedBy: "ia",
|
||||
technicalError: null,
|
||||
};
|
||||
} catch (e) {
|
||||
console.error("[AI Classifier] Erreur classification AAP:", (e as Error).message);
|
||||
const technicalError = getTechnicalErrorMessage(e);
|
||||
console.error("[AI Classifier] Erreur classification AAP:", technicalError);
|
||||
return {
|
||||
relevant: true,
|
||||
typeVeille: null,
|
||||
categorieAap: fallbackCategorie,
|
||||
reason: "Classification par règles (erreur LLM)",
|
||||
classifiedBy: "rules",
|
||||
technicalError,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user