Skip to content

Releases: spring-projects/spring-ai

Spring AI 1.1.0-M2

22 Sep 21:28
Compare
Choose a tag to compare
Spring AI 1.1.0-M2 Pre-release
Pre-release

Spring AI 1.1.0-M2 Release Notes

🎯 Highlights

This release includes 16 new features, 12 bug fixes, 6 documentation improvements, 22 other improvements.

⭐ New Features

  • Added support for response schema validation in VertexAI Gemini Chat Model for structured output generation 31423e9
  • New integration with Mistral AI's OCR (Optical Character Recognition) API for document and image text extraction 0c1a089
  • Added comprehensive hardware, memory, performance and execution options for Ollama embedding models eba2cec
  • Added Testcontainers service connection support for docker/mcp-gateway to improve testing capabilities 4d0206b
  • Added Google GenAI artifact entries to Spring AI Bill of Materials for improved dependency management ae59953
  • Added support for thinking and response_format parameters to the ZhipuAI chat model integration, enhancing the model's capabilities and output formatting options cae6364
  • Added Docker Compose service connection support for MCP Gateway, improving containerized deployment capabilities 60a27a8
  • Added support for new ZhiPu models GLM-4.5 and GLM-Z1 5f984fb
  • Added 'enable' property for Bedrock Cohere chat configuration 9442c35
  • Added requestMetadata support to Bedrock converse requests for enhanced request tracking 45baa39
  • Aligned EmbeddingOptions builder pattern with ChatOptions for consistent API experience 14d6f58
  • Added builder pattern support for AssistantMessage creation f4a1c96
  • Added support for the new glm-4.1v-thinking-flash model in the ZhipuAI integration 49506de
  • Made OpenAI API available as a bean for injection, enabling easier integration and customization f41c27d
  • Implemented cache management for Anthropic API with eligibility tracking for improved performance and resource optimization 1d5ab9b
  • Added extended token usage metadata and Cached Content API support to Google GenAI (Gemini) for enhanced performance monitoring and content caching capabilities 6cf3b4b

🪲 Bug Fixes

  • Fixed issues with stateless Model Context Protocol (MCP) server registration to ensure proper connection handling 1b3705f
  • Replaced expired @SpyBean annotation with @MockitoSpyBean for improved testing compatibility #3446
  • Prevented out-of-range errors when merging tool calls in the OpenAI integration 6697589
  • Optimized EmbeddingUtils.toPrimitive(List) method for better performance d1133dc
  • Improved method parameter naming in ChatClient.Builder.defaultAdvisors() for better developer experience #3856
  • Fixed handling of default implementation for ToolCallback#call(String,ToolContext) method to improve tool integration reliability 3e17e16
  • Fixed Ollama to properly use system role for system messages instead of user role #4364
  • Corrected wrong checkstyle automated changes that were improperly applied f3aab2f
  • Refactored OllamaChatModel to support custom AbstractMessage implementations and align with other ChatModel implementations 8968df7
  • Fixed DeepSeekChatModel initialization to use builder pattern for consistent API design cb4f356
  • Improved configuration metadata generation for IDE auto-completion support b5a37b6
  • Fixed VertexAI Gemini chat model tool calling integration test for inferred OpenAPI schema streaming 3c57027

📓 Documentation

  • Fixed documentation for ChatClient responseEntity() method to provide accurate usage examples and guidance #4386
  • Fixed and improved ZhipuAI chat model documentation in zhipuai-chat.adoc #4387
  • Updated tests and documentation to use DockerModelRunnerContainer for improved container-based testing guidance c7b7d69
  • Improved MCP (Model Context Protocol) documentation and added comprehensive getting started guide 07688d5
  • Updated MCP reference documentation with minor improvements and clarifications e776129
  • Fixed OCI Cohere documentation property prefix to spring.ai.oci.genai.cohere.chat ce09cb5

🔨 Dependency Upgrades

  • Updated Model Context Protocol (MCP) related dependencies to latest versions #4415
  • Upgraded Spring Boot framework dependency to version 3.5.6 for latest features and security updates 820cc79
  • Updated to Spring Boot 3.5.5 for latest features and security improvements #4408
  • Updated Google GenAI dependencies to their latest versions for improved functionality #4398
  • Updated MCP from version 0.12.1 to 0.13.0-SNAPSHOT #4403
  • Changed HSQLDB dependency scope from runtime to test for chat memory JDBC autoconfiguration #4366
  • Updated MCP SDK to version 0.13.1 and mcp-annotations to 0.4.1 for latest features and improvements 0c8b6dc

⚡ Performance

  • Optimized performance by using AssistantMessage#builder() pattern instead of direct instantiation, reducing object creation overhead 1decd34
  • Refactored request creation logic for Mistral AI chat model to improve efficiency and maintainability f9d87fd
  • Simplified assistant message extraction using Optional chaining for cleaner code 356fced
  • Optimized ZhiPu Embedding to support batch embedding operations for improved performance b7f231a

🔩 Build Updates

  • Separated OllamaOptions into distinct Chat and Embedding Options classes for better modularity f908aa1
  • Added comprehensive edge case and boundary testing for Google Generative AI components to improve reliability 63ba02a
  • Enhanced MCP tool name prefix generation with automatic duplicate handling for better tool management 31db86d
  • Defined explicit version for maven-gpg-plugin to improve build reproducibility #4320
  • Added comprehensive test coverage for runtime hints and bindings processors #4402
  • Added comprehensive edge case tests for ChatModel, ListOutputConverter, and ToolExecutionResult components to improve code reliability...
Read more

Spring AI 1.0.2

17 Sep 14:03
Compare
Choose a tag to compare

Spring AI 1.0.2 Release Notes

🎯 Highlights

This release includes 9 new features, 31 bug fixes, 13 documentation improvements, 4 dependency upgrades, 4 performance improvements, and 15 build updates.

📢 Noteworthy

  • Removed deprecated Mistral AI Codestral Mamba model support as part of code cleanup efforts #4225
  • Changed UserMessage to use metadata property instead of properties for better consistency across the API #3980

⭐ New Features

  • Added 'enable' configuration properties for Amazon Bedrock Cohere chat functionality 779b304
  • Improved Unicode property union support for better Chinese character handling in text processing 35df129
  • Added mutual exclusivity validation between maxTokens and maxCompletionTokens parameters to prevent configuration conflicts 5496a8c
  • Added support for GPT-5 models from OpenAI, expanding the available model options for Spring AI applications 977dbf2
  • Added comprehensive debugging capabilities to maintenance workflow to improve troubleshooting and monitoring 51086f8
  • Added GPT-5 model enum support with updated documentation to enable integration with OpenAI's latest model 9908073
  • Implemented fast CI build support for maintenance branch cherry-picks to improve development workflow efficiency 22efc03
  • Enables proper JSON schema generation for Kotlin data classes and objects in BeanOutputConverter #3900
  • MariaDB Vector Store similarity searches now provide scores for better result ranking 3d72e93

🪲 Bug Fixes

  • Fixed tokenizer to properly use Base64 encoding for binary data token estimation c60d942
  • Corrected function name in VertexAI Gemini streaming test to resolve test failures 407e4cb
  • Resolved issues with default implementation of ToolCallback#call(String,ToolContext) method 76708a1
  • Properly handle null or empty tool call arguments during streaming operations 8d0caf4
  • Cleaned up incorrect BedrockChatOptions configuration that was causing issues 5ecbfab
  • Fixed issue with merging tool calling chat options in AWS Bedrock converse chat model #4314
  • Resolved message reordering issues in Azure OpenAI chat model implementation 618c451
  • Fixed various integration test failures for Anthropic function calling functionality 3f97d9e
  • Corrected stream function call usage test failures in Azure OpenAI integration ec84f2a
  • Fixed chat completion stream error handling in Anthropic API integration tests 38afc12
  • Replaced SimpleDateFormat with thread-safe DateTimeFormatter to prevent potential concurrency issues 370efa7
  • Removed duplicate lines in AzureOpenAiChatOptions configuration class 5477f47
  • Resolved a StackOverflowError that was introduced by the MongoDbAtlasLocalContainerConnectionDetails.getSslBundle() method 03d475e
  • Corrected NPE that occurred when metadata is null in MilvusVectorStore operations 7437192
  • Fixed incorrect handling of merge operations when the 'current' value is null 4daffa3
  • Fixed metadata handling in Azure Vector Store to allow proper mutation of metadata objects 2a7321f
  • Resolved flaky test that was causing intermittent failures in streaming response aggregation f71f9de
  • Corrected handling of empty string values in OpenAI streaming finish_reason field 90a88ec
  • Resolved git state detection problems that were triggering full project builds when they weren't needed 779e2f9
  • Updated logging output to accurately reflect the actual git strategy being used e8c75e4
  • Fixed branch detection to prioritize maintenance branch identification over explicit base_ref 7ad9a16
  • Fixed retry mechanism for ResourceAccessException when encountering network connectivity errors to improve application resilience #4094
  • Enhanced null safety by using Optional to check null values and prevent NPE occurrences across multiple components #4063 and #4064
  • Implemented fail-fast fallback and single-commit git diff strategy to improve error handling and performance 118c0ab
  • Maintains consistent pass check behavior for FactCheckingEvaluator and RelevancyEvaluator while preventing null pointer exceptions #3975
  • Fixes Azure chat completions by adding support for the strict option in JSON schema response format #3931
  • Eliminates unnecessary deserialization step when parsing model responses that are already JSON strings #4003
  • Properly rethrows ToolExecutionException for non-RuntimeException cases to maintain correct error propagation #3915
  • Tool function exceptions are now wrapped in ToolExecutionException and properly rethrown for better error handling and debugging cc11b01
  • Corrected bug in example code that was causing confusion for developers following the documentation #3993
  • Fixed issues preventing proper publication of artifacts to Maven Central repository 808f7da

📓 Documentation

  • Enhanced Mistral AI javadoc and updated documentation links for better developer experience #4327
  • Updated tools.adoc documentation with improved examples and clarifications #4278
  • Enhanced docker services documentation with better setup instructions and examples 0649db5
  • Added more detailed explanations and examples in observability documentation for better understanding of metrics configuration 6f61562
  • Added thorough validation and functionality tests for the Document class to improve code reliability 5c2ab36
  • Synchronized documentation improvements for deploy docs dispatcher naming to the 1.0.x branch f11a516
  • Added new Anthropic model names to documentation to reflect latest available models and improve developer guidance #4077
  • Improved documentation for chat memory functionality with updated examples and usage patterns #3917
  • Corrected and updated various outdated information a...
Read more

Spring AI 1.1.0-M1

09 Sep 00:03
Compare
Choose a tag to compare
Spring AI 1.1.0-M1 Pre-release
Pre-release

Spring AI Next Release Release Notes

🎯 Highlights

This release includes 47 new features, 106 bug fixes, 70 documentation improvements, 120 other improvements.

⏪ Breaking Changes

  • Auto-configuration classes for Model Context Protocol (MCP) have been renamed with 'Mcp' prefix for consistency 21c4283
  • maxTokens and maxCompletionTokens parameters are now mutually exclusive in OpenAI ChatOptions, requiring users to choose one option 13c39f1
  • Changed UserMessage to use metadata instead of properties for better API consistency #3980
  • Extracted VectorStoreRetriever interface from VectorStore which may require code updates for custom implementations #3827 via #1290

⚠️ Upgrading Notes

  • Update imports for MCP auto-configuration classes that have been renamed with 'Mcp' prefix 21c4283
  • When configuring OpenAI ChatOptions, ensure you use either maxTokens or maxCompletionTokens, but not both simultaneously 13c39f1
  • Update code to use metadata instead of properties when working with UserMessage objects #3980
  • Custom VectorStore implementations may need to be updated to implement the new VectorStoreRetriever interface #3827

📢 Noteworthy

  • Removed support for the deprecated Mistral AI Codestral Mamba model as part of code cleanup #4225
  • Significantly improved test coverage for MistralAiBindingsPropertiesProcessor to ensure robust MistralAI integration #4165
  • Improved test coverage for EmbeddingModelObservationContext and SyncMcpToolCallback edge cases to ensure better reliability #4157
  • Significantly improved test coverage for QdrantObjectFactory.toObjectMap, SimpleVectorStore filter conditions, and various other components #4095
  • Removed hardcoded topK value in BedrockConverseProxyChatProperties for better configuration flexibility #3621
  • Refactored MessageAggregator to properly handle and include tool calls in message aggregation df90b9c
  • Cleaned up QdrantVectorStoreIT by removing unnecessary environment variable validation #3615
  • Temporarily reverted a fix for OpenAI function callback integration test 3bce15a
  • Temporarily reverted a parameter order fix in validateToolContextSupport method f0c128c
  • Temporarily reverted changes to resolve OpenAI API key for every request due to compatibility issues 313aae0

⭐ New Features

  • Tool callbacks now expose the original tool name in both synchronous and asynchronous operations, providing better visibility into tool execution 6678035
  • Added support for sending labels with chat requests in Google Generative AI integration 1dd686b
  • Added comprehensive annotation-based configuration support for Model Context Protocol (MCP) clients and servers 534c6af
  • Added support for OpenAI service_tier parameter in OpenAiChatOptions to enable control over service quality levels ad2e1bc
  • Refactored MCP (Model Control Protocol) server auto-configuration to use consolidated modules with protocol-based configuration approach e71da4e
  • Added missing Spring Boot starters for Google GenAI integration, enabling easier autoconfiguration 528155a
  • Improved Unicode property union handling for robust Chinese character processing 35486e9
  • Use latest CI scripts when testing old commits for improved testing reliability a9f93b0
  • Restructured MCP server auto-configurations and added streamable-http support for improved streaming capabilities 0b96f4c
  • Added support for new GPT-5 models with verbosity parameter configuration #4086
  • Added comprehensive debugging capabilities to improve maintenance branch workflow reliability and troubleshooting 3ce6d38
  • Added support for fast CI builds when cherry-picking changes to maintenance branches 29ac7d9
  • Added autoconfiguration for MCP client with support for async HTTP request customization 7ad7150
  • Configured McpSyncServer to use immediate execution when running in a servlet context 568ca96
  • Added support for GPT-5 model enum with updated documentation 1a3ed95
  • Added KotlinModule support and tests for schema generation in BeanOutputConverter to improve Kotlin integration #3900
  • ChatClient now supports adding metadata to both PromptUserSpec and PromptSystemSpec, enabling richer message context and processing capabilities #3989
  • Added Google GenAI embedding module with unified SDK support for enhanced integration capabilities 085446c
  • Added ability to use custom templates with KeywordMetadataEnricher for enhanced metadata enrichment capabilities c122fe1
  • Added new spring-ai-google-genai module using Google's latest GenAI SDK for improved Google AI model integration daf1274
  • Added log probabilities support for Vertex AI Gemini models e557081
  • Added streamable HTTP transport support for Model Context Protocol (MCP) client 656395e
  • Added BedrockChatOptions to Bedrock integration for improved configuration 99e59a2
  • Introduces a standardized interface for audio transcription across different model providers 4cf2377
  • Enhances ZhiPu AI integration with fluent builder pattern for easier configuration d865c9e
  • ZhiPuAI embedding model now supports configurable custom dimensions #3668 via #1857
  • Added configuration option for meta field prefix in Weaviate vector store properties #3585
  • Improved function capabilities through @tool annotation improvements for better function calling integration 22fc730
  • Enhanced MistralChatOptions with updated configuration capabilities a2a92bb
  • Added selective exception rethrowing capability to DefaultToolExecutionExceptionProcessor for better error handling control beb1d05
  • ChatClient#mutate now creates copies of advisors and advisorParams instead of referencing the originals f391ff2
  • Made the content field configurable in Weaviate vector store properties to provide more flexibility in vector store configurat...
Read more

Spring AI 1.0.1

08 Aug 19:32
Compare
Choose a tag to compare

Spring AI 1.0.1 Release Notes

🎯 Highlights

This release includes 24 new features, 50 bug fixes, 45 documentation improvements, 32 other improvements.

📢 Noteworthy

  • Official release of Spring AI version 1.0.1 with consolidated bug fixes and documentation improvements 53ec007
  • Multiple commits were reverted related to tool context validation fixes and OpenAI chat client method invoking function callback integration tests 80ffb4c
  • Temporarily reverted the change that resolved OpenAI ApiKey for every request, indicating potential issues that required investigation 8a2706d

⭐ New Features

  • Enhanced KeywordMetadataEnricher with custom template functionality to provide more flexible metadata enrichment capabilities 2082a59
  • Added validation to check documents for text/media content when adding to vector stores #3687
  • Improved @tool annotation functionality to enhance function calling capabilities 62160d3
  • Added support for streaming tool calls without parameters in the Anthropic chat model 2099278
  • Updated and improved configuration options for Mistral chat model integration c18a241
  • Added capability to selectively rethrow exceptions in the default tool execution exception processor d1baefb
  • Refactored MessageAggregator to include support for tool calls functionality 1805ca0
  • The ChatClient#mutate method now creates copies of advisors and advisorParams instead of sharing references, improving isolation between chat client instances ccfaaf1
  • Added equals, hashCode, deep copy functionality and comprehensive tests to MiniMaxChatOptions for better object handling and comparison dc9ea17
  • Added support for new Mistral AI chat models to expand the available model providers #3523
  • Enhanced OllamaChatModel with retry template integration for improved reliability f89530c
  • Added streaming thinking events support for Anthropic model provider to enhance real-time interaction capabilities 379901b
  • Enhanced OpenAI integration with updated supported voice enumerations for text-to-speech and chat completion audio features #3411
  • Added support for dynamic API key configuration for Anthropic model provider on a per-request basis ae9284c
  • Neo4j vector store now automatically determines default embedding dimensions based on the configured model 96c45c7
  • Added Spring Framework 7.x compatibility to RetryUtils#ResponseErrorHandler to support upcoming Spring Framework versions 5ecfcce
  • Enhanced OpenAI client to resolve API key for every request, improving key rotation and configuration flexibility dd6c0a9
  • Introduced support for Anthropic's latest Claude models including claude-opus-4 and claude-sonnet-4 #3351
  • Extended OpenAI integration to support PDF files as media input a330458
  • Provided MySQL database schema for SPRING_AI_CHAT_MEMORY table to support chat memory functionality 148bf33
  • Improved handling and testing of complex metadata values in Chroma vector store integration aba837a
  • Added metadata support for vector store types to enhance data management capabilities #3325
  • Added support for configurable exception handling when executing tools, providing better error management and recovery options 3068c04
  • Added comprehensive integration tests for Chat Memory functionality with SQL Server support a6858cf

🪲 Bug Fixes

  • Resolved issue where method tool calls would throw errors when methods had the same name #2774
  • Fixed typo in frequencyPenalty property name for Google model builders 2e579b1
  • Corrected spelling of PromptTemplate in structured output API documentation image #3304
  • Resolved null pointer exception in Anthropic API streaming functionality #3755
  • Fixed issue where SystemPromptTemplate.builder() incorrectly returned PromptTemplate builder 2f91adb
  • Corrected parameter sequence in JSON schema generation functionality f20eeea
  • Resolved annotation packaging issues #3716
  • Resolved issue where audio filenames were lost when requesting OpenAI /transcriptions and /translations interfaces c0c7f3a
  • Enhanced schema initialization logic and updated deprecated code for Milvus vector store #3705
  • Added null checks, optimized string joining, and improved JavaDocs #3663
  • Corrected assertion message in SimpleApiKey implementation for better debugging #3656
  • Prevented streaming tool calling responses when internal execution is enabled for Anthropic models 5d8a930
  • Cleaned up unused configuration options from ZhiPu AI model implementation #3669
  • Added support for custom dimensions in ZhiPu AI embedding models #3668
  • Removed incorrect @nullable annotation from VectorStore similaritySearch methods #3613
  • Added validation for invalid page numbers in outline items for getTextBetweenParagraphs method 50e8615
  • Corrected issues with Ollama autoconfiguration that were preventing proper setup #3645
  • Fixed naming inconsistencies throughout the Mistral integration package #3652
  • Resolved issue where streaming tool calls without input arguments would fail in Bedrock integration d1dac6c
  • Fixed hardcoded configuration parameter to allow proper customization of topK values in Bedrock Converse Proxy #3621
  • Prevents incorrect ToolCall merging in DeepSeek model provider when tool calls have empty id and name strings ff5855d
  • Resolves test failure in ChromaVectorStoreAutoConfigurationIT due to updated exception message handling 7200580
  • Resolved exception occurring in OpenAiAudioTranscriptionResponseMetadata.toString method #3575
  • Corrected infinite recursion issue in getMimeType(Path) method b6b069c
  • Improved root exception handling in McpToolCallback to prevent unhandled errors fb1746b
  • Corrected logging behavior when creating ChromaDB collections [e0d3703](https://github.com/spring-projects/spring-...
Read more