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 6101020..077a04e 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 @@ -49,8 +49,8 @@ public class AnswerQuestionHandler { public String answerSingleQuestion(String question, Map> detailMap){ List messageList = new ArrayList<>(); messageList.add(new MessageDTO("system", "现在你是一个政务事项领域的问答大模型.\n" + - "现在有一个问题,根据这个问题我查到了政策内容\n" + - "请你严格根据政策内容组织成简短的内容来回答这个问题,请不要有文件内容之外的内容")); + "现在有一个问题,根据这个问题我查到了一些政策内容\n" + + "请你对该政策内容进行解读后,将这个问题进行回答.但是注意不要有文件内容之外的政策内容解读")); messageList.add(new MessageDTO("assistant", "好的")); messageList.add(new MessageDTO("user", StrUtil.format("政务文件内容:[{}]", JSONUtil.toJsonStr(detailMap)))); messageList.add(new MessageDTO("assistant", "继续")); diff --git a/kbqa-graph/src/main/java/com/supervision/handler/gpt/ConditionJudgeHandler.java b/kbqa-graph/src/main/java/com/supervision/handler/gpt/ConditionJudgeHandler.java index ca45b2f..14bac7f 100644 --- a/kbqa-graph/src/main/java/com/supervision/handler/gpt/ConditionJudgeHandler.java +++ b/kbqa-graph/src/main/java/com/supervision/handler/gpt/ConditionJudgeHandler.java @@ -44,6 +44,7 @@ public class ConditionJudgeHandler { /** * 最新的判断方法,现在建议用搞这个 + * * @param question * @param candidateAnswerList * @param userAnswer @@ -53,13 +54,14 @@ public class ConditionJudgeHandler { List messageList = new ArrayList<>(); String template = "当我问用户:{},用户给我的回答是:[{}],\n" + "基于用户的回答,请依次判断以下列表:[{}]中的哪些项满足用户的回答?\n" + - "请从给定列表中找出所有满足的项.以jsonArray格式输出.如果列表中项全部不满足,则返回:未找到"; + "请从给定列表中找出所有满足的项.以jsonArray格式输出且只返回jsonArray.jsonArray的格式示例为:```json[\"满足的条件1\",\"满足的条件2\"]```.如果列表中项全部不满足,则返回:未找到"; String judgeAsk = StrUtil.format(template, question, userAnswer, CollUtil.join(candidateAnswerList, ";")); log.info("conditionJudge问题是:{}", judgeAsk); messageList.add(new MessageDTO("user", judgeAsk)); String judgeResult = AiUtil.chatByMessage(messageList); log.info("conditionJudge判断结果是:{}", judgeResult); - if (judgeResult.startsWith("```json")) { + if (judgeResult.contains("```json")) { + judgeResult = StrUtil.subBetween(judgeResult, "```json", "```"); judgeResult = StrUtil.removePrefix(judgeResult, "```json"); judgeResult = StrUtil.removeSuffix(judgeResult, "```"); } diff --git a/nGQL/demo_data.ngql b/nGQL/demo_data.ngql index 0331ac2..b1b7cd8 100644 --- a/nGQL/demo_data.ngql +++ b/nGQL/demo_data.ngql @@ -27,11 +27,11 @@ insert edge `condition_edge`() values "1-1-1-1"->"1-1-1-1-1":(),"1-1-1-1-1"->"1- # 插入三级叶子节点,非深圳城乡居民退休 -insert vertex `item_leaf` ( `item_name`) values "1-1-2":("非深圳城乡居民退休"); +insert vertex `item_leaf` ( `item_name`) values "1-1-2":("港澳台和外籍人员城乡居民退休"); # 建立连接关系,城乡居保退休下级节点非深圳城乡居民退休 insert edge `dependence_edge`() values "1-1"->"1-1-2":(); # 插入办理条件节点 -insert vertex `process_condition` ( `detail`) values "1-1-2-1":("非深圳城乡居民退休条件...内容在update"); +insert vertex `process_condition` ( `detail`) values "1-1-2-1":("港澳台和外籍人员退休条件...内容在update"); # 插入叶子节点和办理条件节点之间的关系 insert edge `process_condition_edge`() values "1-1-2"->"1-1-2-1":(); # 插入条件节点,非深圳城乡居民退休 diff --git a/nGQL/update_data.ngql b/nGQL/update_data.ngql index 963904d..b4fd052 100644 --- a/nGQL/update_data.ngql +++ b/nGQL/update_data.ngql @@ -1,33 +1,34 @@ -# 更新深圳城乡居民退休条件 + # 深圳城乡居民退休条件 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 = "城乡居民养老保险待遇领取条件参保人达到下列条件之一的,可以按月领取养老金 + # 港澳台和外籍人员城乡居民退休城乡居民退休条件 +UPDATE VERTEX ON process_condition "1-1-2-1" SET detail = "港澳台和外籍人员城乡居民退休城乡居民养老保险待遇领取条件参保人达到下列条件之一的,可以按月领取养老金 (一)当地实施原广东省新型农村社会养老保险 (以下简称新农保)和城镇居民社会养老保险 (以下简称城居保) 制度时,已年满60周岁,未享受职工基本养老保险待遇以及国家规定的其他养老待遇的,不用缴费,可以按月领取基础养老金, (二)参加了原新农保或城居保的参保人,按照其原参加制度的规定年限缴费,年满60周岁后,可以按月领取养老金 (三)参保人缴费累计达到15年,年满60周岁的,可以按月领取养老金。 (四)参保人年满60周岁但累计缴费年限没有达到规定缴费年限的,可继续逐年缴费,并享受相应的政府缴费补贴。逐年缴费至65周岁仍然没有达到规定缴费年限的,可以一次性补缴养老保险费至规定的缴费年限后,按月领取养老金,但一次性补缴不享受政府的缴费补贴。 (五)参保人年满60周岁、累计缴费年限没有达到规定缴费年限的,如不继续逐年缴费或补缴至规定的缴费年限的,不发基础养老金,可以申请按月领取个人账户养老金,发完为止."; - + # 深圳企业职工退休条件 UPDATE VERTEX ON process_condition "1-2-1-1" SET detail = "如已达到退休年龄,且养老缴费年限满15年,且异地社保已转入,可以在深圳办理退休; 如养老保险缴费未满15年 (实际缴费年限+视同缴费年限)则不满足退休条件;您可由请社保延缴或一次性趸缴:养老保险缴费年限满15年后,再办理退休申请。 如您还有异地社保没有转入的话,需要您先办理社保转入"; - + # 广东省其他地区企业职工退休条件 UPDATE VERTEX ON process_condition "1-2-2-1" SET detail = "如已达到退休年龄,且养老缴费年限满15年,且异地社保已转入,可以在深圳办理退休; 如养老保险缴费未满15年 (实际缴费年限+视同缴费年限)则不满足退休条件;您可由请社保延缴或一次性趸缴:养老保险缴费年限满15年后,再办理退休申请。 如您还有异地社保没有转入的话,需要您先办理社保转入"; -# 省外户口企业职工退休条件 + # 省外户口企业职工退休条件 UPDATE VERTEX ON process_condition "1-2-3-1" SET detail = "如已达到退休年龄,且养老缴费年限满15年,且异地社保已转入,可以在深圳办理退休; 如养老保险缴费未满15年 (实际缴费年限+视同缴费年限)则不满足退休条件;您可由请社保延缴或一次性趸缴:养老保险缴费年限满15年后,再办理退休申请。 如您还有异地社保没有转入的话,需要您先办理社保转入"; -# 港澳台和外籍人员企业职工退休条件 + # 港澳台和外籍人员企业职工退休条件 UPDATE VERTEX ON process_condition "1-2-4-1" SET detail = "如已达到退休年龄,且养老缴费年限满15年,且异地社保已转入,可以在深圳办理退休; 如养老保险缴费未满15年 (实际缴费年限+视同缴费年限)则不满足退休条件;您可由请社保延缴或一次性趸缴:养老保险缴费年限满15年后,再办理退休申请。 - 如您还有异地社保没有转入的话,需要您先办理社保转入"; \ No newline at end of file + 如您还有异地社保没有转入的话,需要您先办理社保转入"; +