AI Concierge built for the Yelp AI Hackathon. Discover your city through 10 distinct voiced personas.
- iOS TestFlight: Join the Beta
- Demo Video: Watch on YouTube
git clone https://github.com/dart-technologies/vibe-guide.git
cd vibe-guide
cp .env.example .env # fill in your keys
npm install
npx expo startBuilt on Expo SDK 54. Required env vars: EXPO_PUBLIC_YELP_API_KEY, EXPO_PUBLIC_OPENAI_API_KEY, EXPO_PUBLIC_ELEVENLABS_API_KEY, EXPO_PUBLIC_OPENWEATHERMAP_API_KEY. Optional: EXPO_PUBLIC_REWRITE_PROVIDER=apple to force on-device Foundation Models when available (defaults to OpenAI). EAS profile + bundle IDs are pre-set for art.dart.vibe.
- Toggle mock data in the chat screen if Yelp AI returns 500/INTERNAL_ERROR.
- Greeting clips live in
assets/greetings/; regenerate withnode scripts/generate-greetings.js. - Tests:
npm test(Vitest). Current coverage: 84.77% (core services coverage >90%).
| # | Name | Voice | Specialty |
|---|---|---|---|
| 1 | Artsy Ava | Soft curator | Galleries, design, meaning |
| 2 | Barry Broadway | Theatrical hype | Matinees, show gossip, theater bars |
| 3 | Bookish Bella | Gentle narrator | Bookstores and quiet cafes |
| 4 | Francesca the Foodie | Polished British critic | Chef-driven dining & pairings |
| 5 | Luxury Lauren | Polished host | VIP dining, art house luxury |
| 6 | Marathon Maxine | Energetic coach | Movement-first itineraries |
| 7 | Nora Nightlife | Sultry insider | Speakeasies, late-night runs |
| 8 | Pizza Pete | Passionate tutor | Pizza culture and slices |
| 9 | Street Food Sam | Straight-up NYC | Neighborhood eats on a budget |
| 10 | Willa the Wanderer | Warm and cozy | Coffee, markets, slow mornings |
MVP focus: Francesca, Nora, Pete. More cues: docs/PERSONAS.md. |
- Persona wrapper rewrites Yelp AI responses without changing facts (provider switch: OpenAI by default, Apple on-device when available via
EXPO_PUBLIC_REWRITE_PROVIDER=apple). chat_idfrom Yelp persists across turns; journeys built from returned entities.- ElevenLabs streams persona_text to audio; cached clips per persona for fast replay.
Anchor prompt: "I have 3 hours free right now. Surprise me." Show 3 personas answering, then tap Reserve on a recommended spot. Demo script in plan/MVP_ROADMAP.md.
docs/PERSONAS.md— voice and tone cues for all 10 personasplan/MVP_ROADMAP.md— 10-day sprint, demo script, execution checklistplan/EXPO_IMPLEMENTATION.md— setup, user journey, file layoutplan/API_INTEGRATION.md— Yelp AI request/response contractplan/RESERVATION_FLOW.md— Yelp AI agentic reservation integrationplan/LATENCY_MASKING.md— greeting clip strategy for smooth UXconstants/personas.ts— persona prompts, voice IDs, avatars
- Product: AI concierge that turns local discovery into entertainment via 10 voiced personas, Yelp AI data, GPT-5 tone shaping, ElevenLabs playback.
- Why it wins: distinct journeys from the same query; practical 2–3 stop timelines with ETAs; entertaining voices and themes.
- Differentiators: persona-first rewrite while keeping Yelp facts verbatim; time-aware journeys with reservation hooks; mobile-first (Expo iOS).
- Success criteria: three personas demoed live with TTS; chat_id persistence proven; journey cards show ETA/summary/CTA row; user can craft a plan in under 3 minutes.
- Expo (React Native) front end, iOS priority
- OpenAI GPT-5 (4o-mini) for persona rewrite; Apple Foundation Models optional when available
- ElevenLabs TTS for character audio
- Yelp AI chat/v2 for business intelligence