69 lines
1.8 KiB
Java
69 lines
1.8 KiB
Java
package com.rj.config;
|
|
|
|
import com.rj.aiservice.CstAIService;
|
|
import com.rj.repository.RedisChatMemoryStore;
|
|
import dev.langchain4j.memory.ChatMemory;
|
|
import dev.langchain4j.memory.chat.ChatMemoryProvider;
|
|
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
|
|
import dev.langchain4j.model.openai.OpenAiChatModel;
|
|
import dev.langchain4j.service.AiServices;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
/**
|
|
* Author: 李中华 wx: spllzh email(qq): 28668817@qq.com
|
|
* Date: 2025/8/4 10:24
|
|
**/
|
|
@Configuration
|
|
public class CommonConfig {
|
|
|
|
@Autowired
|
|
private OpenAiChatModel openAiChatModel;
|
|
|
|
// @Bean
|
|
public CstAIService cstAIService() {
|
|
|
|
CstAIService cstAIService = AiServices.builder(CstAIService.class)
|
|
.chatModel(openAiChatModel)
|
|
.build();
|
|
|
|
return cstAIService;
|
|
}
|
|
@Bean
|
|
public ChatMemory chatMemory() {
|
|
|
|
MessageWindowChatMemory build = MessageWindowChatMemory.builder()
|
|
.maxMessages(10)
|
|
.build();
|
|
return build;
|
|
}
|
|
|
|
|
|
@Autowired
|
|
RedisChatMemoryStore redisChatMemoryStore;
|
|
|
|
|
|
|
|
@Bean
|
|
public ChatMemoryProvider chatMemoryProvider() {
|
|
|
|
ChatMemoryProvider chatMemoryProvider = new ChatMemoryProvider() {
|
|
@Override
|
|
public ChatMemory get(Object memoryId) {
|
|
|
|
MessageWindowChatMemory chatMemory = MessageWindowChatMemory.builder()
|
|
.id(memoryId)
|
|
.maxMessages(10)
|
|
.chatMemoryStore(redisChatMemoryStore)
|
|
.build();
|
|
return chatMemory;
|
|
}
|
|
};
|
|
|
|
return chatMemoryProvider;
|
|
}
|
|
|
|
|
|
}
|