From fc8db0563da8389b68102bb06096a2455f624e3f Mon Sep 17 00:00:00 2001 From: liu Date: Wed, 10 Apr 2024 13:23:36 +0800 Subject: [PATCH] =?UTF-8?q?KBQA=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/gpt/AnswerQuestionHandler.java | 6 +++++- .../handler/gpt/IdentifyIntentHandler.java | 7 ++++--- .../main/resources/nebulaMapper/CommonQueryDao.xml | 2 +- nGQL/update_data.ngql | 14 ++++++++++++++ 4 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 nGQL/update_data.ngql diff --git a/kbqa-graph/src/main/java/com/supervision/handler/gpt/AnswerQuestionHandler.java b/kbqa-graph/src/main/java/com/supervision/handler/gpt/AnswerQuestionHandler.java index c3c0436..36664c0 100644 --- a/kbqa-graph/src/main/java/com/supervision/handler/gpt/AnswerQuestionHandler.java +++ b/kbqa-graph/src/main/java/com/supervision/handler/gpt/AnswerQuestionHandler.java @@ -17,7 +17,11 @@ public class AnswerQuestionHandler { public String answerQuestion(String question, List detailList) { List messageList = new ArrayList<>(); - messageList.add(new MessageDTO("system", "你是一个政务事项领域的大模型,我现在给一些政务文件的内容,再给你一个问题,请根据文件内容,将这个问题进行解答.除了解答的内容,什么其他的都不要说.")); + messageList.add(new MessageDTO("system", "现在你是一个政务事项领域的问答大模型.\n" + + "我现在给一些政务文件的内容,再给你一个问题,请根据给你的文件内容,针对性的对问题进行解答.\n" + + "请严格按照文件内容进行回答,不要有文件内容之外的理解.\n" + + "除了解答的内容,什么其他的都不要说.\n" + + "如果你从文件内容中,没有提取到回答,你就回复:我暂时还不会这个问题哦!")); messageList.add(new MessageDTO("assistant", "好的")); messageList.add(new MessageDTO("user", StrUtil.format("政务文件内容:[{}]", CollUtil.join(detailList, ";")))); messageList.add(new MessageDTO("assistant", "继续")); diff --git a/kbqa-graph/src/main/java/com/supervision/handler/gpt/IdentifyIntentHandler.java b/kbqa-graph/src/main/java/com/supervision/handler/gpt/IdentifyIntentHandler.java index 05c1d63..b1ef50a 100644 --- a/kbqa-graph/src/main/java/com/supervision/handler/gpt/IdentifyIntentHandler.java +++ b/kbqa-graph/src/main/java/com/supervision/handler/gpt/IdentifyIntentHandler.java @@ -23,7 +23,7 @@ public class IdentifyIntentHandler { List messageList = new ArrayList<>(); messageList.add(new MessageDTO("system", "假设你是一个意图识别模型,且精通社会保险业务中的事务分类," + "现在我会给你一个意图列表以及意图列表可能的一些典型问法,你首先要根据意图列表和典型问法进行学习(典型问法只是参考,并不一定局限于典型问法范围)," + - "然后我再给你一个句子,请帮我的要求识别出这个句子中的意图.如果该句子中不含有意图列表中任意意图,你可以输出:未匹配。不要回答其他的内容!!")); + "然后我再给你一个句子,请帮我的要求识别出这个句子中的意图.除了匹配的意图之外,不要回答其他的内容!如果该句子中不含有意图列表中任意意图,你可以输出:未识别")); messageList.add(new MessageDTO("assistant", "好的")); // 构建学习案例 StringBuilder stringBuilder = new StringBuilder(); @@ -33,8 +33,9 @@ public class IdentifyIntentHandler { messageList.add(new MessageDTO("user", stringBuilder.toString())); messageList.add(new MessageDTO("assistant", "已学习")); // 构建问题 - messageList.add(new MessageDTO("user", "问题是:" + question + ",现在请用列表的形式展示,如果该句子中不含有指定的意图,你可以输出:未识别。" + - "如果有,你就选一个列表中的词进行回答!输出格式形为:意图名称。除了这个列表以外请不要输出别的多余的话。")); + messageList.add(new MessageDTO("user", "问题是:" + question)); + messageList.add(new MessageDTO("assistant", "好的")); + messageList.add(new MessageDTO("user", "现在你可以输出识别到的意图了")); // 进行提问 String intent = AiUtil.chatByMessage(messageList); // 尝试转为JSON的形式 diff --git a/kbqa-graph/src/main/resources/nebulaMapper/CommonQueryDao.xml b/kbqa-graph/src/main/resources/nebulaMapper/CommonQueryDao.xml index 1589054..2939356 100644 --- a/kbqa-graph/src/main/resources/nebulaMapper/CommonQueryDao.xml +++ b/kbqa-graph/src/main/resources/nebulaMapper/CommonQueryDao.xml @@ -34,6 +34,6 @@ " \ No newline at end of file diff --git a/nGQL/update_data.ngql b/nGQL/update_data.ngql new file mode 100644 index 0000000..d3763ba --- /dev/null +++ b/nGQL/update_data.ngql @@ -0,0 +1,14 @@ +# 更新深圳城乡居民退休条件 +UPDATE VERTEX ON process_condition "1-1-1-1" SET detail = "城乡居民养老保险待遇领取条件参保人达到下列条件之一的,可以按月领取养老金。 + (一)当地实施原广东省新型农村社会养老保险 (以下简称新农保) 和城镇居民社会养老保险 (以下简称城居保) 制度时,已年满60周岁,未享受职工基本养老保险待遇以及国家规定的其他养老待遇的,不用缴费,可以按月领取基础养老金。 + (二) 参加了原新农保或城居保的参保人,按照其原参加制度的规定年限缴费,年满60周岁后,可以按月领取养老金。 + (三)参保人缴费案计达到15年,年满60周岁的,可以按月领取养老金。 + (四)参保人年满60周岁但案计缴费年限没有达到规定缴费年限的,可继实逐年缴费,并享受相应的政府缴费补贴。逐年缴费至65周岁仍然没有达到规定缴费年限的,可以一次性补缴养老保险费至规定的缴费年限后,按月领取养老金,但一次性补缴不享受政府的缴费补贴。 + (五)参保人年满60周岁、累计缴费年限没有达到规定缴费年限的,如不继续逐年缴费或补缴至规定的缴费年限的,不发基础养老金,可以申请按月领取个人账户养老金,发完为止。"; + +UPDATE VERTEX ON process_condition "1-1-2-1" SET detail = "城乡居民养老保险待遇领取条件参保人达到下列条件之一的,可以按月领取养老金 + (一)当地实施原广东省新型农村社会养老保险 (以下简称新农保)和城镇居民社会养老保险 (以下简称城居保) 制度时,已年满60周岁,未享受职工基本养老保险待遇以及国家规定的其他养老待遇的,不用缴费,可以按月领取基础养老金, + (二)参加了原新农保或城居保的参保人,按照其原参加制度的规定年限缴费,年满60周岁后,可以按月领取养老金 + (三)参保人缴费累计达到15年,年满60周岁的,可以按月领取养老金。 + (四)参保人年满60周岁但累计缴费年限没有达到规定缴费年限的,可继续逐年缴费,并享受相应的政府缴费补贴。逐年缴费至65周岁仍然没有达到规定缴费年限的,可以一次性补缴养老保险费至规定的缴费年限后,按月领取养老金,但一次性补缴不享受政府的缴费补贴。 + (五)参保人年满60周岁、累计缴费年限没有达到规定缴费年限的,如不继续逐年缴费或补缴至规定的缴费年限的,不发基础养老金,可以申请按月领取个人账户养老金,发完为止."; \ No newline at end of file