shikeyin
2024-01-11 65da8373531677b1c37a98f53eaa30c892f35e5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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;
//    }
}