Jevaro
Python batching proxy that asks the same Jev questions about many states and streams answers back as Apache Arrow tables.
Overview
Jevaro is an experiment in bulk inference with Jev. The TypeSafe API evaluates one state per request; Jevaro lets a client ask the same questions about many independent states in one request, either making the underlying calls concurrently or packing several states into each call with a rows_per_call option. It converts the JSON answers into an Apache Arrow IPC stream in input order, where the schema arrives first, each state becomes a row and each question a column.
Arrow extension types preserve the meaning of Choice, Noul and Score results, with shared labels and legends stored once in the schema, so the data can go straight into pandas, Polars, DuckDB and other Arrow tools. The project ships a Python server (jevaro-server) and readers for Python (sync and async) and JavaScript (browser and Node), all on PyPI or npm. A quickstart evaluates three customer messages and reads the results back with only PyArrow. Each evaluation uses the TypeSafe API at normal charges. It comes from Columnar.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Other | Caller-defined Choice, Noul and Score questions applied to many states | — |
How it works
- Run jevaro-server with a TypeSafe key
- Client sends many states and one question set
- Server fans out or packs states into calls
- Answers stream back as ordered Arrow rows and columns
Strengths
- Bulk evaluation without per-item client code
- Typed Arrow output for data tools
- Python and JavaScript readers
Caveats
- Experimental
- Normal TypeSafe charges apply per evaluation
Getting started
pip install jevaro-server jevaro, export TYPESAFE_API_KEY, run jevaro-server, then `python jevaro-python/example.py --output jevaro-results.arrows`.At a glance
- Type
- Proxy
- Status
- prototype
- Language
- Python
- Runtime
- Proxy server + Python/JS readers
- Has code
- yes
Use cases and integrations
How curated lists describe it
Python batching proxy that asks the same Jev questions about many states and streams the answers back as Apache Arrow, one row per state and one column per question, with Python and JavaScript readers.
MrJev/awesome-jev
Frequently asked questions
Why Arrow?
So results go directly into pandas, Polars, DuckDB and other Arrow tools with types preserved.
Does it batch inside Jev calls?
It can run calls concurrently or pack several states per call with rows_per_call.
Which languages can read the output?
Python and JavaScript readers are provided.
Related projects
Command-line tool for Laya typed decisions with presets, batch streaming, shortlisting, evaluation and a resident daemon.
CLIbetaPythonGo harness for System One models: hosted Jev, open Kev in-process via llama.cpp, and Cloudflare Clef, with typed helpers and a CLI.
ServicebetaGoTypeScript library for one-line local decisions with open models (kev-0.6b, kev-4b, open-jev), no API keys or cloud.
ProjectbetaTypeScriptSwift 6 bridge that runs System One decision models behind Apple's Foundation Models API, on device with Laya or via hosted endpoints.
ProjectbetaSwiftPHP library, extracted from LLPhant, for typed Jev Noul, Choice and Score calls, also usable with a Laya endpoint.
LibrarybetaPHPUnofficial Rust gateway routing /v1/systemone requests to TypeSafe, Vercel, OpenRouter or local Laya via an editable DAG.
ProxybetaRust