package com.ard.agent.config;
|
|
import org.springframework.ai.chat.memory.ChatMemory;
|
import org.springframework.ai.chat.memory.MessageWindowChatMemory;
|
import org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepository;
|
import org.springframework.ai.chat.memory.repository.jdbc.MysqlChatMemoryRepositoryDialect;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
@Configuration
|
public class ChatMemoryConfig {
|
|
@Bean
|
public JdbcChatMemoryRepository jdbcChatMemoryRepository(JdbcTemplate jdbcTemplate) {
|
return JdbcChatMemoryRepository.builder()
|
.jdbcTemplate(jdbcTemplate)
|
.dialect(new MysqlChatMemoryRepositoryDialect()) // 根据数据库选择方言
|
.build();
|
}
|
|
@Bean
|
public ChatMemory chatMemory(JdbcChatMemoryRepository repository) {
|
return MessageWindowChatMemory.builder()
|
.chatMemoryRepository(repository)
|
.maxMessages(20) // 设置上下文窗口大小(传递给LLM的最大消息数)
|
.build();
|
}
|
}
|