jev-compatible-server
Run open decision models behind a Jev-compatible API.
Documentation · API · Models · Contributing
Quickstart
Install uv, then start the server with the Transformers backend:
uvx --from 'jev-compatible-server[transformers]' jev-compatible-server
Send a decision request to POST /v1/systemone:
curl http://localhost:8000/v1/systemone \
--header 'content-type: application/json' \
--data '{
"model": "kev-0.5b",
"state": "A customer says they were charged twice.",
"questions": {
"route": {
"type": "choice",
"instructions": "Which team should own this ticket?",
"criteria": {
"billing": "Payment, invoice, or refund problems",
"technical": "Product bugs and technical failures"
}
}
}
}'
The first request downloads the selected model and its backbone from Hugging Face. See the API reference for all question and response types.
Installation
uvx installs the server into an isolated environment and runs it directly.
Select the extra for the inference backend you need:
# Hugging Face Transformers models
uvx --from 'jev-compatible-server[transformers]' jev-compatible-server
# llama.cpp/GGUF models
DECISION_BACKEND=llama \
DECISION_MODEL_PATH=/path/to/model.gguf \
uvx --from 'jev-compatible-server[llama]' jev-compatible-server
The bundled public-model registry is used by default. Custom GGUF models and registries require the environment described in the model recipe guide.
Description
jev-compatible-server is an open inference runtime for decision models. It
accepts one shared state with one or more typed questions, runs the selected
model through llama.cpp or Hugging Face Transformers, and returns normalized
choice, score, and noul answers. Models that implement only part of that
contract return an explicit unsupported result for each incompatible
question without discarding compatible answers in the same request.
The HTTP interface implements Jev's POST /v1/systemone request and response
shape so applications can move between hosted Jev and self-hosted models
without replacing their decision API.
Goals
- Provide a common runtime for open decision models, as llama.cpp does for language models.
- Preserve the Jev API contract for straightforward application cutover.
- Keep model behavior declarative when an existing backend and readout can run it.
- Support multiple execution engines without coupling applications to model architecture.
- Make batching, model coverage, and compatibility behavior explicit and testable.
Supported backends
| Backend | Model format | Built-in readouts |
|---|---|---|
| llama.cpp | GGUF | token logits |
| Hugging Face Transformers | Transformers checkpoints | token logits, native Bosun decision tokens, pointer head, encoder-decoder margin, scalar sequence classifier, hidden-state probe |
Backends execute the neural network; readouts convert model outputs into typed decision probabilities. See models and backends for supported checkpoints and the exact distinction.
Documentation
Contributing
Contributions for new backends, reusable readouts, model recipes, tests, and documentation are welcome. See CONTRIBUTING.md before making a change.
Acknowledgements
jev-compatible-server builds on
llama.cpp,
llama-cpp-python,
Transformers,
FastAPI, and
uv. It also depends on the authors who
publish open decision-model checkpoints and document their readout contracts.
Release files for jev-compatible-server 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 | |
|---|---|---|---|
| jev_compatible_server-0.1.0.tar.gz | 50.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jev_compatible_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 116.6 kB
Release files / jev_compatible_server-0.1.0.tar.gz
| Download URL | jev_compatible_server-0.1.0.tar.gz |
|---|---|
| Size | 50.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
912a6de9634aa44794b57083a5382c5caf76d69397a42c92d2db96fef679b3f2
|
|
BLAKE2b-256 checksum How to use checksums |
438217433d56ed1df28d4fbb7d6c65296dcd09194bac30f1ceff6bf1357e4083
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / jev_compatible_server-0.1.0-py3-none-any.whl
| Download URL | jev_compatible_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 65.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c57fadfb7622119429505a28c4e4810026fb3d7c374f9cb271c0046703dc86e
|
|
BLAKE2b-256 checksum How to use checksums |
91967f065e6e65c980aa8df289c499399bc97c07534b57732c67780d0266f590
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|