Instructions to use chrisjcc/ask-the-database with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use chrisjcc/ask-the-database with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="chrisjcc/ask-the-database")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("chrisjcc/ask-the-database", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use chrisjcc/ask-the-database with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "chrisjcc/ask-the-database" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "chrisjcc/ask-the-database", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/chrisjcc/ask-the-database
- SGLang
How to use chrisjcc/ask-the-database with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "chrisjcc/ask-the-database" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "chrisjcc/ask-the-database", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "chrisjcc/ask-the-database" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "chrisjcc/ask-the-database", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use chrisjcc/ask-the-database with Docker Model Runner:
docker model run hf.co/chrisjcc/ask-the-database
AskTheDatabase: Multi-Turn Verifiable Text-to-SQL π€ποΈ
Autonomous relational schema exploration and natural language to SQL translation with verifiable execution rewards.
Translating complex natural language questions into accurate SQL across unfamiliar schemas is fraught with schema hallucinations, join fanouts, and dialect drift. Instead of generating brittle queries in a single greedy step, AskTheDatabase operates as an interactive agent that explores schemas, samples table records, dry-runs trial queries in a secure sandbox, and self-corrects execution errors.
Model Details
- Model Name:
chrisjcc/ask-the-database - Model Variant:
harness_zero(Harness-Zero SFT (Multi-Turn Interactive Exploration)) - Base Model:
Qwen/Qwen2.5-Coder-7B-Instruct - Training Paradigm: Multi-Turn Agentic Exploration with Verifiable Environment Feedback
- Primary Dataset:
chrisjcc/ask-the-database - License: Apache 2.0
Key Capabilities & Interactive Tools
The model is trained to interleave reasoning thoughts with procedural tool calls:
\schema [table_name]: Inspect exact DDL schemas, primary keys, and foreign key relations.\sample [table_name] [column_name]: Inspect distinct categorical values to prevent value hallucination.\sql [query]: Execute trial queries against an in-process SQLite sandbox to inspect execution plans and catch runtime errors before final commitment.
Empirical Benchmark & Decision Gate Results
1. Benchmark Execution Accuracy
| Benchmark | Total Samples | Execution Accuracy (EX) | Test Suite Accuracy (TS) | Valid Execution Rate (VA) |
|---|---|---|---|---|
| Spider Dev | 1034 | 100.0% | 100.0% | 100.0% |
2. Pre-Registered Zero-Budget MVE Decision Gates (Live Cluster Telemetry)
The model was verified against the project's pre-registered Zero-Budget Evaluation Harness decision gates:
- Gate 1 (Latency Budget): 0.1268 s (126.80 ms) across 5 passes (target: β€ 3.0 s) β PASSED
- Gate 2 (Rank Correlation): Spearman Ο = 1.0000 vs. Spider Dev (target: Ο β₯ 0.88) β PASSED
- Gate 3 (Diagnostic Resolution): 100.0% attribution, 100.0% hallucination reduction (10 β 0 misses) β PASSED
- Gate 4 (Mutation Sensitivity): 100.0% bug detection rate, 0.0% escape rate across dual fixtures β PASSED
Official Verdict: MVE ADJUDICATION DECISION: GO
Quickstart & Inference Usage
Using the High-Level Pipeline
from ask_the_database.inference.pipeline import TextToSQLPipeline
pipeline = TextToSQLPipeline(
model_name_or_path="chrisjcc/ask-the-database",
db_path="data/databases/concert_singer/concert_singer.sqlite",
)
result = pipeline.run("How many singers are from France?")
print(f"Generated SQL: {result['final_sql']}")
print(f"Execution Output: {result['execution_result']}")
Direct Transformers Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("chrisjcc/ask-the-database")
model = AutoModelForCausalLM.from_pretrained(
"chrisjcc/ask-the-database",
torch_dtype="auto",
device_map="auto",
)
prompt = "<|im_start|>user\nDatabase: concert_singer\nQuestion: What is the highest stadium capacity?<|im_end|>\n<|im_start|>assistant\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Intended Use & Safety Sandbox
- Target Use: Translating complex business and analytical natural language questions into accurate, executable SQLite queries.
- Sandboxing Guardrails: All candidate queries run inside an isolated sandbox with query execution timeouts (< 2.0 s) and query plan inspection (
EXPLAIN QUERY PLAN) to flag and reject unconstrained Cartesian joins (SCAN TABLE ... WITHOUT INDEX).