You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.5 KiB
Java
33 lines
1.5 KiB
Java
1 year ago
|
package com.supervision.handler.gpt;
|
||
1 year ago
|
|
||
|
import cn.hutool.core.collection.CollUtil;
|
||
|
import cn.hutool.core.util.StrUtil;
|
||
|
import com.supervision.ai.AiUtil;
|
||
|
import com.supervision.ai.dto.MessageDTO;
|
||
|
import lombok.extern.slf4j.Slf4j;
|
||
|
import org.springframework.stereotype.Component;
|
||
|
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.Collection;
|
||
|
import java.util.List;
|
||
|
|
||
|
/**
|
||
|
* 条件判断handler
|
||
|
*/
|
||
|
@Slf4j
|
||
|
@Component
|
||
|
public class ConditionJudgeHandler {
|
||
|
|
||
|
public String conditionJudge(String question, Collection<String> candidateAnswerList, String userAnswer) {
|
||
|
List<MessageDTO> messageList = new ArrayList<>();
|
||
|
messageList.add(new MessageDTO("system", "你是一个条件判断模型且精通政务事项,我现在给你一个问题,给你候选答案,请你根据用户的实际回答,从候选答案中给我选择一个对应的候选答案.除了候选答案,什么其他的都不要说"));
|
||
|
messageList.add(new MessageDTO("assistant", "好的"));
|
||
|
messageList.add(new MessageDTO("user", StrUtil.format("问题:[{}]", question)));
|
||
|
messageList.add(new MessageDTO("assistant", "继续"));
|
||
|
messageList.add(new MessageDTO("user", StrUtil.format("候选答案:[{};未找到匹配答案]", StrUtil.join(";", candidateAnswerList))));
|
||
|
messageList.add(new MessageDTO("assistant", "继续"));
|
||
|
messageList.add(new MessageDTO("user", StrUtil.format("用户答案:[{}],现在请给我匹配的候选答案,其他什么都不要说.", userAnswer)));
|
||
|
return AiUtil.chatByMessage(messageList);
|
||
|
}
|
||
|
}
|