sqlite-utils-jev
Classify SQLite text with TypeSafe Jev. Save answers and costs in a separate SQLite journal. Keep the source database unchanged. Each request contains one record and one or more Choice questions. Eight requests can run at the same time.
Use this instead of LLM when you need threshold-based abstention and a shared budget journal that survives process crashes.
Alpha. Python 3.10+. macOS and Linux only: the journal requires a Unix file lock. MIT license.
Install
python -m pip install sqlite-utils-jev
If you already use sqlite-utils, run sqlite-utils install sqlite-utils-jev in its environment.
Try four tickets
- Save tickets.csv and routing.json in your current directory.
- Set the
TYPESAFE_API_KEYenvironment variable. - Run these commands. Use a new database name.
sqlite-utils insert tickets.db tickets tickets.csv --csv --detect-types --pk id
sqlite-utils jev classify tickets.db tickets \
--key id --text subject --text body --question routing.json \
--state decisions.sqlite --budget-usd 0.01
sqlite-utils decisions.sqlite \
"select source_key, label, status from results order by source_key" --table
Real output from jev-1.13.0 on 29 September 2026:
source_key label status
------------ --------- --------
1 billing accepted
2 technical accepted
3 other accepted
4 unknown accepted
Four requests used 1,639 input tokens: $0.000068838 at the configured price.
unknown is a category in this question. It is not an abstention.
Answers can change between runs.
Change thresholds without API calls
sqlite-utils jev classify tickets.db tickets \
--key id --text subject --text body --question routing.json \
--state decisions.sqlite --offline --min-confidence 0.50
Defaults are 0.75 probability and 0.60 confidence. Both thresholds must pass.
Otherwise, the tool saves abstained and keeps the proposed label.
Thresholds depend on the workload. Test them on labeled records; scores do not establish accuracy.
Repeat the original command to resume. Use --questions for named questions.
Check costs
sqlite-utils jev status decisions.sqlite
The example sends text to TypeSafe. Its one-cent allowance covers all runs that use this journal. Reservations survive crashes. The tool does not retry failed requests automatically. Actual charges can exceed the local estimate.
Defaults are jev-1.13.0 and $0.042 per million input tokens, checked on 29 September 2026.
Before paid work, check current pricing.
For another model, pass its fixed ID with --model and its rate with --input-price.
If the price changes, pass the new rate with --input-price.
See the reference for rate limits, file moves, retries and Python use. See verification for tests and live measurements.
Metadata
Release files for sqlite-utils-jev 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sqlite_utils_jev-0.1.0.tar.gz | 33.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sqlite_utils_jev-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.9 kB
Release files / sqlite_utils_jev-0.1.0.tar.gz
| Download URL | sqlite_utils_jev-0.1.0.tar.gz |
|---|---|
| Size | 33.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe663d1b442b35b45321821becafba308be07c4a1a65aeeebb722d1343037a1a
|
|
BLAKE2b-256 checksum How to use checksums |
9bccb9b381612ff041b0b35b9ac1914eb6d82e464329c15854ad86868ed16ad7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / sqlite_utils_jev-0.1.0-py3-none-any.whl
| Download URL | sqlite_utils_jev-0.1.0-py3-none-any.whl |
|---|---|
| Size | 18.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d7c6f65dd3389678fe64f127be021e7c59f166495727443d5ebfeb37e3d59fc
|
|
BLAKE2b-256 checksum How to use checksums |
5dc6465c37dcd62b5a3e9574b69c9c7292fa89caf2c7a4cf76b83e92169bda0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log