package com.iplatform.chat.config;
|
|
import com.iplatform.chat.Robot;
|
import com.iplatform.core.PlatformConfiguration;
|
import com.walker.infrastructure.utils.ClassUtils;
|
import com.walker.infrastructure.utils.StringUtils;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
import java.lang.reflect.Constructor;
|
|
@Configuration
|
public class ChatEngineConfig extends PlatformConfiguration {
|
|
@Bean
|
public ChatProperties chatProperties(){
|
return new ChatProperties();
|
}
|
|
@Bean
|
public Robot robot(ChatProperties chatProperties){
|
String robotClazz = chatProperties.getRobotClass();
|
if(StringUtils.isEmpty(robotClazz)){
|
throw new IllegalArgumentException("聊天机器人实现类,没有配置:robotClazz");
|
}
|
Robot robot = null;
|
try {
|
logger.info("创建'聊天机器人对象' = " + robotClazz);
|
Class<?> captchaProviderClass = ClassUtils.forName(robotClazz, ChatEngineConfig.class.getClassLoader());
|
Constructor<Robot> constructor = (Constructor<Robot>)captchaProviderClass.getConstructor();
|
robot = constructor.newInstance();
|
} catch (Exception e) {
|
throw new RuntimeException("创建'聊天机器人对象'实例异常:" + e.getMessage(), e);
|
}
|
return robot;
|
}
|
|
// /**
|
// * 创建聊天引擎对象。
|
// * @param chatService
|
// * @param chatDialogService
|
// * @param chatSessionCache
|
// * @return
|
// * @date 2023-07-12
|
// */
|
// @Bean
|
// public ChatEngine chatEngine(ChatService chatService
|
// , ChatDialogServiceImpl chatDialogService, ChatSessionCache chatSessionCache, Robot robot){
|
// SimpleChatEngine chatEngine = new SimpleChatEngine();
|
// chatEngine.setChatService(chatService);
|
// chatEngine.setChatDialogService(chatDialogService);
|
// chatEngine.setChatSessionCache(chatSessionCache);
|
// chatEngine.setRobot(robot);
|
// chatEngine.setAutoRobotReply(true);
|
// return chatEngine;
|
// }
|
}
|