AI roadmap
A three-stage path from rules-based ranking to an embedding-based resonance engine — the 'Spotify Discover Weekly for energy-based travel.'
Stage 0 · MVP rules (week 14)
- Hand-tuned weighted ranking for each of the 5 discovery rails.
- Personalization limited to geo (nearby) and explicit category filters.
- Goal: collect interaction data — likes, saves, visits, ratings — to seed ML.
Stage 1 · Collaborative filtering (month 5)
Implicit-feedback matrix factorization (ALS) on the user × marker interaction matrix. Hosted as a daily batch job; results cached in Postgres.
Pipeline (nightly):
1. Export interactions → S3 parquet
2. Train ALS (implicit lib, k=64 factors) on Modal/Replicate
3. Compute top-100 candidates per active user
4. Write to user_recommendations table
5. Serve at /functions/v1/ai-recommendationsStage 2 · Embeddings & resonance vectors (month 9)
Text (title + description + comments) → sentence-transformers (all-MiniLM-L6-v2) → 768-dim vector. Stored in pgvector. Categorical fields concatenated as soft prompts.
Weighted mean of embeddings for markers the user rated ≥ 8, with recency decay and category co-occurrence boost. Updated incrementally per interaction.
pgvector HNSW index, cosine similarity. Hybrid score = 0.6·semantic + 0.3·CF + 0.1·geo.
Each recommendation carries 2–3 reason chips ("Similar to Sedona Vortex you loved", "High creativity score · matches your pattern"). Builds trust.
Stage 3 · LLM Energy Guide (year 2)
User query ──► Intent classifier (sm. model)
│
┌────────┴─────────┐
▼ ▼
Conversational LLM Tool calls:
(GPT-4o or Claude) - search_markers(category, radius, score)
│ - get_user_journal_themes()
│ - get_seasonal_recommendations(date)
▼
Streaming response in chat + carousel of marker cards- RAG over user's own journal entries (with explicit consent).
- Memory store of declared preferences — 'I love coastal places' carries across sessions.
- Premium-only; rate-limited to 30 queries/day.
- Safety: no medical / spiritual-prescriptive language; refusals on harmful requests.
Data & ethics
- All embeddings trained on opt-in data only; clear toggle in Settings → Privacy.
- Journal entries never used for model training without explicit per-entry consent.
- Bias audits quarterly — surface diversity of recommendations across geography, creator demographics.
- Open research API ships with strict differential privacy guarantees.