Article
CommunityJev Integrations & Adapters
Spring AI TypeSafe Starter
Spring AI Community's TypeSafe starter puts Jev behind seven Spring AI SPIs: judge, self-refine advisor, guardrail advisor, document filter, reranker, tool index, and evaluator.
- Format
- Article
- Reading time
- 3 min
- Published by
- Community
- Author
- Christian Tzolov
- Last verified
- Oct 2026
- Languages
- Java
- Capabilities
- Open sourceRequires API key
Highlights
- Maven artifacts spring-ai-starter-typesafe and typesafe-spring-ai at 0.1.0 auto-configure a TypeSafeClient from spring.ai.typesafe.api-key.
- Three primitives: Noul returns a truth value in [0, 1], Choice a label with per-option probabilities and confidence, and Score a value on an ordered rubric.
- The ticket example took a median 275 ms with one question and 310 ms with three, which returned 73 output tokens in total, timed from the author's laptop.
- A live verdict: is_plausible FAILED at 0.02, is_grounded PASSED at 0.89, and helpfulness INCONCLUSIVE at 0.83 with 0.44 confidence, below the 0.5 floor.
- JevSelfRefineAdvisor retries the prompt with failing criteria up to three times; JevGuardrailAdvisor screens input and output and never retries.
Watch out
Vendor-authored by the Spring AI community project's author; the 10x-125x faster and 22x-805x cheaper figures are TypeSafe's own cookbook benchmark, which the post says needs independent validation. Jev is a hosted API needing a TypeSafe account and key, and it never generates text.
Questions about this entry
Short answers drawn from the linked project or page.
A new Spring AI Community project that integrates TypeSafe AI's hosted Jev API. It is not a chat model: you hand it a state and a map of typed questions, and it classifies, scores, and decides without ever generating text.
Add org.springaicommunity:spring-ai-starter-typesafe 0.1.0 and, for the judge and advisors, typesafe-spring-ai 0.1.0 from Maven Central. Export TYPESAFE_API_KEY or set spring.ai.typesafe.api-key, and the client bean is auto-configured.
Noul asks a yes/no question and returns a truth value in [0, 1] that is itself the certainty. Choice picks one label and returns it with a probability per option and a confidence. Score places the state on an ordered rubric and can land between levels.
Confidence measures how well the options separated for this input. A helpfulness score of 0.83 with 0.44 confidence came back INCONCLUSIVE rather than FAILED because it was under the default floor of 0.5; failOnInconclusive(true) can treat that as a failure.
The model answers, JevJudge checks every criterion in one call, and if any fail, the failing criterion's whenFalse text, score, and threshold are appended to the original prompt for a retry, up to maxRepeatAttempts times. failOnExhaustedAttempts(true) throws instead of returning best effort.
It is the same advisor shape for safety: it screens what the user sent and what the model answered, and it does not retry, because an unsafe answer is not a draft. It can run beside the self-refine advisor on the same ChatClient.
The author timed 275 ms for one question and 310 ms for three on his laptop. TypeSafe's self-consistency cookbook cites a 14-question call at $0.000043 and 111 ms versus $0.0018 and 1.8 s for claude-haiku-4-5, a benchmark the post says needs validating.
Reactions & coverage
Posts, threads, and videos about this entry from around the web.
X: Agent Handoff Gate: agents verify what they hand off
X: Jev as an LLM guardrail inside Agentgateway
X: Vercel's fx safety reviewer, measured at 18× faster
Reddit: Early experiments wiring Jev into Pi as a safety layer and model router.
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.