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();
|
}
|
}
|