Model or dataset
tencentmusic/supersonic avatar
tencentmusic/supersonic

SuperSonic: a semantic layer that feeds context to Text2SQL

SuperSonic is the next-generation AI+BI platform that unifies Chat BI (powered by LLM) and Headless BI (powered by semantic layer) paradigms.

5,083 stars1,011 forksJavaNOASSERTION

At a glance

What is it?
Tencent Music's SuperSonic pairs a Headless BI semantic layer with an LLM-driven Chat BI front end, so natural language queries resolve against curated metric and dimension definitions instead of raw table names. The design is sound, but the repository ships a NOASSERTION licence and a release cadence that stopped in late 2024.
Who is it for?
Adopt SuperSonic if you already maintain a governed semantic model and want a natural language entry point that reuses it, or if you are building a reference implementation and can read Java SPI extension points. Do not adopt it as a drop-in Text2SQL layer over raw warehouse tables, because the semantic parser expects metrics, dimensions and entities to be defined first, and the Chat BI path degrades without them.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 8 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The reliability gap SuperSonic is built to close

Text2SQL systems convert a question into SQL by prompting a model with table schemas. The README states the project's own view plainly: while some approaches show promising results, their reliability falls short for large-scale real-world applications. That is the problem statement. The failure mode is not that the model cannot write SQL syntax. It is that the model does not know that revenue in this company means net of refunds, or that a particular status column uses numeric codes rather than labels. SuperSonic's answer is to stop asking the model to guess. The target user splits in two. Business users get a chat box and a chart. Analytics engineers get a Headless BI interface where they define metrics, dimensions and tags along with their meaning and relationships. The second group does the work that makes the first group's experience tolerable.

Two ways the semantic layer constrains the LLM

The README names two mechanisms for improving Text2SQL generation. First, data semantics such as business terms and column values are injected into the prompt, which the project describes as reducing hallucination. Second, advanced SQL constructs like joins and formulas are offloaded from the LLM to the semantic layer, which reduces complexity. The consequence is that the model never writes a join. It emits a semantic query statement, and the Semantic Translator turns that into SQL against physical data models. This is a meaningful architectural bet: the LLM's job shrinks to intent recognition and slot filling, and deterministic code handles the parts where a wrong join silently returns plausible numbers. Anyone who has debugged a chatbot that invented a LEFT JOIN will recognise the appeal.

The request pipeline, component by component

The README lists six extensible components in flow order. The Knowledge Base extracts schema information periodically from the semantic models and builds a dictionary and index. The Schema Mapper identifies references to metrics, dimensions, entities and values in the user query by matching query text against that knowledge base. The Semantic Parser then produces a semantic query statement, and the README is explicit that it is a combination of rule-based and LLM-based parsers, each handling specific scenarios. The Semantic Corrector validates the statement and repairs it if needed, again as a mix of rule-based and LLM-based correctors. The Semantic Translator converts the corrected statement into executable SQL. Alongside this sits Chat Memory, which stores historical query trajectories for few-shot prompting, and Chat Plugin, which lets an LLM pick from configured third-party tools given descriptions and sample questions. The rule-based parsers are worth noting because the README calls them out as useful for demonstration and integration testing. That is a quiet admission that the LLM path is not always the one you want running.

Getting a working instance: Docker or the prebuilt binary

The README gives two paths. For Docker, install Docker and docker-compose, fetch the compose file with wget https://raw.githubusercontent.com/tencentmusic/supersonic/master/docker/docker-compose.yml, then run docker-compose up -d and open http://localhost:9080. For a local build, download the latest prebuilt binary from the release page, run assembly/bin/supersonic-daemon.sh start to launch a standalone Java service, and visit the same port. The README also points to an online playground at http://117.72.46.148:9080 with a note that configurations reset every weekend, so do not treat it as a place to store work. Source compilation is not documented in the README itself; it defers to the project Docs site. If you intend to modify the Java code, that deferral is the first thing to chase down, because the README does not carry the build steps.

Access control and the extension surface

SuperSonic advertises three-level data access control: dataset-level, column-level and row-level. For anyone putting a natural language interface in front of customer or financial data, row-level control is the difference between a demo and something you can deploy. The extension story is Java SPI. The README describes the platform as extensible and composable, allowing custom implementations to be added and configured through SPI, and it frames the whole project as a practical reference implementation that Tencent Music uses to power real-world products. That framing matters for expectations. A reference implementation is optimised for demonstrating a design, not for matching the operational polish of a product with a commercial support contract. Custom parsers or translators mean writing Java against internal interfaces and tracking them across upgrades.

Where the semantic-first design becomes a liability

The central limitation follows directly from the architecture. SuperSonic's Chat BI is only as good as the semantic model underneath it, and building that model is the analytics engineer's job, not something the platform derives. If you point it at a warehouse without curated metrics and dimensions, the Schema Mapper has a thin knowledge base to match against and the pipeline has little to work with. The README states that the only thing necessary is to build logical semantic models, which reads as a small prerequisite and is in practice a substantial modelling project. The licence is a second, harder constraint. The repository reports NOASSERTION, which means no standard licence identifier was detected. The README does not name a licence at all. For a company evaluating this for production use, that is an unresolved question, not a formality. Release cadence is a third signal: the most recent tags listed are v0.9.8 from November 2024, v0.9.6 from August 2024 and v0.9.4 from July 2024. The 0.9.x version numbers indicate the project has not declared a 1.0.

How it differs from plain Text2SQL tooling

The obvious alternative is a standalone Text2SQL component that takes a question plus a database schema and returns SQL. The difference is where the semantics live. A standalone tool pushes business meaning into the prompt, usually by pasting schema descriptions and hoping the model respects them. Every question re-derives joins and aggregation logic from scratch, so the same metric can be computed two different ways in two different sessions. SuperSonic moves that logic into a persistent semantic layer that both the chat interface and any other consumer query through the same open API. The trade is upfront modelling work and a heavier deployment (a Java service plus its dependencies) against consistency and a smaller surface for the model to get wrong. If your data is already well described in a semantic layer, SuperSonic reuses that investment. If it is not, a lighter tool will get you to a demo faster and fail in production in the ways the README describes.

Maintenance, upgrades and what to check before adopting

Upgrades mean moving between tagged releases of a Java service, and the extension points are SPI-based, so any custom parser, corrector or translator you write sits in the upgrade path. The README does not describe a migration mechanism, a compatibility policy or a database schema versioning scheme for the metadata store. The docker-compose file is pulled from the master branch rather than pinned to a release tag, which means the compose setup you download today may not correspond to the binary you downloaded last month. Pin it yourself if that matters. On licensing, the NOASSERTION marker means you cannot assume Apache 2.0 or any other terms from the repository metadata alone; read the actual licence file and get your own legal review rather than inferring from the fact that the project is public. The concrete next step is to start the Docker stack, build one semantic model with a metric and a dimension, and ask the chat interface a question that requires a join. If the generated SQL routes through the semantic layer and matches a hand-written query, the architecture is doing what it claims. If it does not, you have learned that before writing any Java.

Editorial conclusion

Adopt SuperSonic if you already maintain a governed semantic model and want a natural language entry point that reuses it, or if you are building a reference implementation and can read Java SPI extension points. Do not adopt it as a drop-in Text2SQL layer over raw warehouse tables, because the semantic parser expects metrics, dimensions and entities to be defined first, and the Chat BI path degrades without them. Before committing, verify the actual licence terms, since the repository reports NOASSERTION rather than a named licence, and confirm whether the v0.9.8 release from November 2024 is the version you intend to run given the absence of a later tagged release.

Official sources

  1. Issues
  2. README
  3. Releases
  4. tencentmusic/supersonic on GitHub
Community notes

Community notes