Checkpoint: Correction de la détection automatique du champ Abonnement pour utiliser uniquement les mots-clés configurés dans subscriptionKeywords au lieu des mots-clés génériques codés en dur
This commit is contained in:
@@ -136,6 +136,12 @@ export async function extractInvoicesWithMistral(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Build subscription detection instruction
|
||||||
|
let subscriptionInstruction = "- isSubscription: false (par défaut)";
|
||||||
|
if (customKeywords?.subscription && customKeywords.subscription.trim()) {
|
||||||
|
subscriptionInstruction = `- isSubscription: true UNIQUEMENT si la facture contient l'un de ces mots-clés exacts: ${customKeywords.subscription}, false sinon`;
|
||||||
|
}
|
||||||
|
|
||||||
// Prepare prompt for LLM
|
// Prepare prompt for LLM
|
||||||
const prompt = `Tu es un expert en extraction de données de factures. Analyse ce document PDF et extrais toutes les factures qu'il contient.
|
const prompt = `Tu es un expert en extraction de données de factures. Analyse ce document PDF et extrais toutes les factures qu'il contient.
|
||||||
|
|
||||||
@@ -149,7 +155,7 @@ Pour chaque facture trouvée, extrais les informations suivantes:
|
|||||||
- pageRange: Plage de pages de cette facture (ex: "1-2" ou "5")
|
- pageRange: Plage de pages de cette facture (ex: "1-2" ou "5")
|
||||||
- qualityScore: Score de qualité de l'extraction de 0 à 100 (100 = toutes les informations trouvées et claires)
|
- qualityScore: Score de qualité de l'extraction de 0 à 100 (100 = toutes les informations trouvées et claires)
|
||||||
- extractedText: Texte complet extrait de la facture (tout le texte visible sur les pages de cette facture)
|
- extractedText: Texte complet extrait de la facture (tout le texte visible sur les pages de cette facture)
|
||||||
- isSubscription: true si la facture contient des mots-clés liés à un abonnement (abonnement, subscription, mensuel, annuel, recurring, etc.), false sinon${keywordsHint}
|
${subscriptionInstruction}${keywordsHint}
|
||||||
|
|
||||||
Réponds UNIQUEMENT avec un objet JSON valide au format suivant:
|
Réponds UNIQUEMENT avec un objet JSON valide au format suivant:
|
||||||
{
|
{
|
||||||
|
|||||||
7
todo.md
7
todo.md
@@ -259,3 +259,10 @@
|
|||||||
- [x] Permettre l'édition directe du champ Abonnement dans la liste (select OUI/NON)
|
- [x] Permettre l'édition directe du champ Abonnement dans la liste (select OUI/NON)
|
||||||
- [x] Ajouter isSubscription dans le schéma de validation update
|
- [x] Ajouter isSubscription dans le schéma de validation update
|
||||||
- [ ] Tester la détection automatique avec une nouvelle facture importée
|
- [ ] Tester la détection automatique avec une nouvelle facture importée
|
||||||
|
|
||||||
|
## Bug : Détection incorrecte du champ Abonnement
|
||||||
|
- [x] Analyser le prompt Mistral pour comprendre pourquoi isSubscription est à OUI
|
||||||
|
- [x] Identifier le problème: mots-clés génériques codés en dur au lieu d'utiliser subscriptionKeywords
|
||||||
|
- [x] Corriger le prompt pour utiliser UNIQUEMENT les mots-clés configurés dans subscriptionKeywords
|
||||||
|
- [x] Ajouter logique: si subscriptionKeywords est vide, isSubscription = false par défaut
|
||||||
|
- [ ] Tester avec une nouvelle facture importée et le mot-clé "BLOB" (ne devrait pas détecter)
|
||||||
|
|||||||
Reference in New Issue
Block a user