Spring AI 1.1.3 Release Notes
π― Highlights
This release includes 19 new features, 31 bug fixes, 23 documentation improvements, 25 other improvements.
π’ Noteworthy
- All deprecated Anthropic model names have been replaced with active model identifiers throughout the codebase and integration tests to maintain compatibility with Anthropic's API. 54f35dc
β New Features
- Neo4j vector store now allows customization of the filter expression converter via the builder pattern, providing more flexibility for custom query filtering logic. 82bc777
- Introduces builder pattern for more flexible and readable construction of OpenAiSdkChatModel instances 982bc1e
- Adds support for custom embedding dimensions via '/embedding/embedding-model-dimensions.properties' configuration file for OpenAiEmbeddingModel a5359c7
- ToolCallAdvisor now supports streaming responses, enabling real-time function calling interactions 21dac8d
- SimpleVectorStore now supports filtering when deleting entries, providing more granular control over vector data management 7752ef8
- Added support for Anthropic Claude Skills API with unified API design and helper classes for skill integration #5299
- Added dimensions parameter support for Ollama embedding models, allowing control over embedding vector size #2713
- Enabled customization of JSON schema generation for structured outputs and function calling 4a8bdd7
- Mistral AI chat model now supports structured outputs using JSON schema validation, enabling type-safe responses with automatic conversion 76587fe
- New convenience method for easily retrieving system messages from Prompt objects a78d2e8
- Added Mcp*ServerCustomizer interfaces and fixed MCP auto-configuration to work properly in non-web environments #5261
- OllamaChatOptions now implements StructuredOutputChatOptions, enabling structured JSON output handling with comprehensive unit and integration tests a6ce0f6
- Added support for simple JSON format option in Ollama chat interactions 7b23ee2
- Enhanced model provider detection logic for Microsoft Foundry integration d4db917
- Chat memory advisors now support ToolResponseMessage, enabling better handling of tool responses in conversation history f74b04a
- Added support for dynamically augmenting tool schemas at runtime, enabling more flexible tool configuration and customization 6d310cc
- Added conversationHistoryEnabled option to ToolCallAdvisor, allowing users to control whether conversation history is included when making tool calls 4197b81
- Added support for configurable field names in Azure Vector Store, allowing users to work with existing Azure AI Search indexes that use custom field names instead of hardcoded defaults (content, embedding, metadata) 706f23e
- Added support for custom punctuation marks in TokenTextSplitter, enabling more flexible text splitting for various languages and use cases c0e279a
πͺ² Bug Fixes
- Fixed and improved the FilterExpressionConverter for vector store operations, enhancing query filtering capabilities 5b67238
- Replaced disabled Azure OpenAI image model with the latest available version 9578d34
- Corrected the prefixAssistantMessage implementation in DeepSeekAssistantMessage 321314b
- Resolved an issue where token counts were not properly tracked for the first document when starting a new batch, ensuring accurate token usage reporting. cbc1432
- Document names are now properly sanitized to meet AWS Bedrock Converse API naming requirements, preventing API rejection errors. 924478b
- Ensures CosmosDB chat memory auto-configuration is applied first, resolving bean dependency and initialization order issues. 55a819b
- Resolved issues with Anthropic integration tests by updating to current model names. cc47474
- Adds ambiguity check and improves Google GenAI authentication logic to prevent configuration conflicts 29ca4a6
- Resolves issue where MetadataMode configuration was not being applied correctly when processing embeddings in batch mode 6fa8730
- Corrects filter expression grouping logic in OpenSearch vector store integration to ensure accurate query results 03be3bb
- Resolves issue where Bedrock cache metrics were not being properly included in the Usage object for monitoring and observability fc7d55d
- Corrected the filter expression syntax for IN and NOT IN operators in Elasticsearch integration d287c39
- Fixed message ordering issue in MongoChatMemoryRepository to ensure correct conversation history retrieval 52a5c76
- Fixed ToolCallAdvisor to correctly preserve system messages when memory is disabled de32dd2
- Corrected the observation provider usage for Google Generative AI embedding model to ensure proper metrics and tracing #5227
- Improved error handling in ChromaApi to properly catch and process exceptions f7ed9d1
- Modified tool descriptions to help models provide geographical coordinates correctly and polished integration test classes cf55714
- Corrected the chatClientEntityWithStructuredOutput integration test for Mistral AI 43479ac
- Resolved string parsing issue in grammar processing fe5c3f9
- Fixed missing Redis chat memory repository artifacts in Spring AI BOM b2cfd5e
- Improved integration test stability by handling token count variations across different Ollama model versions f4f8d75
- Switched Anthropic integration tests to use active model for improved test reliability 98e24eb
- Fixed issue where Neo4jVectorStore doAdd method was ignoring session configuration 99127f6
- General improvements and updates to Neo4jVectorStore implementation 3293a20
- Resolved issues with Antora documentation build process 820ef7e
- Fixed ChromaApi HTTP server/client exception message verification to properly handle error conditions 330a35c
- Corrected typo in error message for collection existence checks #5080
- Updated TransformersEmbeddingModel to use raw URL for improved compatibility 0f95508
- Resolved checkstyle execution issues in the build process 5634944
- Addressed multiple build system issues to improve build stability b75af37
- Fixed various errors reported by ErrorProne across the codebase to improve code quality and prevent potential bugs ad11820
π Documentation
- Enhanced Javadoc to clarify supported content types for requests (string or list of media content) and responses (string only) 18a661b
- Adds documentation explaining Java code formatting requirements and setup for contributors 60a8c76
- Enhances documentation and test coverage for Bedrock cache metrics feature while ensuring backward compatibility 3191835
- Corrected API reference error in user guide documentation 01ca552
- Corrected typo in documentation #5327
- Added documentation for message ordering behavior in MongoChatMemoryRepository 4899e8f
- Added dependency information to ETL pipeline documentation for easier integration 77b80f3
- Fixed typos in code comments in commons module d3e3f6b
- Improved documentation for Prompt functionality 72e59a4
- Added documentation for using native structured output conversion with Mistral AI cff1cc4
- Corrected various typos throughout the documentation d30fc15
- Corrected step numbering in RetrievalAugmentationAdvisor documentation #5160
- New documentation guide covering LLM as a Judge pattern and implementation strategies 05f44e5
- New documentation guide explaining dynamic tool discovery capabilities and usage patterns 13a7e4a
- Corrected typos in Gemini model provider documentation 8ee553b
- Removed redundant /v1 suffix from OpenAI base-url examples in documentation for clarity 3f9f53d
- Added comprehensive reference documentation for Anthropic custom skills integration 23ac6ae
- Fixed syntax error in chat options builder example code #4915
- Corrected broken documentation link in TokenCountBatchingStrategy Javadoc #5083
- Updated broken documentation link in MilvusFilterExpressionConverter Javadoc #5028
- Added Maven Central badge to project README for better visibility bc06e4d
- Added documentation for Azure Vector Store custom field names feature 2e7c327
- Added documentation for custom punctuation mark support in TokenTextSplitter 7abe9a0
π¨ Dependency Upgrades
- Updated dependencies for vector store components to latest versions 6f12ac9
- Updated GemFire vector store Docker image version used in integration tests a802b72
- Upgraded Spring Boot dependency to version 3.5.11, bringing the latest bug fixes and improvements from the Spring Boot ecosystem. fceafa7
- Updates the OpenAI Java SDK dependency to version 4.17.0 for latest features and fixes f331633
- Updated Azure SDK dependencies to latest versions for improved security and stability db3a997
- Updated Google GenAI SDK with support for thinking levels specific to Gemini 3 Pro and Flash models 0c07a6d
- Updated the list of available Mistral AI chat models to include latest model offerings 2c6be59
- Updated OpenAI Java SDK dependency to version 4.13.0 bd62378
- Upgraded Google Generative AI SDK dependency to version 1.30.0 cf34a25
π© Build Updates
- Removed AnthropicApiLegacyToolIT integration test that is no longer needed d793364
- Updated checkstyle rules to accommodate new copyright header pattern dbcf55d
- Updated copyright headers across non-Java files to maintain licensing consistency 5a56c7e
- Standardized copyright headers across the codebase to use '2023-present' format for better maintenance. 5d778f0
- Updates integration tests for Google GenAI chat auto-configuration 73fe1de
- Simplified backport automation by using the official spring-io backport bot action #5389
- Reorganized build structure by moving antlr4 grammar and swagger files out of resources directory 08a4c28
- Requalified OllamaEmbeddingOptionsTests as integration test for proper test categorization 47dd6a8
- Moved test to IT test classification for proper test categorization #5208
- Corrected Checkstyle plugin configuration for code quality checks 2338b25
- Consolidated multiple CI workflows into a single unified workflow for improved maintainability d31dc3e
- Integrated Maven Build Cache plugin to improve build performance 36d9d7f
- Optimized Maven Build Cache configuration for better caching efficiency 0edeaef
- Cleaned up ambiguous test from ChatClientToolsWithGenericArgumentTypesIT 5cbc3c6
- Updated BedrockRuntimeHints and OpenAIRuntimeHints for improved GraalVM native image compatibility 9c0c053, 612da95
π Contributors
Thanks to all contributors who made this release possible:
- Alexandros Pappas (@apappascs)
- Arjen Poutsma (@poutsma)
- Artem Bilan (@artembilan)
- asekka (@a-sekka)
- buvidk (@buvidk1234)
- chabinhwang (@chabinhwang)
- CHANHAN (@chanani)
- Christian Tzolov (@tzolov)
- Daniel Garnier-Moiroux (@Kehrlann)
- David Yu (@weiyuc)
- ddobrin (@ddobrin)
- Eric Bottard (@ericbottard)
- guanxu (@guanxuc)
- han-gyeong (@han-gyeong)
- Harrison (@HarrisonC118)
- HartLi (@Hart-Li)
- Ilayaperumal Gopinathan (@ilayaperumalg)
- Julien Dubois (@jdubois)
- Khyojae (@Khyojae)
- Kyle Kreuter (@KyleKreuter)
- lance (@leehaut)
- lx1229 (@lx1229)
- Nicolas Krier (@nicolaskrier)
- Pilhwan Choi (@thisishwan2)
- Sasan Nosrati (@snosrati200)
- sebin1213 (@sebin1213)
- Soby Chacko (@sobychacko)
- SΓ©bastien Deleuze (@sdeleuze)
- Viacheslav Dobrynin (@viacheslav-dobrynin)
- weiguang li (@weiguangli-io)
- yaner-here (@yaner-here)
- Yokior (@Yokior)