Hosted model and API
Jev
TypeSafe's System One model accepts state plus typed questions and returns probabilistic, structured decisions through a hosted API.
Decision models and Python integration
These projects overlap around typed, probabilistic decisions, but they are not interchangeable. Jev and Laya are decision engines. JevLang and Semantic Python are programming interfaces with different syntax, backend, testing, and runtime choices.
Hosted model and API
TypeSafe's System One model accepts state plus typed questions and returns probabilistic, structured decisions through a hosted API.
Open-weights decision engine
A local decision engine for choice, score, and yes/no noul questions, with Python, CLI, and service interfaces.
Python value layer
A standard-Python library that makes selected values semantic and preserves each Boolean judgment as an inspectable Decision.
JevLang is a fourth piece: a Python source extension that introduces
~ and jev/case syntax and rewrites .jev
files to calls against Jev. It is included below because it is the closest
syntax-level comparison to Semantic Python.
| Dimension | Jev | Laya | JevLang | Semantic Python |
|---|---|---|---|---|
| What it is | A hosted System One decision model and HTTP API from TypeSafe. | An open-weights, non-autoregressive decision engine. | A Python source extension and client layer built around Jev. | An opt-in Python value and decision layer. |
| Primary job | Answer typed questions about supplied state. | Run typed decisions on local or self-hosted model checkpoints. | Express Jev-backed questions and branches with compact syntax. | Use semantic judgments inside ordinary Python control flow while retaining metadata. |
| Primary abstraction | State plus a collection of typed questions. | State plus choice, score, or noul questions. |
x ~ question and jev/case blocks. |
Semantic(value) compared with a proposition. |
| Syntax | HTTP/JSON API. | Python API, CLI, HTTP service, and related SDKs. | Python-derived syntax that is rewritten before execution. | Valid, unmodified Python syntax. |
| Source files | Language-independent API. | Ordinary client code. | Uses .jev modules and an import hook. |
Uses ordinary .py modules; no compiler or import hook. |
| Semantic boundary | The explicit API request. | The explicit prediction call. | The ~ expression or jev block. |
Only an explicitly wrapped Semantic(...) value. |
| Inference provider | TypeSafe's Jev service. | Laya checkpoints selected directly or through its router. | TypeSafe Jev. | Selectable: Laya, OpenAI, or deterministic FakeBackend. |
| Execution location | Hosted. | Local or self-hosted. | Hosted inference through Jev. | Local, hosted, or offline depending on the configured backend. |
| Current decision types | Yes/no, choice, and rating questions through the System One API. | noul, choice, and score. |
Yes/no probability, scale, and choice. | Boolean proposition evaluation for the v0.1 equality MVP; choice and score remain forward-compatible protocol shapes. |
| Return shape | Typed answers plus model and usage information. | Typed answers, probabilities/confidence, usage, and optional routing metadata. | Number- and string-like results carrying additional probability metadata. | A bool-coercible Decision retaining value, probability, backend, model, proposition, state digest, and provenance. |
| Branching | The caller interprets returned values. | The caller interprets returned values. | Direct if x ~ ... and jev/case constructs. |
Ordinary if and while consume a Decision. |
| Default Boolean policy | Caller-defined from returned probabilities. | Caller-defined; Laya also exposes confidence-gating options. | A yes/no probability is truthy at its documented default threshold. | True at or above 0.85, false at or below 0.15, otherwise raise by default. |
| Uncertainty | Probabilities and confidence are returned for application policy. | Probabilities/confidence are returned; low-confidence results can be marked. | Probability and confidence are available for explicit guards. | An uncertainty band is part of configuration; ambiguous truth testing raises unless another policy is explicitly selected. |
| Negation behavior | Expressed in the question or caller logic. | Expressed in the question or caller logic. | A separate source expression can issue another query. | != negates the same cached judgment instead of rewording and reinferring. |
| Caching | Not a language-layer feature; callers manage it. | Lifecycle and prediction hooks exist; application policy remains explicit. | No caching layer of its own is documented. | Stable decision caching is built in and preserves metadata. |
| Replay | Caller responsibility. | Caller responsibility or integration-level tooling. | Offline stubs support syntax and workflow tests, not model replay. | Offline record/replay primitives preserve decision provenance without plaintext state. |
| Offline tests | Require application fixtures or mocks. | Can run locally after model setup; deterministic application tests still need fixtures. | Includes a substring-based fake mode for tests without a key. | FakeBackend provides exact deterministic fixtures with no network or model download. |
| Network and data | State is sent to a hosted API. | Inference can remain local, but first use may download checkpoints. | The value on the left of ~ is sent to Jev. |
No transfer on import or wrapping. A comparison follows the selected backend: Laya local, OpenAI remote, fake offline. |
| Install | Use the hosted API and credentials. | pip install laya |
pip install jevlang |
pip install semantic-python, with optional [laya] or [openai]. |
| Language change | None; it is an API. | None; it is an engine/API. | Adds new source forms and a .jev toolchain. |
None; operator behavior changes only on the explicit wrapper type. |
| Best fit | Hosted, typed probabilistic decisions through a direct service API. | Local or self-hosted typed decision inference. | Teams that want dedicated semantic syntax backed specifically by Jev. | Teams that want valid Python syntax, backend choice, inspectable Boolean decisions, and deterministic application tests. |
Laya supplies local inference; Semantic Python supplies the value boundary, Python operator behavior, decision policy, caching, provenance, and replay.
python -m pip install "semantic-python[laya]"
from semantic_python import LayaBackend, Semantic, configure
configure(
backend=LayaBackend(),
true_threshold=0.85,
false_threshold=0.15,
uncertainty="raise",
)
ticket = Semantic("I was charged twice and need a refund")
decision = ticket == "the customer has a billing problem"
if decision:
route_to_billing()
print(decision.probability, decision.backend, decision.model)
The first Laya prediction may download a checkpoint and initialize a substantial local model stack. Validate quality, latency, memory, and negation behavior on representative data before production use.
You want TypeSafe's hosted System One model and will build directly against its typed HTTP API.
You want an open-weights decision engine on local or self-hosted infrastructure and are comfortable managing its model runtime.
You want explicit semantic values in standard Python, backend choice, inspectable uncertainty, caching, replay, and deterministic offline application tests.
No. Jev is a model/API; Semantic Python is a Python value layer. A future Jev adapter is roadmap research, not a current integration.
No. Laya can provide the inference behind Semantic Python. The two projects operate at different layers and can be used together.
x ~ "question" in JevLang is closest in intent to Semantic(x) == "proposition", but Semantic Python uses ordinary .py syntax, an explicit wrapper, and a backend-neutral decision protocol.
No. "done" == "the user wants to stop" remains ordinary deterministic Python. Only Semantic("done") crosses the model-backed boundary.
Yes. FakeBackend is entirely offline, and Laya inference can run locally after its model artifacts are available. The OpenAI backend sends the complete wrapped state and proposition to a hosted service.
No. They are estimates that require evaluation on the intended domain. Consequential actions need conservative thresholds and an explicit review or fallback path.
Comparison checked on October 7, 2026. Product APIs and model behavior can change. Vendor performance and calibration claims are not reproduced here as independent benchmark results.