Skip to content

Jev directory

Jevclient

An async Python client for Jev with typed Noul, Choice, and Score helpers: questions batch into one request, and callers get probabilities, choices, and weighted scores instead of text to parse.
Stars
2
Language
Python
License
MIT
Reading time
3 min
Published by
Community
Author
AboveColin
Last verified
Sep 2026

About this project

Async Python client for TypeSafe Jev, the System One decision model. Jev answers typed questions about a state and returns values, so there is no text to parse. A Noul carries no confidence, because the probability is the whole answer. Every question in a call is evaluated in isolation against the same state, and the API answers them in parallel. Measured from the Netherlands on 2026-09-17:

Quoted from the project's README. Read the full README.

Highlights

  • One call evaluates every question in isolation against the same state and answers in parallel; 400 questions took 1,336 ms with 15,417 input tokens.
  • Batching is nearly free in time: latency stayed near 700 ms from 3 to 100 questions, while question text is billed as input and output is billed at zero.
  • A Choice accepts 2 to 255 options and a Score 2 to 10 levels, both checked locally so a mistake costs no request.
  • Typed errors cover 401, 422, 429 with retry_after, 529, and connection failures, and the client has no internal retry loop.
  • Requires Python 3.12 and aiohttp, and is an independent client not affiliated with TypeSafe.

Quickstart

python
import asyncio
from jevclient import JevClient, Noul, Choice, Score
async def main():
    async with JevClient("YOUR_API_KEY") as jev:
        answers = await jev.ask(
            "The front door has been unlocked for 40 minutes.",
            {"warn": Noul("Should someone be warned?"),
             "area": Choice("Which area?", {"security": "Locks", "climate": "Heating"}),
             "urgency": Score("How urgent?", ["Ignore", "Today", "Right now"])},
        )
    print(answers["warn"].noul, answers["urgency"].score)
asyncio.run(main())

Watch out

MIT-licensed and not affiliated with TypeSafe. Needs Python 3.12 and aiohttp; batching keeps latency flat, but question text is billed as input tokens while output is free.

Questions about this entry

Short answers drawn from the linked project or page.

From the Jev guides

Original write-ups on what this entry is for.

From the Jev AI model community

Posts from builders shipping with Jev right now.

Follow @typesafeai