5.5 KiB
5.5 KiB
Session 2026-05-06: User-scoped AI, admin-toggles och premium
Denna session:
- Införde user-scoped AI-förslag för ingrediens- och kategorimatchning (premium-funktion).
- Admin kan nu slå på/av AI per användare via backend och UI.
- Flutter och backend respekterar premium-flagga och AI-tillgång i alla flöden.
- Lessons learned: Fallback-first AI, tydlig separation av analys, och ownerId/userId-filter i all logik ger robustare system.
Se även:
- TEKNISK_BESKRIVNING.md för teknisk genomgång.
- RECIPE_IMPORT_REFACTOR_PLAN.md för refaktorplan.
AI-funktioner i Recipe-App: Premium-funktioner och rekommenderade modeller
Se README.md för funktionsöversikt, TEKNISK_BESKRIVNING.md för teknisk arkitektur och NEXT_STEPS.md för prioriterade nästa steg.
Dokumentstatus (2026-05-03)
Målgrupp
Detta arkivdokument är för teknisk planering och historik kring AI-strategi.
Komplettering från senaste sessionerna
- AI-förslag för kategorier används tillsammans med regelbaserad parser, inte som ensam källa.
- Contradiction guards och domänregler (bl.a. bröd/rostbröd) prioriteras för att reducera felklassning.
- Klientens UX separerar produktförslag från AI-kategoriförslag för tydligare semantik i granskningen.
Detta dokument beskriver de AI-funktioner som implementeras eller planeras som premium-funktioner i recipe-app. Varje funktion är kopplad till en rekommenderad Mistral-modell, med fokus på att använda de enklaste och mest kostnadseffektiva alternativen.
Översikt över AI-funktioner
| Funktion | Beskrivning | Modell | Status |
|---|---|---|---|
| Automatisk kategorisering | AI kategoriserar produkter baserat på namn mot systemets kategoriträd. Admins kör bulk-kategorisering; premium-användare får förslag per produkt. | mistral-small-2603 |
✅ Klart |
| Kvittoimport — kategorisuggestion | Ej matchade kvittorader får ett AI-kategoriförslag för premium-användare, visas som ledtråd i gränssnittet. | mistral-small-2603 |
✅ Klart |
| Receptförslag utifrån hemmalager | AI analyserar användarens inventory och föreslår recept baserat på tillgängliga ingredienser. | mistral-small-2603 |
❌ Planerad |
| Veckoplanering med AI | AI genererar en veckoplan baserat på inventory, recept och användarpreferenser. | mistral-small-2603 |
❌ Planerad |
| Smart inköpslista | AI skapar en inköpslista baserat på saknade ingredienser och historisk förbrukning. | mistral-small-2603 |
❌ Planerad |
| "Vad ska jag laga idag?" | AI ger snabba receptförslag baserat på vad användaren har hemma. | mistral-small-2603 |
❌ Planerad |
| Enhetskonvertering | AI hjälper till att konvertera enheter (t.ex. gram till msk) och hanterar osäkerheter. | mistral-small-2603 |
❌ Planerad |
| AI-assisterad lageravräkning | AI hjälper till att dra av rätt mängder från inventory när ett recept lagas. | mistral-small-2603 |
❌ Planerad |
| Personliga matlagningsråd | AI ger personliga tips baserat på användarens matlagningshistorik och inventory. | mistral-small-2603 |
❌ Planerad |
| AI-assisterad import av PDF/länkar | AI extraherar recept och prisdata från PDF-filer och länkar för att underlätta importen. | mistral-small-2603 |
❌ Planerad |
| Kostnadseffektiv inköpslista | AI skapar en kostnadseffektiv inköpslista baserat på inventory och aktuella butikspriser. | mistral-small-2603 |
❌ Planerad |
Bakgrund och motivering
Varför dessa funktioner?
- Receptförslag utifrån hemmalager och veckoplanering är centrala för att hjälpa användare att minska matsvinn och spara tid.
- Smart inköpslista och kostnadseffektiv inköpslista är viktiga för att optimera användarens matbudget.
- AI-assisterad import av PDF/länkar underlättar för användare att lägga in recept och prisdata utan manuellt arbete.
Varför dessa modeller?
mistral-small-2603används för de flesta funktioner eftersom den är kostnadseffektiv och klarar av strukturerad data och logik.mistral-tiny-2603används för enklare, snabbare uppgifter som "Vad ska jag laga idag?" och personliga matlagningsråd.labs-leanstral-2603används för enhetskonvertering eftersom den är optimerad för kod och logik.
Tekniska överväganden
Integration med befintlig arkitektur
- Backend: AI-funktionerna kommer att implementeras som separata tjänster i NestJS, med egna endpoints för varje funktion.
- Frontend: Resultaten från AI-funktionerna kommer att visas i Next.js-gränssnittet, med tydlig feedback till användaren.
- Databas: Resultat och användardata lagras i MariaDB via Prisma ORM.
Säkerhet och validering
- Validering: AI-output valideras alltid mot strukturerade scheman (t.ex. med Zod) för att säkerställa datakvalitet.
- Säkerhet: Känslig data krypteras enligt den hybridlösning med PGP och AES som vi tidigare diskuterat.
Nästa steg
- Receptförslag — "Vad ska jag laga idag?" är nästa naturliga premium-funktion; bygger direkt på inventory och recept som redan finns i systemet.
- Veckoplanering med AI — kräver att receptförslag fungerar; planera mot kampanjpriser kräver extern datakälla.
- Validering av AI-output — säkerställ att AI-svar alltid valideras mot strukturerade scheman (t.ex. Zod) för datakvalitet.