fix: recalculer les scores de qualité à l import
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { z } from "zod";
|
||||
import { COOKIE_NAME } from "@shared/const";
|
||||
import { BAP_MIN_QUALITY_SCORE, meetsBapQualityThreshold } from "@shared/bapEligibility";
|
||||
import { calculateInvoiceQualityScore } from "@shared/invoiceQuality";
|
||||
import { calculateInvoiceQualityScore, withCalculatedInvoiceQuality } from "@shared/invoiceQuality";
|
||||
import { webPortalUrlSchema } from "./webPortalUrl";
|
||||
|
||||
interface Condition {
|
||||
@@ -287,6 +287,7 @@ export const appRouter = router({
|
||||
manusForgeApiUrl: (settings as any).manusForgeApiUrl || null,
|
||||
geminiApiKey: (settings as any).geminiApiKey || null,
|
||||
} : undefined;
|
||||
const qualityFieldsConfig = await getLlmFieldsConfigByUser(userId);
|
||||
|
||||
// Extract invoices
|
||||
const result = await extractInvoicesWithMistral(
|
||||
@@ -313,6 +314,9 @@ export const appRouter = router({
|
||||
|
||||
for (let i = 0; i < result.invoices.length; i++) {
|
||||
const invoiceData = result.invoices[i]!;
|
||||
// Le score affiché est déterministe : les champs obligatoires
|
||||
// configurés prévalent sur l'estimation fournie par le modèle.
|
||||
const invoiceWithQuality = withCalculatedInvoiceQuality(invoiceData, qualityFieldsConfig);
|
||||
|
||||
try {
|
||||
// Update progress
|
||||
@@ -375,7 +379,7 @@ export const appRouter = router({
|
||||
totalAmount: invoiceData.totalAmount?.toString(),
|
||||
recipientName: invoiceData.recipientName,
|
||||
pageRange: invoiceData.pageRange,
|
||||
qualityScore: invoiceData.qualityScore,
|
||||
qualityScore: invoiceWithQuality.qualityScore,
|
||||
extractedText: invoiceData.extractedText,
|
||||
isSubscription: invoiceData.isSubscription ? 1 : 0,
|
||||
metadataFileKey: metadataKey,
|
||||
|
||||
Reference in New Issue
Block a user