Class SpringAIAutoConfiguration
java.lang.Object
com.google.adk.models.springai.autoconfigure.SpringAIAutoConfiguration
@AutoConfiguration
@AutoConfigureOrder(2147483647)
@ConditionalOnClass({SpringAI.class,org.springframework.ai.chat.model.ChatModel.class})
@ConditionalOnProperty(prefix="adk.spring-ai.auto-configuration",
name="enabled",
havingValue="true",
matchIfMissing=true)
@EnableConfigurationProperties(SpringAIProperties.class)
public class SpringAIAutoConfiguration
extends Object
Auto-configuration for Spring AI integration with ADK.
This auto-configuration automatically creates SpringAI beans when a Spring AI ChatModel bean
is available in the application context as a single autowire candidate (or is marked
@Primary). It supports both regular ChatModel and StreamingChatModel instances. When
several model beans are present without a primary, the auto-configuration backs off and the
application should define its own beans.
The auto-configuration can be disabled by setting:
adk.spring-ai.auto-configuration.enabled=false
Example usage in application.properties:
# OpenAI configuration
spring.ai.openai.api-key=${OPENAI_API_KEY}
spring.ai.openai.chat.options.model=gpt-4o-mini
spring.ai.openai.chat.options.temperature=0.7
# ADK Spring AI configuration
adk.spring-ai.default-model=gpt-4o-mini
adk.spring-ai.validation.enabled=true
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionspringAIEmbedding(org.springframework.ai.embedding.EmbeddingModel embeddingModel, SpringAIProperties properties) Creates a SpringAIEmbedding bean when a single-candidate EmbeddingModel is available.springAIWithBothModels(org.springframework.ai.chat.model.ChatModel chatModel, org.springframework.ai.chat.model.StreamingChatModel streamingChatModel, SpringAIProperties properties) Creates a SpringAI bean when a single-candidate ChatModel is available.springAIWithChatModel(org.springframework.ai.chat.model.ChatModel chatModel, SpringAIProperties properties) Creates a SpringAI bean when only a single-candidate ChatModel is available.springAIWithStreamingModel(org.springframework.ai.chat.model.StreamingChatModel streamingChatModel, SpringAIProperties properties) Creates a SpringAI bean when only a single-candidate StreamingChatModel is available.
-
Constructor Details
-
SpringAIAutoConfiguration
public SpringAIAutoConfiguration()
-
-
Method Details
-
springAIWithBothModels
@Bean @Primary @ConditionalOnMissingBean(SpringAI.class) @ConditionalOnSingleCandidate(org.springframework.ai.chat.model.ChatModel.class) public SpringAI springAIWithBothModels(org.springframework.ai.chat.model.ChatModel chatModel, org.springframework.ai.chat.model.StreamingChatModel streamingChatModel, SpringAIProperties properties) Creates a SpringAI bean when a single-candidate ChatModel is available. Every ChatModel is also a StreamingChatModel, so one bean serves both paths.- Parameters:
chatModel- the Spring AI ChatModelstreamingChatModel- the Spring AI StreamingChatModelproperties- the ADK Spring AI properties- Returns:
- configured SpringAI instance
-
springAIWithChatModel
@Bean @ConditionalOnMissingBean(SpringAI.class) @ConditionalOnSingleCandidate(org.springframework.ai.chat.model.ChatModel.class) public SpringAI springAIWithChatModel(org.springframework.ai.chat.model.ChatModel chatModel, SpringAIProperties properties) Creates a SpringAI bean when only a single-candidate ChatModel is available.- Parameters:
chatModel- the Spring AI ChatModelproperties- the ADK Spring AI properties- Returns:
- configured SpringAI instance
-
springAIWithStreamingModel
@Bean @ConditionalOnMissingBean({SpringAI.class,org.springframework.ai.chat.model.ChatModel.class}) @ConditionalOnSingleCandidate(org.springframework.ai.chat.model.StreamingChatModel.class) public SpringAI springAIWithStreamingModel(org.springframework.ai.chat.model.StreamingChatModel streamingChatModel, SpringAIProperties properties) Creates a SpringAI bean when only a single-candidate StreamingChatModel is available.- Parameters:
streamingChatModel- the Spring AI StreamingChatModelproperties- the ADK Spring AI properties- Returns:
- configured SpringAI instance
-
springAIEmbedding
@Bean @ConditionalOnMissingBean(SpringAIEmbedding.class) @ConditionalOnSingleCandidate(org.springframework.ai.embedding.EmbeddingModel.class) public SpringAIEmbedding springAIEmbedding(org.springframework.ai.embedding.EmbeddingModel embeddingModel, SpringAIProperties properties) Creates a SpringAIEmbedding bean when a single-candidate EmbeddingModel is available.- Parameters:
embeddingModel- the Spring AI EmbeddingModelproperties- the ADK Spring AI properties- Returns:
- configured SpringAIEmbedding instance
-