feat(api): Fuzzy-Match in parseItems gegen Geschäfts-Sortiment-DB #415
Labels
No labels
app/archiv
app/einkaufslisten
app/imap-client
app/wissensbasis
arch-answered
arch-question
area/api
area/auth
area/infra
area/mobile
area/shared
area/ui
area/web
portfolio-status
prio/high
prio/low
prio/medium
roadmap/public
size/l
size/m
size/s
size/xl
size/xs
status/blocked
status/needs-info
type/bug
type/chore
type/docs
type/feature
type/idea
type/refactor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
admin-mrrm/mrrmlabapp#415
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
OCR-Output (egal ob Server- oder On-device-Pfad) gegen Geschäfts-Sortiment matchen, damit "MILCH IL" → "Milch 1L (Edeka)" wird statt als Roh-String in die Liste zu landen.
Insertionspunkt
apps/api/src/modules/lists/ocr.service.ts:131—parseItems(text: string): { name: string }[]Aktuell: Splits Text bei Newlines, filtert ≥2 chars, returnt
{name: rawString}[].Neu: Optional
{name, matchedProductId?, matchedStoreId?, confidence?}.Scope
produkte/geschaefteTabellen (Drizzle)storeIdaus Context bekanntDefinition-of-Done
Referenzen
Status: Neuer v0.5-OCR-Hauptdeliverable
Nach Spike-Exit #77 (Real-Data-Eval #416 zeigte CER 0.51 vs. synthetic 0.04 + Privacy-Modell macht On-Device unnötig) ist dieses Issue der Hauptpfad für v0.5-OCR.
Begründung:
Insertion bleibt wie beschrieben:
apps/api/src/modules/lists/ocr.service.ts:131 parseItems. Funktioniert für jeden OCR-Backend (aktuell EasyOCR, evtl. später TrOCR-handwritten server-side).Geschlossene Spike-Cluster: #77, #81, #82, #414, #416 — siehe jeweils close-comments für Pivot-Details.