# 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](../../TEKNISK_BESKRIVNING.md) för teknisk genomgång. - [RECIPE_IMPORT_REFACTOR_PLAN.md](../../RECIPE_IMPORT_REFACTOR_PLAN.md) för refaktorplan. # AI-funktioner i Recipe-App: Premium-funktioner och rekommenderade modeller > Se [README.md](README.md) för funktionsöversikt, [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md) för teknisk arkitektur och [NEXT_STEPS.md](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-2603`** används för de flesta funktioner eftersom den är kostnadseffektiv och klarar av strukturerad data och logik. - **`mistral-tiny-2603`** används för enklare, snabbare uppgifter som **"Vad ska jag laga idag?"** och **personliga matlagningsråd**. - **`labs-leanstral-2603`** anvä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 1. **Receptförslag** — "Vad ska jag laga idag?" är nästa naturliga premium-funktion; bygger direkt på inventory och recept som redan finns i systemet. 2. **Veckoplanering med AI** — kräver att receptförslag fungerar; planera mot kampanjpriser kräver extern datakälla. 3. **Validering av AI-output** — säkerställ att AI-svar alltid valideras mot strukturerade scheman (t.ex. Zod) för datakvalitet. ---