Package com.alibaba.cloud.ai.util
Class AiConfiguration
java.lang.Object
com.alibaba.cloud.ai.util.AiConfiguration
AI 模型配置类
本配置类提供了 ChatModel 和 EmbeddingModel 的配置。
EmbeddingModel 选择策略:
- 优先使用 DashScope EmbeddingModel(当配置了 spring.ai.dashscope.api-key)
- 备选使用 OpenAI EmbeddingModel(当未配置 DashScope API Key 时)
为了避免与 Spring Boot 自动配置冲突,建议在 application.yml 中设置:
spring:
ai:
openai:
embedding:
enabled: false # 禁用 OpenAI EmbeddingModel 自动配置
- Author:
- Spring AI Alibaba Team
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.ai.chat.client.ChatClientchatClient(org.springframework.ai.chat.model.ChatModel chatModel) org.springframework.ai.chat.model.ChatModelorg.springframework.ai.embedding.EmbeddingModel自定义 OpenAI EmbeddingModel 配置org.springframework.ai.embedding.EmbeddingModelDashScope EmbeddingModel 配置
-
Constructor Details
-
AiConfiguration
public AiConfiguration()
-
-
Method Details
-
chatModel
@Bean public org.springframework.ai.chat.model.ChatModel chatModel() -
chatClient
@Bean public org.springframework.ai.chat.client.ChatClient chatClient(@Qualifier("chatModel") org.springframework.ai.chat.model.ChatModel chatModel) -
dashScopeEmbeddingModel
@Bean("embeddingModel") @Primary @ConditionalOnProperty(name="spring.ai.dashscope.api-key") @ConditionalOnMissingBean(org.springframework.ai.embedding.EmbeddingModel.class) public org.springframework.ai.embedding.EmbeddingModel dashScopeEmbeddingModel()DashScope EmbeddingModel 配置当配置了 spring.ai.dashscope.api-key 时启用,优先级最高
-
customOpenAiEmbeddingModel
@Bean("embeddingModel") @Primary @ConditionalOnProperty(name="spring.ai.dashscope.api-key", havingValue="", matchIfMissing=true) @ConditionalOnMissingBean(org.springframework.ai.embedding.EmbeddingModel.class) public org.springframework.ai.embedding.EmbeddingModel customOpenAiEmbeddingModel()自定义 OpenAI EmbeddingModel 配置当没有配置 DashScope API Key 时使用
使用 @ConditionalOnMissingBean 避免与自动配置冲突
-