Most text-to-SQL servers ask you to trust a single hop from question to statement. This one splits the hop and hands you the middle of it, which is what matters when the person reading the answer cannot audit the SQL themselves. The price is a DataFocus account and a schema you describe up front rather than one it discovers.
A Java server that turns a question into a SQL statement. Rather than a model emitting SQL in one opaque hop, the question is first resolved into keywords against the schema you registered and the statement is derived from those — which is what lets somebody who cannot read SQL check that the right thing was asked. The server never connects to your database and never runs the statement it returns.
- A session opened against a table model you supply: database type and version, the tables, each column with its display name, data type and aggregation, and the join relations between fact and dimension tables
- SQL generated for that model from a plain-language question, keyed by a chat id so follow-up questions stay on the same schema
- A keyword step you can read between the question and the statement, which is where a misread question shows up
- Answers in either English or Chinese, set when the session opens
A JDK and Gradle to build the jar, which then runs under Java as a local stdio process. A DataFocus account supplies the bearer token every call carries: register, create an application, and generate the token from its interface-authentication screen. You also supply the schema — the table model is passed in, not discovered, so the description you write is the description it reasons over. Executing the SQL stays on your side of the line entirely.
Build from source — clone the repository and build it, then point your client at the binary
