What it does
Versa is a disambiguation-first tutoring loop powered by Gemini 3 that:
🔍 Detects real ambiguity — before answering, checks whether the student's message actually has multiple plausible meanings, or is direct enough to answer immediately 🎯 Asks with real options, not surveys — when something's unclear, generates 2-4 distinct, mutually exclusive interpretations and turns them into natural smart clickable choices, to retrieve missing pieces to find your intent. 🧠 Remembers every resolution as a fact — writes each disambiguation down in plain English (what was unclear, what was chosen) and embeds it for semantic search ⏪ Checks memory before ever asking again — searches past resolutions before generating new options, so a repeated ambiguity gets answered directly instead of re-asked 📈 Detects thinking style honestly, over time — looks for a repeating order in how a student reaches understanding across many independent sessions, and refuses to name it as a real trait until it's been confirmed far more times than coincidence would explain
How we built it
Backend: Python + asyncio (concurrent LLM call orchestration) Frontend: Streamlit (web UI) AI: Gemini 3.6 Flash (fast-tier: ambiguity detection, option generation, memory writes) + Gemini 3.5 Flash (final answer generation) via the Google Gen AI SDK Database: PostgreSQL 16 + pgvector (semantic memory search) Infra: Google Cloud Run, Cloud SQL, Secret Manager, Artifact Registry Tooling: uv, pytest, ruff Challenges we ran into The architecture we built first didn't win. A 5-stage branch-tree-and-planner system tested worse than a single call on real comparisons — accepting that and cutting it down was harder than building it. Silent failures everywhere. Nearly every real bug — a fabricated belief stated as fact, an entire learner model running on zero stored hypotheses for hours — passed every automated test and only surfaced when a human actually read the output. pgvector on Cloud SQL. The dev Postgres image didn't ship with the extension; needed a proper image swap rather than a live patch that wouldn't survive a container rebuild. Accomplishments we're proud of We measured, and we cut. Most AI projects add capability. We built a real head-to-head test harness proving what we need Every claim is falsifiable, not asserted. No confidence number gets trusted alone — matches are LLM-confirmed, not similarity-assumed, and nothing gets promoted to a durable trait without independent evidence across many sessions. Options that don't feel like a quiz. Disambiguation buttons are phrased as the next natural question in the lesson, never "what kind of learner are you" — the student reveals what they meant without being asked to describe themselves. What we learned A system that sounds confident and a system that's actually grounded produce identical-looking text — the only way to catch the difference is reading real output, not trusting green tests. More architecture isn't automatically more intelligence; it's more cost, and it has to prove itself against the cheapest possible alternative before it's trusted. Memory is only as good as its retrieval path — a fact store nobody searches before answering is just a log, not adaptability. What's next for Versa Convert this idea to a real product, to provide these services to learners across the world
Built With
- google-cloud
- pgvector
- postgresql
- pytest
- python
- ruff
- streamlit
Log in or sign up for Devpost to join the conversation.