Inspiration
There is a clear need for humans to understand more about our personal journey. I wanted to give everyone the opportunity of having a private space where technology doesn't just randomize data, but actually "listens" and remembers. A fair use of LLMs not as a search engine, but as a medium for self-reflection.
What it does
Evangeline is an AI-powered psychic that provides personalized, ritualistic Tarot readings.
Intent-Based Spreads: It analyzes the user's question and dynamically selects a card layout (from a 1-card "Daily Vibe" to a 10-card "Soul Journey") that fits the specific user's needs.
Persistent Intuition: Using a relational database, it tracks your historical sessions, making more sense on the final read
Dynamic Follow-ups: Users can engage in a deep-dive conversation about their spread, asking for clarification or even drawing "clarity cards" to dig deeper into specific insights.
How we built it
We leaned into a "Deterministic Ritual" stack:
Frontend: Built for immersion, featuring a 3D model with lipsync making the conversation more engaging and immersive.
Backend: Supabase (Postgres) handles the heavy lifting. We use a relational schema to manage users, complex card positions, and session history.
The Brain: Gemini Flashlite acts as the Intent Classifier (choosing the spread) and the Interpreter (the psychic voice).
Memory Layer: We engineered a context-builder that pulls a user’s historical and previous reading summaries into the prompt to ensure the psychic "remembers" you.
Challenges we ran into
- Hallucination vs. randomness. We had to ensure the LLM didn't just "make up" cards it liked. We solved this by separating the Logic from the Interpretation: Backend code shuffles a deck of cards, and then they are passed to the LLM to interpret them. Balance the "vulnerability" of the user with safety filters to ensure the AI remains a supportive guide.
Accomplishments that we're proud of
The "Psychic Memory" System: Successfully querying a user's past trends and having the AI mention them naturally (e.g., "I see the Tower is following you again...") felt like a "magic" moment.
Dynamic Routing: Getting the AI to reliably output JSON to switch between 3-card and 10-card layouts based on natural language input.
The Ritual UX: Creating a digital experience that feels slower, more intentional, and more "sacred" than a typical fast-paced app.
What we learned
- Context solves a lot of issues for an AI. An LLM with a memory of your past struggles is 10x more impactful than a "smarter" LLM with no memory at all.
- Voice Integration: Autosync the mouth of the 3D model with the audio being generated by ElevenLas was a great topic to learn.
- Personalization using DynamicVariables is great to make the user feel special about the experience.
Log in or sign up for Devpost to join the conversation.