jev_jsonschema
Python library that converts a JSON Schema into Jev questions and returns JSON that validates against the original schema.
Overview
jev_jsonschema bridges JSON Schema and Jev. Many LLM apps describe structured output with JSON Schema, which Jev does not speak directly; this library converts a schema into Jev questions (enums become Choice, booleans become Noul, bounded integers become Score), sends them with your content, and returns JSON that validates against the schema you started with, so existing parsing code can stay unchanged.
The README's example turns a review into sentiment, is_spam and a 1 to 5 quality score. Probabilities are keyed by your schema's values rather than Jev's internal labels, and Noul-derived fields carry no confidence. There is an async client, and schemas can be converted once and reused in loops. It reads TYPESAFE_API_KEY and documents mappings, return values, use without the client, and limits.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which enum value fits (for example sentiment)? | positive · neutral · negative |
| Yes / no | Is the message spam? | — |
| Score | Overall writing quality (1 to 5) | 1 · 2 · 3 · 4 · 5 |
How it works
- Define a JSON Schema
- Convert it to Jev questions (once, reusable)
- Evaluate with content as state
- Receive schema-valid JSON plus probabilities
Strengths
- Drop-in for code that expects schema output
- Probabilities keyed by schema values
- Sync and async clients
Caveats
- Only schema features mappable to the three primitives are supported
- No confidence for boolean and number fields
Getting started
`pip install jev_jsonschema`, then `with JevClient() as jev: jev.evaluate(schema, state=...)`.At a glance
- Type
- Service
- Status
- beta
- Language
- Python
- Runtime
- Library
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
\`probabilities\` is keyed by your schema's values, not Jev's internal labels, so a score of \`1\`–\`5\` reads as \`"1"\`–\`"5"\` and not \`"0"\`–\`"4"\`. Noul questions carry no confidence of their own, so \`confidence\` is \`None\` for booleans and numbers.
logicrw/awesome-jev-projectsRun a JSON Schema through TypeSafe's Jev API, and get JSON back.
hellogumbo/awesome-jev
Frequently asked questions
What does it do?
Turns a JSON Schema into Jev questions and returns schema-valid JSON.
Which schema types map?
Enums to Choice, booleans to Noul and bounded integers to Score, per the README.
Is there an async client?
Yes, AsyncJevClient.
Related projects
Zero-dependency Python CLI that hands small semantic judgments and verbatim passage selection to Jev; the calling agent keeps authority.
CLIbetaPythonPython library with a TypeScript port that turns Jev questions into functions over lists and DataFrames, with caching and escalation.
LibrarybetaPython, TypeScriptHack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.
MCP serverproductionTypeScriptAx, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.
PluginproductionTypeScriptEffect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.
ProjectproductionTypeScriptPHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.
ProjectproductionPHP