fix: enhance PDF parsing and retry logic; improve reproducibility and AI filtering
Test Suite / test (24.15.0) (push) Has been cancelled
Test Suite / test (24.15.0) (push) Has been cancelled
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -12,8 +12,10 @@ Detta dokument är för systemadministratörer och utvecklare som driftar eller
|
||||
- Parserstödet för brödrelaterade produkter och guardrails mot felkategorisering har utökats.
|
||||
- Integrationen med klienten för kvitto-session är fortfarande stateless i denna tjänst; ingen serverlagring av användarsession infördes.
|
||||
- Kvittokategorisering: nya regler för pasta, grädde, ägg, juice, godis, och potatis samt justerad AI-guardrail.
|
||||
- Testinfrastruktur: parametriserade enhetstester för kvittoimport (18 testfall) och CI/CD-pipeline med automatiserad testkörning på push.
|
||||
|
||||
- Testinfrastruktur: parametriserade enhetstester för kvittoimport (18 testfall) och CI/CD-pipeline med automatiserad testkörning på push.- **PDF-fix:** `pdf-parse` importeras nu med `require()` (CJS-kompatibilitet). `pdfjs-dist/legacy/build/pdf.js` används som fallback för att undvika `DOMMatrix is not defined` i Node.js-miljö.
|
||||
- **Retry-förbättring:** Mistral 429/503 → väntar `3000 * attempt` ms innan nytt försök.
|
||||
- **Reproducerbart bygge:** `package-lock.json` spåras i git; Dockerfile kör `npm ci`.
|
||||
- **AI-skippning för icke-produktrader:** `looksLikeReceiptProductLine()` filtrerar PDF-rader utan siffra (header/footer/butiksinformation) — dessa skickas inte till Mistral.
|
||||
## Viktigt!! Kod- och byggpraxis!
|
||||
Säkerställ att inga absoluta Windows-sökvägar används i koden, för att stödja bygg och drift på Linux/Ubuntu
|
||||
|
||||
@@ -32,7 +34,8 @@ Tolkar Markdown-recept till strukturerat JSON utan databas.
|
||||
|
||||
### Kvittoparsning (`POST /api/receipt-import/parse`)
|
||||
- Bild (JPEG/PNG/WebP/HEIC/HEIF) eller PDF
|
||||
- **Modell:** `mistral-small-2603` (vision-kapabel) med retry-logik (3 försök vid 503/429)
|
||||
- **Bild:** `mistral-small-2603` (vision-kapabel) med retry-logik (3 försök, `3000 * attempt` ms fördröjning vid 429/503)
|
||||
- **PDF:** `pdf-parse` → fallback `pdfjs-dist/legacy` → regelbaserad parsning → AI enbart för rader med namntext + siffra
|
||||
- Returnerar `ParsedReceiptItem[]` med fälten `rawName`, `quantity`, `unit`, `price`, `brand`, `origin`
|
||||
- Inbyggda regler i AI-prompten styr tolkning av `quantity`/`unit` (se nedan)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user