package com.ard.agent.config; import org.springframework.ai.chat.client.ChatClient; import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor; import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor; import org.springframework.ai.chat.memory.ChatMemory; import org.springframework.ai.chat.model.ChatModel; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; /** * 配置类:基于自动注入的 ChatModel 构建 ChatClient */ @Configuration public class SaaLLMConfig { /** * 创建一个默认 ChatClient(基于 Spring AI Alibaba DashScope) */ @Bean("dashScopeChatClient") public ChatClient dashScopeChatClient(@Qualifier("dashScopeChatModel") ChatModel dashScopeChatModel, ChatMemory chatMemory) { return ChatClient.builder(dashScopeChatModel) .defaultAdvisors( MessageChatMemoryAdvisor.builder(chatMemory).build(), SimpleLoggerAdvisor.builder().build()) .build(); } /** * 本地 Ollama ChatClient,保留为离线或本地模型兜底使用。 */ @Primary @Bean("ollamaChatClient") public ChatClient ollamaChatClient(@Qualifier("ollamaChatModel") ChatModel ollamaChatModel, ChatMemory chatMemory) { return ChatClient .builder(ollamaChatModel) .defaultAdvisors( MessageChatMemoryAdvisor.builder(chatMemory).build(), SimpleLoggerAdvisor.builder().build()) .build(); } }