feat: inclure l'unité/poids dans la normalisation LLM

fetch_unnormalized() remonte maintenant la colonne `unit` (ex: "250 g",
"20 sachets"). Le normaliseur concatène name_raw + unit avant d'envoyer
au LLM, qui peut ainsi placer le poids dans le champ format.

Résultat : "Haribo dragibus" → "Dragibus | Haribo | 250g"
au lieu de   "Haribo dragibus" → "Dragibus | Haribo | -"

Améliore aussi la qualité du fuzzy matching Picnic ↔ Leclerc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-25 18:35:46 +01:00
parent 93333afffa
commit 1d8f139c7c
2 changed files with 10 additions and 4 deletions

View File

@@ -140,7 +140,7 @@ def fetch_unnormalized(
) -> list[sqlite3.Row]:
"""Retourne les articles dont name_normalized est NULL.
Chaque Row expose les clés : id, name_raw, receipt_id.
Chaque Row expose les clés : id, name_raw, unit, receipt_id.
Trié par id pour un traitement reproductible.
Args:
@@ -150,7 +150,7 @@ def fetch_unnormalized(
Returns:
Liste de sqlite3.Row.
"""
sql = "SELECT id, name_raw, receipt_id FROM items WHERE name_normalized IS NULL ORDER BY id"
sql = "SELECT id, name_raw, unit, receipt_id FROM items WHERE name_normalized IS NULL ORDER BY id"
if limit is not None:
sql += f" LIMIT {int(limit)}"
return conn.execute(sql).fetchall()