feat: Optimize AI usage in import function with structured workflow and caching strategies

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Nils-Johan Gynther
2026-05-03 09:54:44 +02:00
parent 3a4d73da18
commit 841d098405
+41
View File
@@ -193,6 +193,47 @@ Detta var ursprungligen planerat som ett långsiktigt mål: att flytta kvittopar
---
## Optimering av AI-användning i Importfunktionen
För att optimera användningen av AI i importfunktionen, särskilt med tanke på att använda så små Mistral-modeller som möjligt, kan vi strukturera processen på följande sätt:
### Nuvarande Process
1. **Bild/PDF → OCR (Tesseract)**: Bilder och PDF:er bearbetas med Tesseract för att extrahera text.
2. **Regelbaserad Parsning**: Reguljära uttryck används för att identifiera mängd, enhet och produktnamn.
3. **AI-baserad Parsning (Mistral)**: Mistral AI används för att tolka kvittot och returnera strukturerad data.
### Förbättringsförslag
#### 1. Använd AI efter Regelbaserad Parsning
- **Fördelar**: Regelbaserad parsning kan hantera de flesta enkla fall (t.ex. "TUC ORIGINAL 100G").
- **Implementering**: Kör regelbaserad parsning först. Om regelbaserad parsning inte kan tolka en rad, skicka den till AI för vidare analys.
#### 2. Använd AI efter OCR och PDF-parsning
- **Fördelar**: AI kan användas för att förbättra kvaliteten på texten som extraherats av Tesseract eller `pdf-parse`.
- **Implementering**: Kör OCR och PDF-parsning först. Skicka den extraherade texten till AI för att förbättra kvaliteten. Använd den förbättrade texten för regelbaserad parsning.
#### 3. Använd Olika Mistral-modeller för Olika Uppgifter
- **Fördelar**: Små modeller kan användas för enkla uppgifter, medan större modeller kan användas för komplexa uppgifter.
- **Förslag på Modeller**:
- **`mistral-tiny`**: För att förbättra OCR-resultat och enkla tolkningar.
- **`mistral-small`**: För att tolka komplexa kvittorader där regelbaserad parsning misslyckas.
- **`mistral-medium`**: För att hantera mycket komplexa fall eller när hög precision krävs.
#### 4. Implementera Caching
- **Fördelar**: Minskar antalet AI-anrop genom att cacha resultat för vanliga produkter och kvittorader.
- **Implementering**: Cacha resultat från AI för vanliga produkter och kvittorader. Använd cachade resultat när samma produkt eller kvittorad dyker upp igen.
### Förslag på Arbetsflöde
1. **OCR och PDF-parsning**: Kör Tesseract eller `pdf-parse` för att extrahera text.
2. **Regelbaserad Parsning**: Använd reguljära uttryck för att tolka mängd, enhet och produktnamn.
3. **AI för Förbättring av Textkvalitet** (valfritt): Skicka den extraherade texten till en liten Mistral-modell (t.ex. `mistral-tiny`) för att förbättra kvaliteten.
4. **AI för Komplexa Fall**: Om regelbaserad parsning misslyckas, skicka raden till en större Mistral-modell (t.ex. `mistral-small` eller `mistral-medium`) för tolkning.
5. **Caching**: Cacha resultat från AI för att undvika upprepade anrop.
Genom att strukturera processen på detta sätt kan vi optimera AI-användningen och använda så små modeller som möjligt, samtidigt som vi bibehåller precisionen.
---
## Prioriteringsförslag
1. **OCR-implementering** (hög prioritet)
2. **Databasintegration** (medel prioritet)