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 constructor = (Constructor)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; // } }