Repository navigation
Releases: spring-ai-community/spring-ai-typesafe
Releases · spring-ai-community/spring-ai-typesafe
Release list
v0.4.0
What's Changed
- Add a Spring Boot example and a docs page for Ollama's System One API by @tzolov in #20
- Add a Testing with JevJudge section to the JevJudge docs by @tzolov in #23
- Don't pad JevToolIndex results with tools Jev gave no probability by @tzolov in #25
- Prepare the 0.4.0 release by @tzolov in #26
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Spring AI TypeSafe 0.3.0
Requests now go out in the same order on every run, retries and RAG screening no longer fail silently, and the SDK runs against a local, open-source System One server. A few fixes change behaviour; see
Upgrading below.
<dependency>
<groupId>org.springaicommunity</groupId>
<artifactId>spring-ai-starter-typesafe</artifactId>
<version>0.3.0</version>
</dependency>Highlights
- Deterministic requests.
JevToolIndex, the RAG post-processors andJevChatModelbuilt their state and instructions withMap.of, whose order changes with every JVM run, so identical code could get
different answers. They now send a fixed order, and tools go out in the order they were indexed. Thanks to @jidechao for tracking this down in #11. JsonContent.object(key, value, …). An ordered, one-line alternative toMap.offor your own state, structured instructions and criteria descriptions.- Run locally with Laya. Its
laya-servespeaks the samePOST /v1/systemoneprotocol, so the client works against it unchanged. The new Using
Laya page covers setup, the protocol differences, and how its answers compare with Jev's. It is a stand-in for offline development,
not a replacement. - Failures you can see.
- The client warns when its timeout is at or above the retry budget, which meant nothing was ever retried.
JevDocumentFilterlogs when passages could not be screened and were passed through.JevDocumentRerankerno longer fails the request on a response without the answer.
Upgrading from 0.2.0
Most applications need no code changes. Check these:
| Change | What to do |
|---|---|
| Fixed key order. Answers can shift slightly against 0.2.0. | Re-check thresholds tuned on exact values. Build your own state with JsonContent.object. |
Choice, Score and SystemOneRequest copy their collections, and their accessors are unmodifiable. |
Don't change a collection after passing it in; build a new question or request. |
whenChosen follows the probability. A branch needs at least half of the choice's probability, and at least minConfidence, on its labels. |
Expect more NOT_APPLICABLE dependents on closely split |
| choices. | |
A guardrail refusal is final. JevSelfRefineAdvisor no longer judges or retries it. |
Nothing, unless you set a custom skipEvaluationPredicate; then add the JevGuardrailAdvisor.OUTCOME_CONTEXT_KEY |
| check. | |
JevToolIndex honours minimumRelevance. When no tool reaches it, none is returned. |
Lower it if you relied on always getting a tool. |
| An undeclared timeout is unknown, not 10 s, when you supply your own transport. | Declare it with timeout(...). |
Full details and migrations: Changes.
What's Changed
- Defensively copy request collections by @xujiantop-crypto in #10
- Let the live ITs follow TYPESAFE_BASE_URL and document using Laya by @tzolov in #9
- Send request state, instructions and tools in a fixed order by @tzolov in #13
- Point readers to Laya where they choose a backend or meet its differences by @tzolov in #14
- Stop the retry budget from silently disabling retries by @tzolov in #15
- Honour minimumRelevance and ignore a category that matches no tool by @tzolov in #17
- Follow the probability on whenChosen and keep guardrail refusals final by @tzolov in #18
- Make RAG screening failures visible and tolerate partial rerank responses by @tzolov in #16
- Add the 0.3.0 changes and correct docs that contradicted the code by @tzolov in #19
New Contributors
- @xujiantop-crypto made their first contribution in #10
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- Model-as-a-judge 0.2.0: code criteria, typed input, conditional criteria, self-refine fixes by @tzolov in #5
- Experimental: JevChatModel, a Jev classifier behind Spring AI's ChatModel by @tzolov in #8
- question: require instructions on Choice and Score builders by @Ashfaqbs in #2
New Contributors
Full Changelog: v0.1.0...v0.2.0