Skip to content

jevper

Python wrapper that answers System One and OpenAI Decisions API questions using any OpenAI-compatible chat model.

Librarybeta

Overview

jevper is an independent implementation of OpenAI's documented Decisions API schema and TypeSafe's System One wire format on top of any OpenAI-compatible model. You wrap an existing client, such as the OpenAI SDK pointed at a local llama.cpp, LM Studio, Ollama, vLLM or SGLang server, or an Anthropic-compatible endpoint, and call client.decisions.create with an input and predicate, choice or score questions. It returns typed answers with a confidence and usage, in the same shape the native route returns.

The point is portability: a model you run today can answer decision questions now, and moving later to a native decisions route is a client swap rather than a rewrite. Requests that include something jevper cannot ask the model about, notably image inputs, are refused before sending rather than answered from missing evidence. The raw underlying response is kept for inspection. It is not affiliated with OpenAI or TypeSafe and is aimed at developers who want Jev-shaped classification over models they already use.

What the decision model decides

TypeQuestionAnswers
ChoicePick the intent of the message.billing · technical · sales
Yes / noAny predicate (yes/no) question about the input—
ScoreAny ordered score question about the input—

How it works

  1. Wrap an OpenAI-compatible client in SystemOneClient
  2. Call decisions.create with input and typed questions
  3. jevper asks the chat model and derives a typed answer and confidence
  4. Unsupported inputs such as images are refused before sending

Strengths

  • Use decision-style APIs with local or existing models
  • Same request and response shape as the native route
  • Refuses rather than guesses when evidence is missing

Caveats

  • Confidence comes from a general chat model, not a trained decision model
  • No image input support
  • Independent, unofficial implementation

Getting started

from jevper import SystemOneClient; client = SystemOneClient(OpenAI(), model=...); client.decisions.create(input=..., questions=[...])

At a glance

Type
Library
Status
beta
Language
Python
Runtime
library
Has code
yes

Use cases and integrations

How curated lists describe it

  • Jev-shaped (TypeSafe System One) classification wrapper over OpenAI-like clients.

    wh000wh000/awesome-jev-live
  • Jev-shaped (TypeSafe System One) classification wrapper over OpenAI-like clients: probabilities and confidence instead of prose.

    hellogumbo/awesome-jev
  • Independent implementation of the documented System One wire format over an OpenAI-compatible chat model.

    MrJev/awesome-jev

Frequently asked questions

Do I need Jev to use jevper?

No. It asks any OpenAI-compatible chat model the same typed questions.

Why use the Decisions schema?

So code written now can switch to a native decisions route later by changing only the client.

Are images supported?

No, requests with image inputs are refused before anything is sent.

Related projects

  • Swift package for typed decisions (probability, choice, score) over local MLX or Core AI models, Clef decision heads, or the Jev API.

    LibrarybetaSwift
  • Native Go runtime serving Gemma 4 12B as a Jev-like decision model with hand-tuned PTX kernels and no CGo or CUDA toolkit.

    ProjectbetaGo
  • Go harness for System One models: hosted Jev, open Kev in-process via llama.cpp, and Cloudflare Clef, with typed helpers and a CLI.

    ServicebetaGo
  • Go gateway exposing the Jev /v1/systemone contract over ordinary LLM backends by reading single-token label logprobs.

    ServicebetaGo
  • TypeScript library for one-line local decisions with open models (kev-0.6b, kev-4b, open-jev), no API keys or cloud.

    ProjectbetaTypeScript
  • Python library that finds numeric answers by bisection, asking Jev higher, lower or exactly at each guess.

    ProjectbetaPython