Spring AI 1.0.3 Release Notes
🎯 Highlights
This release includes 4 new features, 14 bug fixes, 6 documentation improvements, 3 other improvements.
⭐ New Features
- GemFireVectorStore now supports metadata filtering queries, enabling more precise vector search operations. 833a856
- Enhanced AWS Bedrock integration with new BedrockChatOptions for improved configuration management and chat model options 8660473
- Initial implementation of ahead-of-time compilation improvements for better GraalVM native image support a964887
- OpenAiApi can now be injected as a Spring bean, enabling easier customization and testing ee51d44
🪲 Bug Fixes
- Resolved issues with JSON schema generation for method input parameters in Mistral integration. #4524
- Improved error handling by providing fallback messages when tool execution errors are blank. a0a38de
- Enhanced robustness of mergeToolUseEvents method and fixed handling of thinkingBlock.signature() in eventToChatCompletionResponse, improving streaming event reliability. 6ced885
- Resolved inconsistency in PromptTemplate.render(Map) where Resource variables were not handled correctly compared to no-arg render. 36516e0
- Corrected class loading mechanism for Jackson modules to avoid using Thread Context ClassLoader, improving reliability in certain deployment scenarios. 9d9d539
- Improved type safety and consistency in logger parameter binding. d075519
- Code quality improvement for document handling. 5bac155
- Corrected usage of BedrockChatOptions in the Bedrock proxy chat model implementation 06079b2
- Fixed toolAnnotationWeatherForecastStreaming integration test for Bedrock Nova chat client a110c8b
- Resolved issue GH-4414 in OllamaApiHelper implementation 71dee41
- Enhanced configuration metadata generation for better IDE auto-completion support 76ca66d
- Resolved index out-of-range exceptions that occurred during tool call merging in OpenAI integration a12f0ca
- Updated test annotations to use the current @MockitoSpyBean annotation instead of the expired @SpyBean 65b4ead
- Enhanced code clarity by improving method parameter names in the ChatClient builder API #3856
📓 Documentation
- Corrected documentation typo in ollama-embeddings.adoc. cdf5643
- Added documentation for metadata filtering capabilities in GemFireVectorStore. bc5411a
- Corrected example code in ChatMemory documentation for CassandraChatMemoryRepository #4476
- Fixed example code errors in multimodality documentation #4475
- Corrected documentation showing the proper property prefix as spring.ai.oci.genai.cohere.chat #4437
- Updated DeepSeekChatModel initialization examples to demonstrate proper builder pattern usage #4421
⚡ Performance
- Improved performance of float list to primitive array conversion in embedding utilities 8e16f9d
🔩 Build Updates
- Simplified initializeContainer method by removing redundant parameters and meaningless reassignments f4a2aa9
- Refactored code to use Optional chaining for cleaner assistant message extraction 4a4808d
🙏 Contributors
Thanks to all contributors who made this release possible:
- Albert Attard (@albertattard)
- Cameron Kirk (@kirkster96)
- cho-thinkfree-com (@cho)
- Christian Tzolov (@christian.tzolov)
- Eric Bottard (@bottarde)
- Hyoseop Song (@crad_on25)
- Hyunjoon Park (@academey)
- Ilayaperumal Gopinathan (@ilayaperumalg)
- Jason Huynh (@jason.huynh)
- Josh Long (@joshlong)
- lance (@leehaut)
- Li Huagang-简放视野 (@bert825_work)
- Mark Pollack (@mark.pollack)
- Oleksandr Klymenko (@alexanderklmn)
- SiBo Ai (@ai-afk)
- Soby Chacko (@soby.chacko)
- Sun Yuhan (@sunyuhan1998)
- Waldemar Panas (@waldemar.panas)
- xfl12345 (@xfl12345)
- Yanming Zhou (@zhouyanming)
- 随缘Bug (@fatebugs)