Skip to main content

jevkit-drift

TypeSafe's docs warn that jev-latest moves when a new version ships, and that confidence thresholds tuned against one version do not automatically hold on the next. jevkit-drift answers the question that warning implies: for the requests you actually care about, what changed?

Unofficial and unaffiliated with TypeSafe.

pip install jevkit-drift

Two kinds of change

A flip is a changed decision. Your code takes a different branch. This is what breaks things.

A shift is movement in the probability distribution with the same decision still on top. Harmless on its own, but it is what walks an answer toward a threshold, so a large shift is an early warning before anything has flipped.

Both are reported separately, because conflating them is how a drift report ends up either too noisy to read or too quiet to help.

Use

from jevkit_core import read_records, write_records
from jevkit_drift import compare_sets, replay

baseline = list(read_records("golden.jevl"))
candidate = replay(baseline, lambda s, q: client.system_one(s, q, model="jev-1.14.0"))
write_records("candidate.jevl", candidate)

report = compare_sets(baseline, candidate)
print(report.summary())

for request_id, delta in report.flips:
    print(request_id, delta.describe())

CLI

jevkit-drift golden.jevl candidate.jevl
jevkit-drift golden.jevl candidate.jevl --max-flips 3
jevkit-drift golden.jevl candidate.jevl --max-shift 0.15
jevkit-drift golden.jevl candidate.jevl --format json

Exit codes: 0 within tolerance, 1 drifted, 2 bad usage.

How records are paired

On request_id, the digest of state plus questions with the model deliberately excluded. That is the whole reason the record format keeps two digests: the full id changes when the model changes, so it cannot pair a baseline with its replay, while request_id can.

Change the state or a question and the records stop pairing, which is correct. They are no longer the same request, and comparing them would be meaningless. The CLI says so rather than reporting zero drift.

License

MIT

Metadata

Release files for jevkit-drift 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 jevkit-drift 0.1.0
File Size Uploaded Provenance
jevkit_drift-0.1.0.tar.gz 7.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for jevkit-drift 0.1.0
File Interpreter ABI Platform
jevkit_drift-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.4 kB

Release files / jevkit_drift-0.1.0.tar.gz

Download URL jevkit_drift-0.1.0.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
31cb547846c0c69f7c7953a88789d2779d3b28b8e6127771f7494e6770059fba
BLAKE2b-256 checksum
How to use checksums
79a8e589ee8b180f3fcc689546b56131a0f7fcafd85fe98010e20b25f5deb230
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / jevkit_drift-0.1.0-py3-none-any.whl

Download URL jevkit_drift-0.1.0-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9bcdddca1f34745cb30045525963323a62325c0eee17ced571bc8d5ecad6cdc
BLAKE2b-256 checksum
How to use checksums
ed3b72454957a566452268f6c8a526fa27a5b00855885d5a1bbeef589b83677e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Security for jevkit-drift 0.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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