embedding
The calibration is yours

Docs/The calibration is yours

The calibration is yours

Download the calibration as a file and run the same decisions on your own hardware with the open source engine. No account, no network, no expiry.


What a fit produces is not a row in our database that you rent access to. It is a file, and you can download it.

bash
curl -s $API/v1/projects/<slug>/calibration/export \
  -H "X-API-Key: $STUDIO_KEY" \
  -o calibration.json

Exporting is an audited event, so there is a row in your own audit log saying who took a copy and which calibration version they took.

What is in it#

keywhat it holds
questionsper question: the temperature, the conformal threshold, the options
bandthe review policy, its target precision and the measured review rate
referencethe answer mix and mean confidence your calibration rows produced, which is what drift is measured against
alphathe risk level the threshold was built for
version / checksuma hash of everything above that changes an answer

Note

The checksum is load-bearing.

The version is computed from the contents and written last, so a file whose numbers were edited by hand no longer matches the version stamped on it, and the engine refuses to load it rather than quietly serving numbers that do not correspond to anything in your audit log.

Running it yourself#

The engine is vegaml, Apache 2.0, and the default reader is Apache 2.0 and ungated, so the whole bundle redistributes without asking anyone.

bash
pip install "vegaml[serve]"            # needs Python 3.10 or newer

vegaml-serve --calibration calibration.json \
             --threads 1 --preload

curl -s localhost:8000/v1/decide \
  -H 'content-type: application/json' \
  -d '{"state": "I was billed twice, refund me or I cancel.",
       "questions": {"churn": {"type": "boolean",
         "instructions": "Does the customer threaten to leave or cancel?"}}}'

The answer that comes back carries calibration_version in its audit block, so a decision made on your own hardware is traceable to the same calibration the hosted API was serving. --preload loads the checkpoint before the port binds, which keeps the first caller from paying for the load.

Why this matters#

Three reasons, in increasing order of how much they tend to matter to the person signing.

Nothing leaves the building. If your records cannot go to a third party, the fit can still happen here and the serving can happen there. The file is the bridge, and it contains coefficients rather than your data.

Offline and air-gapped work. There is no licence check, no call home and no telemetry in the serving path. It runs on a machine with no route to the internet.

Cancelling does not switch anything off. The calibration you exported keeps working on the engine you already have. What you stop paying for is the fitting, the measuring and the hosted endpoint, not the right to keep deciding.

Watch out

A calibration belongs to one engine behind one reader.

A temperature and a threshold are fitted for a specific configuration. Point one at a different reader and mismatches() will tell you why it does not belong, in sentences, rather than letting you serve numbers that mean nothing.

The same two commands also work with no account at all: see Fit and calibrate for vegaml-calibrate fit, which builds one of these files from your own labelled rows locally.