make more AI

This commit is contained in:
Norbert Maciaszek
2025-12-28 21:24:48 +01:00
parent 7b95faef4a
commit 69069587c5
17 changed files with 1534 additions and 670 deletions

41
spec.md
View File

@@ -27,9 +27,10 @@ Aplikacja wspomaga planowanie i śledzenie prezentów na dowolne okazje (święt
## 2. Core Domain MVP Scope
### User & Authentication
### User, Authentication & Tokens
- [ ] Rejestracja / logowanie (email + hasło)
- [ ] Profil usera (opcjonalnie: foto, preferencje powiadomień)
- [ ] **Tokeny**: Miesięczny odnawialny limit tokenów + możliwość dokupienia pakietów.
- [ ] **Bez social logins na MVP**
- [ ] Brak współdzielenia list (single-user na MVP)
@@ -139,6 +140,7 @@ Spersonalizowany feed powiadomień.
- **Okazja cenowa**: Spadek ceny rynkowej produktu z karty produktu.
- **Zbliżająca się okazja**: Countdown do wydarzeń (globalnych i mini-okazji).
- **Inspiracja AI**: Nowe propozycje na podstawie profilu osoby.
- **Radar Prezentowy (Gift Radar)**: Monitoring cen, trendów i dostępności w czasie rzeczywistym z match-makingiem AI.
- **Raport budżetowy**: Podsumowanie wydatków w danym miesiącu.
---
@@ -189,26 +191,31 @@ Obliczone **automatycznie** na podstawie prezentów i okazji.
---
### AI Gift Recommendations (Phase 2)
### AI Gift Recommendations & Greetings (Phase 2)
**Use Case:**
**Use Case 1: Recommendations**
User przychodzi na okazję, widzi osobę w liście, kliknie "Suggest Gifts" → AI generuje 510 propozycji z uzasadnieniami.
**Use Case 2: Greetings & Cards (New)**
AI generuje personalizowane życzenia na podstawie szerokiego kontekstu:
- **Widok Okazji (Grupowe)**: Generowanie życzeń dla wszystkich uczestników naraz (spójność stylistyczna, unikanie powtórzeń).
- **Widok Okazji (Indywidualne)**: Szybkie generowanie życzeń dla konkretnej osoby bezpośrednio z listy uczestników okazji (uwzględnia wybrany prezent).
**Input Context (AI):**
- Profil osoby: wiek, zainteresowania, relacja
- Okazja: typ, budżet per osoba, pozostały budżet na całą okazję
- Historia: jakie prezenty już kupił/planuje dla tej osoby w historii (unikaj duplikatów)
- Unikalność: weź pod uwagę, jakie prezenty planuje dla innych osób (różnorodność)
- Profil osoby: wiek, zainteresowania, relacja, styl życia, rozmiary.
- Okazja: typ, budżet per osoba, pozostały budżet na całą okazję.
- Historia: jakie prezenty już kupił/planuje dla tej osoby w historii (unikaj duplikatów).
- Wybrane prezenty: konkretne modele produktów, ich cechy i przeznaczenie.
**Output:**
- Lista propozycji: [{ title, category, priceRange, reason, matchScore }]
- Reason: "Lubisz gaming, a wiek sugeruje..." itp.
- Link do szukania: łatwe przejście do Ceneo/Google Shopping
- Życzenia: [{ recipient, occasion, text, tone, cardTypeSuggestion }]
**Implementacja:**
- LLM (OpenAI API / local Ollama / inne)
- Prompt engineering: struktura context + constraints (budżet, unikalne przedmioty)
- User ręcznie decyduje, co dodać (zero auto-dodawania, pełna kontrola)
- Prompt engineering: struktura context + constraints (budżet, unikalne przedmioty).
- **Koszt AI**: Każda generacja sugestii lub pakietu życzeń kosztuje określoną liczbę tokenów (np. 1 token per życzenia / 5 sugestii).
- User ręcznie decyduje, co dodać lub skopiować.
---
@@ -243,6 +250,8 @@ User
├── id (PK)
├── email (UNIQUE)
├── password_hash
├── tokens_balance (INT, default 0)
├── last_token_reset (TIMESTAMP)
├── created_at
└── updated_at
@@ -377,6 +386,7 @@ IndividualOccasion (Zrezygnowano - używamy tabeli Occasion)
- Logistyka: status, notatki zakupowe, numer zamówienia
- Analiza ceny zakupu vs cena rynkowa
- **Feedback Loop**: Po zmianie statusu na "Otrzymany" (given), pojawia się sekcja oceny (gwiazdki + notatka efektu).
- *(Przeniesiono: Sekcja AI Greetings została przeniesiona do widoków Okazji i Osoby dla lepszego kontekstu).*
#### 6. Settings
- Profil usera i wylogowanie
@@ -391,7 +401,7 @@ IndividualOccasion (Zrezygnowano - używamy tabeli Occasion)
Widok okazji podzielony na zakładki:
1. **Lista Osób**: Karty osób z przypisanymi prezentami i budżetem per osoba.
2. **Wszystkie Prezenty**: Zbiorcza lista prezentów (Flat list) do łatwego zarządzania statusami (Kupione/Zapakowane).
3. **Analiza AI**: Sugestie i porady dotyczące optymalizacji budżetu i doboru prezentów.
3. **AI**: Sugestie, porady dotyczące optymalizacji oraz grupowe generowanie życzeń dla wszystkich uczestników.
---
@@ -408,10 +418,10 @@ Widok okazji podzielony na zakładki:
**Timeline:** ~48 weeks (team-dependent)
### Phase 2 (Post-MVP, ~4 weeks after)
- Price tracking via Ceneo + PriceSnapshot table
- Price alerts & notifications (email/push)
- AI gift recommendations (LLM integration)
- **Wyszukiwarka AI (AI Search)**: Globalna wyszukiwarka prezentów oparta na LLM z analizą dopasowania (match-making).
### Phase 3+ (Nice-to-have, Later)
- Collaborative lists (share occasion with family)
@@ -429,7 +439,10 @@ Widok okazji podzielony na zakładki:
- [ ] Database: PostgreSQL assumption confirm?
- [ ] Ceneo integration: API lub web scraping? (Apify fallback)
- [ ] AI model: OpenAI API czy local/self-hosted? (cost/privacy trade-off)
- [ ] Monetization: subscription, freemium, ads? (affects feature gating)
- [ ] Monetization:
- **Tokens**: Monthly allowance + top-ups for AI actions.
- **Pakiet "Oszczędzanie"**: 14.99 PLN / msc. Odblokowuje historię cen (Ceneo) i alerty cenowe.
- **Pakiet "Kontrola budżetu"**: 6.99 PLN / msc. Odblokowuje zaawansowane analizy budżetowe, wykresy wydatków i prognozy.
- [ ] Mobile-first design czy desktop-first? (assuming mobile-responsive on MVP)
---