Less generation.
More decision.
Turn uncertain inputs into typed decisions.
Keep the rules in code. Let models handle
the judgment.
From a cloned checkout · Python 3.10+
SMALL PRIMITIVES. USEFUL ANSWERS.
A type for every judgment.
Skip the paragraph.
Get an answer your code can use.
Noul↗
A yes/no probability for a focused question.
P(needs_review) → 0.8702 / CATEGORICALChoice↗
A label, its distribution, and confidence.
team → "billing"03 / ORDINALScore↗
An ordered rubric with an expected score.
risk → expected_scoreIllustrative values. Actual results depend on the provider and your input.
THE ADAPTIVE RUNTIME
Local first.
Stronger when needed.
Check known facts before calling a model.
Route uncertainty through an explicit policy.
Rules before inference.
Required tests failed? Stop here.
No model gets to overrule a hard fact.
Start with a local model.
Ask a narrow, typed question.
Inspect confidence and calibration.
Escalate the uncertainty.
Use a configured stronger provider
only when the routing policy needs it.
BUILT FOR THE CODE YOU ALREADY WRITE
A question in.
A decision out.
Define the possible answers. Bring a provider.
Use the result in your own workflow.
- Strict request validation
- Normalized probabilities
- Provider-independent decision API
- Optional local Laya and Laya-MLX backends
from openjev import Choice, OpenJev
from openjev.providers import LayaProvider
engine = OpenJev(LayaProvider())
result = engine.evaluate(
state={"message": "I was charged twice."},
questions={
"team": Choice(
instructions="Which team should handle this?",
criteria={
"billing": "Payments and refunds",
"technical": "Bugs and outages",
"sales": "Pricing and purchasing",
},
)
},
)
print(result.model_dump_json(indent=2))BUILD WITH EVIDENCE
Control you can inspect.
“Done” needs evidence.
Keep completion gates deterministic and use semantic judgments for the uncertain parts.
EVALUATION ↗Measure your own traffic.
Compare accuracy, calibration and latency. Fit thresholds on representative held-out data.
PROJECT STATUS ↗A runtime, not a model.
See what is implemented in 0.2 and what remains on the roadmap.
A FEW THINGS TO KNOW
Clear boundaries. Open code.
Is OpenJev a new foundation model?
No. Version 0.2 is a decision runtime that composes existing providers, deterministic gates and routing policies. A first-party trained model is a conditional future direction.
Does every decision call a hosted API?
No. Failed deterministic gates stop before inference. Local providers are optional, and remote fallback calls happen only when you configure a remote provider and the route requires it.
Is this affiliated with TypeSafe AI or Jev?
No. OpenJev is independently implemented and is not affiliated with or endorsed by TypeSafe AI. It does not include their proprietary model, weights or private implementation.
Can I use it in my own agent?
Yes. The core project is MIT licensed. Optional model packages and their weights have their own license terms. Start with the installation guide and measure behavior on your workload.
OPEN SOURCE. EXPLICIT CONTROL.