Overview¶
What GQI is¶
GQI predicts a number from text. You hand it free-form input — a SQL query whose row count you want estimated, a code function whose runtime you want predicted, an essay you want scored, a support ticket whose resolution time you want forecast — and it returns a number together with a calibrated uncertainty (an honest error bar you can act on). In one phrase: calibrated numeric prediction from unstructured input.
The product is delivered through a deliberately familiar surface: a
scikit-learn estimator with .fit(X, y) and .predict(X), where X is your
unstructured input and y is a real number.
from gqi import GQI
reg = GQI(method="lora", model="small")
reg.fit(["cannot log in, urgent!", "typo on the about page"], [9.0, 2.0])
y_hat, y_std = reg.predict(["payment failing for all users"], return_std=True)
# y_hat -> [8.6] y_std -> [1.1] (priority ≈ 8.6, give or take ~1.1)
You write ordinary sklearn-style code. GQI handles reading the input and emitting a calibrated number.
What you can use it for¶
Anywhere you have free-form input and want a number out of it, with error bars:
- Estimate cost or cardinality from a SQL query or a query plan.
- Predict runtime, latency, or resource use from a code function or a job description.
- Score essays, reviews, tickets, or product descriptions on a numeric scale.
- Forecast a continuous quantity (resolution time, price, demand) from a text record or a semi-structured row.
If you can describe the thing as text and you want a calibrated number back, it's a fit for GQI.
Why calibrated uncertainty is the differentiator¶
A general-purpose LLM can emit a number, but it cannot tell you how much to trust it — and the "do it yourself with a prompt" path gives you a bare point estimate with no error bars.
GQI treats uncertainty as a first-class output:
predict(return_std=True)returns the number and its calibrated uncertainty. A prediction you can trust the error bars on is worth far more than a bare point estimate — you can threshold on confidence, route low- confidence cases to review, or propagate the uncertainty downstream.- The interface is the on-ramp. A clean
.fit()/.predict()surface over input→number prediction means there is no new mental model to learn. - Adaptation is fast and cheap. Each dataset gets its own lightweight adapter on top of a shared base model, so GQI can be tuned to your input distribution in minutes rather than requiring a model trained from scratch.
Free and local, or hosted and managed¶
GQI ships in two forms with the same interface:
| Local | Hosted | |
|---|---|---|
| Cost | Free | Paid |
| Runs on | Your own CPU or GPU | GQI Cloud |
| Model | A compact open-weights model | A larger managed model |
| Setup | pip install gqi |
An API key |
| Best for | Prototyping, offline use, full control | Scale, larger model, no infra to run |
The local model is small enough to run on a CPU or a modest GPU, which makes it an easy way to prototype. When you need more accuracy or want to serve at scale without managing hardware, the hosted API exposes the same surface behind an API key — set a key, no rewrite. See the package guide for the details.