Skip to main content

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

  1. Save tickets.csv and routing.json in your current directory.
  2. Set the TYPESAFE_API_KEY environment variable.
  3. 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)

Source distribution for sqlite-utils-jev 0.1.0
File Size Uploaded
sqlite_utils_jev-0.1.0.tar.gz 33.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sqlite-utils-jev 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page