From ecf3c08edb52607fa90823c6e8b0ad724504b93a Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Mon, 22 Apr 2024 09:47:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/com/supervision/AskTest.java | 160 ++++++++++++++++++ .../test/java/com/supervision/LogParse.java | 65 +++++++ .../test/java/com/supervision/YoudaoTest.java | 16 +- 3 files changed, 232 insertions(+), 9 deletions(-) create mode 100644 kbqa-graph/src/test/java/com/supervision/AskTest.java create mode 100644 kbqa-graph/src/test/java/com/supervision/LogParse.java diff --git a/kbqa-graph/src/test/java/com/supervision/AskTest.java b/kbqa-graph/src/test/java/com/supervision/AskTest.java new file mode 100644 index 0000000..8abb77e --- /dev/null +++ b/kbqa-graph/src/test/java/com/supervision/AskTest.java @@ -0,0 +1,160 @@ +package com.supervision; + +import cn.hutool.core.collection.CollUtil; +import com.supervision.service.AskService; +import com.supervision.vo.SingleTalkReqVO; +import com.supervision.vo.SingleTalkResVO; +import lombok.extern.slf4j.Slf4j; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.util.List; + +@Slf4j +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@RunWith(SpringJUnit4ClassRunner.class) +public class AskTest { + + @Autowired + private AskService askService; + @Test + public void test() { + + for (String question : loadQuestion()) { + log.info("======start=======>>>question:{}", question); + SingleTalkReqVO singleTalkReqVO = new SingleTalkReqVO(); + singleTalkReqVO.setUserTalk(question); + try { + SingleTalkResVO singleTalkResVO = askService.singleTalk(singleTalkReqVO); + log.info("====end=====>>>answer:{}<<<======end=======", singleTalkResVO.getAnswerText()); + } catch (Exception e) { + log.info("====end=====>>>answer:{}<<<======end=======", "error"); + } + } + + } + + @Test + public void test1() { + + // + SingleTalkReqVO singleTalkReqVO = new SingleTalkReqVO(); + singleTalkReqVO.setUserTalk("退休手续办理完成后,如何查询养老保险待遇的发放情况?"); + SingleTalkResVO singleTalkResVO = askService.singleTalk(singleTalkReqVO); + System.out.println("answer: "+singleTalkResVO.getAnswerText()); + + + } + + + + public List loadQuestion(){ + String question = "领取养老金的具体条件有哪些?\n" + + "新农保和城居保制度实施时,已年满 60 周岁的人是否可以直接领取基础养老金?\n" + + "参加原新农保或城居保的参保人,需要满足什么条件才能按月领取养老金?\n" + + "缴费累计达到多少年可以按月领取养老金?\n" + + "如果累计缴费年限没有达到规定缴费年限,应该怎么办?\n" + + "继续逐年缴费是否能享受政府缴费补贴?\n" + + "一次性补缴养老保险费是否享受政府缴费补贴?\n" + + "不继续逐年缴费或补缴至规定缴费年限,会有什么影响?\n" + + "60 周岁但累计缴费年限未达到规定的,能否申请按月领取个人账户养老金?\n" + + "个人账户养老金发放有何规定?\n" + + "办理按月领取养老金需要提供哪些材料?\n" + + "如何申请按月领取养老金?\n" + + "办理养老金领取手续的流程是怎样的?\n" + + "养老金的领取方式有哪些?\n" + + "领取养老金的资格如何审核?\n" + + "参保人的年龄和缴费年限以什么为准?\n" + + "不同地区的养老金办理条件是否相同?\n" + + "是否可以代办养老金领取手续?\n" + + "办理过程中如有疑问,如何咨询?\n" + + "养老金的发放时间是如何规定的?\n" + + "非干部身份的参保人办理退休需要提供离职证明吗?\n" + + "办理女干部在工人岗位退休的其他条件是什么?\n" + + "达龄月台账未出时,申请办理退休的具体流程是怎样的?\n" + + "单位延缴或个人延缴的情况下,办理退休有哪些注意事项?\n" + + "机要转档的具体流程和要求是什么?\n" + + "退休员工签领《养老保险待遇决定书》时还需要提供其他材料吗?\n" + + "办理退休手续的时间有限制吗?\n" + + "如果参保人档案未通过机要转至我局,该如何办理退休手续?\n" + + "参保人档案的审核标准是什么?\n" + + "退休手续办理完成后,如何查询养老保险待遇的发放情况?\n" + + "办理深圳市城乡居民养老保险需要哪些具体材料?\n" + + "深圳市企业职工养老保险养老金申请表如何获取?\n" + + "非深圳市户籍可以办理城乡居民养老保险吗?\n" + + "办理退休手续时,必须本人前往社保经办机构吗?\n" + + "代办退休手续需要提供哪些材料?\n" + + "退休年龄是如何确定的?\n" + + "深圳市养老保险业务办理委托书的格式是怎样的?\n" + + "办理养老待遇业务的具体流程是什么?\n" + + "线上办理养老待遇业务的具体操作步骤是什么?\n" + + "如何查询办理退休手续的进度?\n" + + "退休员工签领《养老保险待遇决定书》后多久能领回员工档案材料?\n" + + "办理退休手续的时间有没有限制?\n" + + "档案通过机要转至我局后,多久会通知当事人前来办理退休手续?\n" + + "办理退休手续需要满足哪些条件?\n" + + "女干部在工人岗位退休的具体条件是什么?\n" + + "身份证丢失了怎么办理退休手续?\n" + + "户口簿的信息需要与实际情况完全一致吗?\n" + + "港澳通行证或香港身份证的作用是什么?\n" + + "人事档案包括哪些内容?\n" + + "没有人事档案可以办理退休手续吗?\n" + + "授权委托书需要公证吗?\n" + + "办理退休手续的依据是什么?\n" + + "不同岗位的退休年龄有何区别?\n" + + "退休手续可以提前办理吗?\n" + + "办理退休手续后,养老金如何发放?\n" + + "养老保险待遇决定书有什么作用?\n" + + "退休人员如何领取养老金?\n" + + "养老金的计算方式是怎样的?\n" + + "办理退休手续时,需要缴纳费用吗?\n" + + "退休后养老金会随着时间调整吗?\n" + + "办理退休手续可以委托多人代办吗?\n" + + "退休人员去世后,养老金如何处理?\n" + + "办理退休手续后,如果发现信息有误如何更正?\n" + + "不同地区的办理流程和材料是否相同?\n" + + "线上办理途径是否只能通过“深圳社保”公众号?\n" + + "怎么办理退休?\n" + + "办理材料是否需要原件和复印件?\n" + + "材料提交后多久能办理完成?\n" + + "如果材料不齐全,可以线上补充提交吗?\n" + + "办理过程中如果有疑问,可以通过哪些方式咨询?\n" + + "退休人员的养老金是否会受到其他因素的影响?\n" + + "办理退休手续后,还需要注意哪些事项?\n" + + "缴费年限不足 15 年,是否可以一次性补缴?\n" + + "办理退休手续时,是否需要提供健康证明?\n" + + "退休人员是否需要进行资格认证?\n" + + "办理退休手续后,是否可以更改领取养老金的银行账户?\n" + + "退休人员的养老金是否会按时足额发放?\n" + + "如果对养老金金额有疑问,如何查询和核实?\n" + + "办理退休手续的过程中,如何保障个人信息的安全?\n" + + "我社保交够15年,是不是就可以办理退休了\n" + + "社保交够15年,是不是就不用交了\n" + + "企业女职工退休年龄如何确定怎么确定是50周岁退休还是55周岁退休\n" + + "领取失业金对退休金金额是否有影响\n" + + "有高级职称,退休时退休金高吗\n" + + "到退休年龄了,缴费不够15年,怎么办能一次性补齐吗\n" + + "退休金的计算公式是什么能领多少退休金\n" + + "职工的养老金何时领?\n" + + "单位如何为职工办理养老金申领手续?\n" + + "今后的养老金发放信息哪里查?\n" + + "社保缴费中断过,会影响养老金申领吗?\n" + + "养老保险缴费年限不够怎么办?\n" + + "现在退休证还有么,怎么办理?\n" + + "基本养老保险有哪些?\n" + + "个人养老金如何开账户?\n" + + "退休后去哪里领取个人养老金\n" + + "基本养老金的构成包括哪些方面\n" + + "职工社保和灵活就业都买了,多少岁退休\n" + + "之前单位缴过社保,现在自己交社保,退休年龄怎么算\n" + + "深户女的有营业执照的多大年龄退休\n" + + "港资公司女员工退休年龄\n"; + + + + return CollUtil.newArrayList(question.split("\n")); + } +} diff --git a/kbqa-graph/src/test/java/com/supervision/LogParse.java b/kbqa-graph/src/test/java/com/supervision/LogParse.java new file mode 100644 index 0000000..cb21907 --- /dev/null +++ b/kbqa-graph/src/test/java/com/supervision/LogParse.java @@ -0,0 +1,65 @@ +package com.supervision; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +@Slf4j +public class LogParse { + + public static void main(String[] args) { + String input = FileUtil.readString("F:\\tmp\\1\\log\\log.txt", "UTF-8"); + if (StrUtil.isEmpty(input)){ + log.warn("log file is empty"); + return; + } + + String[] split = input.split("======start======="); + + List rowDataList = new ArrayList<>(); // 存储提取的数据 + for (String item : split) { + item = "======start=======" + item; + String pattern = "======start=======>>>question:([^\\n]+)\\n((?:(?!===end===).)+)====end=====>>>answer:(.*)<<<======end=======";; + Pattern regex = Pattern.compile(pattern, Pattern.DOTALL); // 创建Pattern对象 + Matcher matcher = regex.matcher(item); // 创建Matcher对象 + while (matcher.find()) { + rowDataList.add(new RowData(matcher.group(1), matcher.group(3), matcher.group(2))); + } + } + + rowDataList.forEach(rowData -> { + System.out.println("question:"+rowData.getQuestion()); + System.out.println("answer:"+ rowData.getAnswer()); + }); + + + } + + @Data + public static class RowData{ + private String question; + + private String answer; + + private String logData; + + public RowData(String question, String answer, String logData) { + this.question = question; + this.answer = answer; + this.logData = logData; + } + + public RowData() { + } + } + + + +} + diff --git a/kbqa-graph/src/test/java/com/supervision/YoudaoTest.java b/kbqa-graph/src/test/java/com/supervision/YoudaoTest.java index 1a37593..9e1a4c8 100644 --- a/kbqa-graph/src/test/java/com/supervision/YoudaoTest.java +++ b/kbqa-graph/src/test/java/com/supervision/YoudaoTest.java @@ -5,10 +5,7 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.json.JSONUtil; import com.supervision.model.KgInfo; import com.supervision.qanything.QanythingService; -import com.supervision.qanything.dto.ChatResult; -import com.supervision.qanything.dto.CreateKBResult; -import com.supervision.qanything.dto.ResultWrapper; -import com.supervision.qanything.dto.UploadResult; +import com.supervision.qanything.dto.*; import com.supervision.service.KGService; import lombok.extern.slf4j.Slf4j; import org.junit.Test; @@ -40,8 +37,12 @@ public class YoudaoTest { @Test public void qanythingChatTest() throws NoSuchAlgorithmException { - ResultWrapper chat = qanythingService.chat("居民养老保险关系如何转移?", CollUtil.newArrayList("KB6ada48988e694ad197af53cc0d1e4b78_240328")); + /*ResultWrapper chat = qanythingService.chat("居民养老保险关系如何转移?", CollUtil.newArrayList("KB6ada48988e694ad197af53cc0d1e4b78_240328"));*/ + HistoryDTO historyDTO = new HistoryDTO(); + historyDTO.setQuestion("居民养老保险关系如何转移?"); + historyDTO.setResponse("居民养老保险关系的转移需要按照相关规定办理手续。根据参考信息中的《城镇企业职工基本养老保险关系转移接续暂行办法》,参保人员在跨省流动就业时,需要向原参保地的社会保险经办机构提出申请,并提供相关材料。新参保地的社保经办机构会审核申请,并在符合条件的情况下发出同意接收函。转移接续手续完成后,参保人员的基本养老保险关系会随之转移到新参保地。具体的转移接续流程和要求可以根据相关部门的规定进行办理。"); + ResultWrapper chat = qanythingService.chat("需要提供哪些材料?", CollUtil.newArrayList(historyDTO),CollUtil.newArrayList("KB6ada48988e694ad197af53cc0d1e4b78_240328")); System.out.println("====================回答========================="); System.out.println(chat.getResult().getResponse()); } @@ -132,10 +133,7 @@ public class YoudaoTest { @Test public void uploadDocTest() throws IOException { String kbid = "KB6ada48988e694ad197af53cc0d1e4b78_240328";// 养老退休知识库-dev - FileUtil.walkFiles(new File("F:\\supervision\\doc\\深圳人社\\v0.1相关文档"),(f)->{ - if (f.getName().equals("广东省城乡居民基本养老保险实施办法.docx")){ - return; - } + FileUtil.walkFiles(new File("F:\\supervision\\doc\\深圳人社\\v0.1相关文档_append"),(f)->{ KgInfo kgInfo = new KgInfo(); kgInfo.setTitle(f.getName().split("\\.")[0]); try {