|
|
|
@ -24,6 +24,7 @@ public class ItemExtractHandler {
|
|
|
|
|
* @param question 问题
|
|
|
|
|
* @return 提取结果
|
|
|
|
|
*/
|
|
|
|
|
@Deprecated
|
|
|
|
|
public String itemExtract(String question) {
|
|
|
|
|
List<MessageDTO> messageList = new ArrayList<>();
|
|
|
|
|
messageList.add(new MessageDTO("system", "假设你是一个命名实体识别模型且精通社保实体识别." +
|
|
|
|
@ -43,6 +44,7 @@ public class ItemExtractHandler {
|
|
|
|
|
* @param question 问题
|
|
|
|
|
* @return 提取结果
|
|
|
|
|
*/
|
|
|
|
|
@Deprecated
|
|
|
|
|
public List<String> itemExtractByPossibleItem(String question, List<String> possible) {
|
|
|
|
|
String template = "请根据以下事项列表,从句子中识别并标注出对应的社保业务事项名称。若句子中不能直接对应到任何事项,就找可能性最高的事项。请确保只识别并标注一种可能性最高的社保业务事项。" +
|
|
|
|
|
"事项名称列表:\n" +
|
|
|
|
@ -60,6 +62,46 @@ public class ItemExtractHandler {
|
|
|
|
|
return Collections.singletonList(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 提供示例的实体提取
|
|
|
|
|
*
|
|
|
|
|
* @param question 问题
|
|
|
|
|
* @param possible 可能的实体
|
|
|
|
|
*/
|
|
|
|
|
public List<String> itemExtractByPossibleItemWithExample(String question, List<String> possible) {
|
|
|
|
|
String template = "请根据以下事项列表,从句子中识别并标注出对应的社保业务事项名称。若句子中不能直接对应到任何事项,就找可能性最高的事项。" +
|
|
|
|
|
"请确保只识别并标注一种可能性最高的社保业务事项。\n" +
|
|
|
|
|
"事项列表:{}" +
|
|
|
|
|
"我现在有一些示例,可供你学习。\n" +
|
|
|
|
|
"输入:企业职工多少岁可以退休?输出:企业职工退休\n" +
|
|
|
|
|
"输入:深圳的职工退休手续怎么办?输出:深圳企业职工退休\n" +
|
|
|
|
|
"输入:如果我是广州人,我在深圳应该怎么办退休手续?输出:广东省其他地区企业职工退休\n" +
|
|
|
|
|
"输入:退休的要求是什么?输出:退休\n" +
|
|
|
|
|
"输入:本地的农民,如果退休有什么限制?输出:深圳城乡居民退休\n" +
|
|
|
|
|
"输入:我是香港企业的法人,如果我想在深圳退休可以吗?输出:港澳台和外籍人员企业职工退休\n" +
|
|
|
|
|
"输入:企业的女性干部退休有什么要求吗?输出:企业职工退休\n" +
|
|
|
|
|
"输入:普通居民可以退休吗?输出:城乡居保退休\n" +
|
|
|
|
|
"输入:单位延缴或个人延缴的情况下,办理退休有哪些注意事项?输出:企业职工退休\n" +
|
|
|
|
|
"输入:我是南京市户口,可以在深圳办理退休吗?输出:省外户口企业职工退休\n" +
|
|
|
|
|
"输入:我是澳门人,在深圳好多年了,可以根据城乡居民来办理退休吗?输出:港澳台和外籍人员城乡居民退休\n" +
|
|
|
|
|
"输入:今天中午吃什么?输出:无关问题\n" +
|
|
|
|
|
"现在我给你一句话,请给我输出:\n" +
|
|
|
|
|
"输入:{}\n" +
|
|
|
|
|
"请直接回答输出:";
|
|
|
|
|
List<MessageDTO> messageList = new ArrayList<>();
|
|
|
|
|
messageList.add(new MessageDTO("user", StrUtil.format(template, CollUtil.join(possible, ";"), question)));
|
|
|
|
|
|
|
|
|
|
log.info("itemExtractByPossibleItemWithExample查询语句为:{}", JSONUtil.toJsonStr(messageList));
|
|
|
|
|
String item = AiUtil.chatByMessage(messageList);
|
|
|
|
|
log.info("itemExtractByPossibleItemWithExample结果为:{}", item);
|
|
|
|
|
if (StrUtil.equals("无关问题", item)) {
|
|
|
|
|
throw new ItemExtractException("无关事项");
|
|
|
|
|
}
|
|
|
|
|
return Collections.singletonList(item);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Deprecated
|
|
|
|
|
public String itemExtractBusiness(String question) {
|
|
|
|
|
List<MessageDTO> messageList = new ArrayList<>();
|
|
|
|
|
messageList.add(new MessageDTO("user", "我现在是要进行实体抽取任务,并且精通社保业务,现在需要抽取[业务]这个实体类型的内容。\n" +
|
|
|
|
|