Introducing Savvina: Ask your database anything
The analyst bottleneck
Every data-driven company has the same problem: business users need answers from the database, but only a handful of people can write SQL. The result is a queue — a backlog of “data tickets” that can stretch days or weeks. A simple question like “which customers haven’t reordered in 90 days?” can sit in that queue long enough for the opportunity it represented to disappear.
The tools that exist to solve this either require sending your schema and query data to a third-party cloud, or they’re bolted-on add-ons that don’t understand the nuances of your specific data model. We built Savvina because we believe there’s a better path.
What Savvina does differently
Savvina runs entirely inside your own infrastructure. There is no Savvina cloud that ever touches your data. You deploy a Docker container, connect it to your database, and within 15 minutes your team can ask plain-English questions and get back correct SQL — and the results.
Three things set us apart:
Bring your own LLM. We don’t bundle a specific AI model. You connect whichever provider you already pay for — OpenAI, Anthropic, Mistral, a local Ollama instance, or any of the 9 providers we support. The LLM only ever sees the schema metadata needed to generate the query, never the row data itself.
Column-level privacy exclusion. In your semantic model you can mark columns as excluded from LLM context. A column named ssn, credit_card, or salary can be configured so the model never learns it exists, let alone its values. Your data governance rules become part of the tool.
Read-only validation. Every generated query passes through a validator before execution. INSERT, UPDATE, DELETE, and DROP are blocked at the engine level, not by convention. The worst a malformed query can do is return incorrect rows — it cannot mutate your data.
How the semantic cache works
Savvina builds a semantic model of your database when you first connect: table relationships, column descriptions, common business concepts, example query pairs. This model is what the LLM reasons over, not the live schema on every query.
On top of that, we layer a two-tier cache. Identical questions return the cached result instantly — no LLM call at all. Semantically similar questions (different wording, same intent) hit a vector similarity check first and return the cached SQL for verification before executing. In practice this reduces LLM calls by 40–60% within the first week of use, which means lower costs and faster responses for your team.
Getting started in 15 minutes
# 1. Pull and start Savvina
docker compose up -d
# 2. Open the web UI at http://localhost:3000
# 3. Add your database connection string
# 4. Click "Generate semantic model" — Savvina introspects your schema
# 5. Start asking questions
No Kubernetes, no cloud account, no data leaving your network.
What’s next
We’re working on a cloud-hosted edition for teams that want zero-infrastructure setup, and expanding our adapter support to include Snowflake, BigQuery, and Databricks as first-class targets. If you want early access, join the waitlist on our pricing page.
The community edition is free, self-hosted, and Apache 2.0 licensed. Pull it from Docker Hub and try it today.
