Docs
CommunityJev Integrations & Adapters
DSPy Decision Types
DSPy's experimental decision types put Jev behind one Predict: Noul, Choice, and Score annotations, per-field thresholds and cuts, and adapter translation that derives results from probability evidence.
- Format
- Docs
- Reading time
- 2 min
- Published by
- Community
- Author
- DSPy
- Last verified
- Oct 2026
Used inJev for Software & DevTools
- Languages
- Python
- Capabilities
- Requires API key
Highlights
- Noul, Score, Choice, TypeSafe, and Predict's per-field decision configuration are experimental and may change without warning.
- Configure with dspy.configure(lm=TypeSafe(jev-latest)); annotations such as Noul[(True, ...), (False, ...)] read like typed questions.
- Per-field parameters set thresholds and cuts: 0.7 on urgent, cuts of 0.5 and 1.6 on severity, and set_criteria() overrides criteria.
- Score takes 2 to 10 ordered levels; with probabilities [0.1, 0.3, 0.6] the value is 1.5, and cuts [0.5, 1.6] map it to level 1.
- Unsupported outputs such as str, int, bare float, lists, and optional decision types raise ValueError before any provider request.
Watch out
Experimental API documentation, so the page warns these types may change without notice. Noul confidence is computed locally as distance from the threshold rather than a calibrated probability, and the page states no licence or pricing. Streaming, BestOfN, Refine, and generation controls are unsupported.
Questions about this entry
Short answers drawn from the linked project or page.
An experimental way to run DSPy predictions against System One decision models: one signature works with a generative LM or Jev, Predict owns demonstrations and per-field parameters, and adapter translation picks the request format and derives results from probability evidence.
Install with pip install dspy[typesafe], set TYPESAFE_API_KEY, then configure a model such as dspy.configure(lm=TypeSafe(jev-latest)) and annotate outputs with Noul, Choice, or Score, for example Availability = Noul[(True, ...), (False, ...)].
Per-field overrides sit on Predict: a threshold turns a Noul probability into a decision, and cuts map a Score value to a level. They stay local, so changing them reuses cached model evidence, and set_criteria() overrides the compiled criteria.
Score takes 2 to 10 ordered levels numbered 0..N-1. Value is the probability-weighted sum, so probabilities [0.1, 0.3, 0.6] give 1.5; level counts cuts at or below the value, so cuts [0.5, 1.6] give level 1.
It maximizes probability times weight, so a weight can tune how easily an option wins. Raw ties prefer declaration order, and a zero weight disables an option entirely.
str, int, bare float, lists, arbitrary Pydantic models, and optional decision types raise ValueError before any provider request. Nested containers such as list[Noul] warn because evidence decoding is unsupported, and RLM decision outputs are unsupported too.
DSPy derives Noul confidence locally as abs(p - t) / max(t, 1 - t), a distance from the threshold; Jev returns no separate Noul confidence. Predict.save() and load() work, storing the provider class, model, endpoint, cache setting, timeout, and explicit field overrides but no API key.
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.