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.
34 lines
1.3 KiB
Java
34 lines
1.3 KiB
Java
1 year ago
|
package com.supervision.handler.gpt;
|
||
1 year ago
|
|
||
|
import cn.hutool.core.util.StrUtil;
|
||
|
import com.supervision.ai.AiUtil;
|
||
|
import com.supervision.ai.dto.MessageDTO;
|
||
|
import com.supervision.exception.ItemExtractException;
|
||
|
import lombok.extern.slf4j.Slf4j;
|
||
|
import org.springframework.stereotype.Component;
|
||
|
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.List;
|
||
|
|
||
|
/**
|
||
|
* 意图提取Handler
|
||
|
*/
|
||
|
@Slf4j
|
||
|
@Component
|
||
|
public class ItemExtractHandler {
|
||
|
|
||
|
public String itemExtract(String question) {
|
||
|
List<MessageDTO> messageList = new ArrayList<>();
|
||
|
messageList.add(new MessageDTO("system", "假设你是一个命名实体识别模型且精通社保实体识别." +
|
||
|
"现在我会给你一个句子,请根据我的要求识别出句子中的实体数据在社保业务中属于哪一类业务事项,并给我事项名称,如果未找到事项,就回复:未找到;其他什么都不要说!"));
|
||
|
messageList.add(new MessageDTO("assistant", "好的"));
|
||
|
messageList.add(new MessageDTO("user", "句子是:" + question + ";请识别这句话中的社保业务事项"));
|
||
|
String item = AiUtil.chatByMessage(messageList);
|
||
|
if (StrUtil.equals("未找到", item)) {
|
||
|
throw new ItemExtractException("未从问题中找到事项");
|
||
|
}
|
||
|
return item;
|
||
|
|
||
|
}
|
||
|
}
|