state (the
text or record to evaluate) and a map of typed questions, and the answer is a
calibrated probability per question. Kev
is a family of small open-weight models that implement the same API, so one
jev provider type covers both.
There are three question types:
The API is not OpenAI-compatible, and its answers have no chat equivalent, so
GoModel does not translate it: System One requests go through
passthrough at
/p/jev/..., which is enabled by
default for this provider. Chat, /responses, and /v1/embeddings return
invalid_request_error for jev models.
Configure
For the hosted API, the key is the whole setup:The default base URL is
https://api.typesafe.ai, the origin TypeSafe’s SDKs
use; a trailing /v1 is accepted and trimmed, so both spellings address the
same server. To run the hosted API and a local Kev side by side, register the
second under a suffixed name: JEV_KEV_BASE_URL=... creates provider
jev-kev, reached at /p/jev-kev/....Verify
/v1 segment is optional: /p/jev/systemone is the same route. Use
kev-latest as the model on a Kev server; it also answers to jev-latest.
Using the TypeSafe SDKs
The SDKs sendPOST {base_url}/v1/systemone, so point them at the provider’s
passthrough root and authenticate with your GoModel key:
TYPESAFE_BASE_URL=http://localhost:8080/p/jev and
TYPESAFE_API_KEY=change-me in the environment.
Native routes
Upstream errors keep their status code, with the provider’s body carried in
the gateway error message: a malformed question comes back as TypeSafe’s
422
naming the offending field, and 429 or 529 mean back off and retry.
Models, access control, and cost
GET /v1/models lists what the upstream reports, as jev/jev-latest and so
on. TypeSafe lists its aliases (jev-latest, jev-preview); a Kev server
lists its checkpoint (kev-latest) and the aliases it answers to. Versioned
IDs such as jev-1.13.0 are accepted by the model field whether or not they
are listed. The models are categorized as utility models with no generation
mode, since there is no OpenAI endpoint to route them to.
Every System One request names its model, so the passthrough surface applies
the caller’s model allowlist to it like any other
request.
The response’s usage.input_tokens and usage.output_tokens are recorded, so
System One calls appear in the usage API and dashboard under the model that
answered (jev-1.13.0, or the Kev checkpoint). Jev is priced per input token
and is not in the upstream model catalog; declare its pricing on the provider
to have those rows costed, or set it in the
pricing override editor: