|
|
@ -0,0 +1,169 @@
|
|
|
|
|
|
|
|
package com.supervision.demo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.supervision.police.dto.LLMExtractDto;
|
|
|
|
|
|
|
|
import com.supervision.police.dto.NotePromptExtractAttributesDto;
|
|
|
|
|
|
|
|
import com.supervision.police.service.LLMExtractService;
|
|
|
|
|
|
|
|
import com.supervision.police.service.NotePromptService;
|
|
|
|
|
|
|
|
import com.supervision.police.service.XxlJobService;
|
|
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
|
|
|
@SpringBootTest
|
|
|
|
|
|
|
|
public class LLMExtractTest {
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private LLMExtractService llmExtractService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private NotePromptService notePromptService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private XxlJobService xxlJobService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void testExtractTitle() {
|
|
|
|
|
|
|
|
List<LLMExtractDto> LLMExtractDtoList = new ArrayList<>();
|
|
|
|
|
|
|
|
LLMExtractDto LLMExtractDto = new LLMExtractDto();
|
|
|
|
|
|
|
|
LLMExtractDto.setId("1833322433007398913");
|
|
|
|
|
|
|
|
LLMExtractDto.setText("关于李社辉等人涉嫌合同诈骗罪的\n" +
|
|
|
|
|
|
|
|
"报案材料\n" +
|
|
|
|
|
|
|
|
"报案人:许锋,男,8。年\n" +
|
|
|
|
|
|
|
|
"一月\n" +
|
|
|
|
|
|
|
|
"/旦,汉族,\n" +
|
|
|
|
|
|
|
|
"号:-640/2119001012218\n" +
|
|
|
|
|
|
|
|
"电话:1837571888。\n" +
|
|
|
|
|
|
|
|
"被报案人:\n" +
|
|
|
|
|
|
|
|
"李社辉,男,年月1/日,汉族,住\n" +
|
|
|
|
|
|
|
|
"址:西安市间良7x公园路7株号,身份证号:610114195505110513\n" +
|
|
|
|
|
|
|
|
"电话:1810537777。\n" +
|
|
|
|
|
|
|
|
"宁夏博金特立体泊车设备有限公司,住所地:青铜峡市嘉宝\n" +
|
|
|
|
|
|
|
|
"工业园区7-8号。\n" +
|
|
|
|
|
|
|
|
"法定代表人:李社辉,该公司总经理。\n" +
|
|
|
|
|
|
|
|
"报案请求:\n" +
|
|
|
|
|
|
|
|
"因被报案人李社辉等人涉嫌合同诈骗罪,报案人现向贵局报\n" +
|
|
|
|
|
|
|
|
"案,请求立案侦查。\n" +
|
|
|
|
|
|
|
|
"事实与理由:\n" +
|
|
|
|
|
|
|
|
"一、背景事实\n" +
|
|
|
|
|
|
|
|
"2017年4月左右,罗静给报案人打电话,称其时任宁夏博金\n" +
|
|
|
|
|
|
|
|
"特立体泊车设备有限公司副总,公司项目的发拨、资金的发放均\n" +
|
|
|
|
|
|
|
|
"由他决定,将会有好的项目给报案人介绍。\n" +
|
|
|
|
|
|
|
|
"2017年5月10日,罗静给报案人打电话说有一个很好的立\n" +
|
|
|
|
|
|
|
|
"体停车场的项目欲承包给报案人,让报案人准备二十万元保证金\n" +
|
|
|
|
|
|
|
|
"交到公司,并强调必须是现金。因此,当天下午报案人从银行卡\n" +
|
|
|
|
|
|
|
|
"里取出二十万元现金交至被报案人李社辉处,对方给报案人出具");
|
|
|
|
|
|
|
|
LLMExtractDtoList.add(LLMExtractDto);
|
|
|
|
|
|
|
|
LLMExtractDto LLMExtractDto2 = new LLMExtractDto();
|
|
|
|
|
|
|
|
LLMExtractDto2.setId("1833322459494428674");
|
|
|
|
|
|
|
|
LLMExtractDto2.setText("了《收据》一张,并与报案人签订了《协议书》一份,约定报案\n" +
|
|
|
|
|
|
|
|
"人同意向宁夏博金特立体泊车设备有限公司以现金方式进行担\n" +
|
|
|
|
|
|
|
|
"保,交纳质量及施工保证金,即人民币二十万元整。该保证金交\n" +
|
|
|
|
|
|
|
|
"至甲方账户后,宁夏博金特立体泊车设备有限公司须确保凯尔福\n" +
|
|
|
|
|
|
|
|
"邸项目由报案人完成。\n" +
|
|
|
|
|
|
|
|
"二、李社辉涉嫌合同诈骗罪的犯罪事实非常明确、证据确凿,\n" +
|
|
|
|
|
|
|
|
"应予认定\n" +
|
|
|
|
|
|
|
|
"在报案人与被报案人宁夏博金特立体泊车设备有限公司签订\n" +
|
|
|
|
|
|
|
|
"《协议书》后,报案人积极起草项目施工合同,期待与被报案人\n" +
|
|
|
|
|
|
|
|
"宁夏博金特立体泊车设备有限公司签订合同,完成合作,但对方\n" +
|
|
|
|
|
|
|
|
"总是以各种理由推脱。之后,报案人经多方打听,才知道被报案\n" +
|
|
|
|
|
|
|
|
"人宁夏博金特根本没有关于凯尔福邸的项目,报案人才知道上当\n" +
|
|
|
|
|
|
|
|
"受骗。报案人就开始向被报案人李社辉索要报案人交的二十万元\n" +
|
|
|
|
|
|
|
|
"保证金,被报案人李社辉等人以各种理由推,并且一直欺骗报\n" +
|
|
|
|
|
|
|
|
"案人说要给报案人介绍其他工程项目。但是这已经过去了两年,\n" +
|
|
|
|
|
|
|
|
"对方并没有给报案人退还保证金,也没有给报案人介绍其他项目。\n" +
|
|
|
|
|
|
|
|
"直到现在,被报案人李社辉等人不接听电话,也不出现与报案人\n" +
|
|
|
|
|
|
|
|
"处理,报案人深感受骗!\n" +
|
|
|
|
|
|
|
|
"李社辉等人骗取报案人钱财是合谋诈骗,是有预谋团伙作案,\n" +
|
|
|
|
|
|
|
|
"通过签订假协议的方式诈骗他人财物,涉案数额特别巨大,其行\n" +
|
|
|
|
|
|
|
|
"为严重扰乱了正常的市场经济秩序。\n" +
|
|
|
|
|
|
|
|
"三、李社辉等人行为已构成犯罪,符合立案标准。\n" +
|
|
|
|
|
|
|
|
"(一)立案标准明确\n" +
|
|
|
|
|
|
|
|
"《最高人民检察院公安部关于公安机关管辖的刑事案件立案\n" +
|
|
|
|
|
|
|
|
"2");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// LLMExtractDtoList.add(LLMExtractDto2);
|
|
|
|
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
|
|
|
|
|
|
List<LLMExtractDto> result = llmExtractService.extractTitle(LLMExtractDtoList);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void testExtractAttr() {
|
|
|
|
|
|
|
|
long start = System.currentTimeMillis();
|
|
|
|
|
|
|
|
LLMExtractDto llmExtractDto = new LLMExtractDto();
|
|
|
|
|
|
|
|
llmExtractDto.setId("1833322433007398913");
|
|
|
|
|
|
|
|
llmExtractDto.setText("抵顶购房协议\\n甲方(卖房方\\n夏双合房地产开发有限公司\\n身份证号:642/021P67020P0\\n乙方:(买房方)叶占文:\\n丙方:王国旗\\n圣国旗\\n身份证号:64212198203150339\\n经甲乙丙三方协商,由于乙丙双方给原大成欧景花园14#楼前\\n期承包人高宏做分包项目,现为了解决乙丙双方的剩余工程款,经三\\n方协商同意甲方将位于大成欧景花园 14-1-1402 房产抵顶给乙方,三\\n方达成的协议如下:\\n1、位于大成欧景花园 14-1-1402 房产的面积为 115.38,双方协商的\\n房款总价为肆拾叁万捌仟肆佰肆拾肆元(438444)。\\n2、三方协商此套房的房款中的286150元用14#楼的发泡施工队叶占\\n文乙方的工程款进行抵顶,52000 元用 14#楼的防水施工人员王国旗\\n丙方的人工费抵顶。剩余房款壹拾万元(100000)由乙方支付给甲方。\\n3、三方协商均同意,丙方 52000 元工程款由乙方将该房产销售以后\\n按实际销售房款相关比例直接支付给丙方,甲方不再参与不再负责,\\n该房产备案至乙方指定人名下。\\n4、三方协商,该房产对应的税金48229元,其中20000元由乙丙双\\n方承担(丙方承担3000元),剩余28229 由甲方承担。\\n5、本协议签订的同时由乙方支付甲方房款定金四万元(40000)元,\\n到甲方指定的朱金成代收账户。\\n6、本协议签订后甲方与乙方、丙方所有债权债务结清,由甲方从高\\n宏工程款中扣除相应抵顶款项,乙方丙方不得再向高宏追偿。\\n印件与你件一放.由我本人#\\n\\u001b[0m\\n7、本协议签订后乙方丙方在销售该房产时所产生的盈余或亏损亏均\\n与甲方无任何关系。\\n8、在乙方找到购房客户,甲方则配合乙方办理签订该房产的网签备\\n案手续,网签备案前付清剩余房款及税金80000元给甲方(其中税金\\n9、本协议签订以后乙丙双方可销售该房产,甲方配合办理相关手续。\\n10、本协议自双方签字盖章后生效,任何一方不得违约,否则按总房\\n款的日千分之一(1)承担违约责任。\\n(1)\\n1391453368802021年9月27日\\n丙方:蕴\\n1779J343352021年9月27日\\n腹仰体与原件由成本人\\n201.\\n\\u001b[0m");
|
|
|
|
|
|
|
|
llmExtractDto.setPrompt("请根据属性定义从源文本中提取属性:\n" +
|
|
|
|
|
|
|
|
"\n" +
|
|
|
|
|
|
|
|
"示例文本:\n" +
|
|
|
|
|
|
|
|
"\"\n" +
|
|
|
|
|
|
|
|
"甲方:张三公司\n" +
|
|
|
|
|
|
|
|
"乙方:\n" +
|
|
|
|
|
|
|
|
"数量:5000吨水泥\n" +
|
|
|
|
|
|
|
|
"合同金额:8346元\n" +
|
|
|
|
|
|
|
|
"支付时间:2022年11月30日\n" +
|
|
|
|
|
|
|
|
"履行期限:2022年12月1日至2023年12月1日\n" +
|
|
|
|
|
|
|
|
"签订日期:2022年11月23日\n" +
|
|
|
|
|
|
|
|
"\"\n" +
|
|
|
|
|
|
|
|
"\n" +
|
|
|
|
|
|
|
|
"示例结果:\n" +
|
|
|
|
|
|
|
|
"{\n" +
|
|
|
|
|
|
|
|
" \"甲方名称\": \"张三公司\",\n" +
|
|
|
|
|
|
|
|
" \"乙方名称\": \"\",\n" +
|
|
|
|
|
|
|
|
" \"数量\": \"5000吨水泥\",\n" +
|
|
|
|
|
|
|
|
" \"合同金额\": \"8346.00\",\n" +
|
|
|
|
|
|
|
|
" \"支付时间\": \"2022-11-30\",\n" +
|
|
|
|
|
|
|
|
" \"履行期限\": \"2022年12月1日至2023年12月1日\",\n" +
|
|
|
|
|
|
|
|
" \"签订日期\": \"2022-11-23\"\n" +
|
|
|
|
|
|
|
|
"}\n" +
|
|
|
|
|
|
|
|
"\n" +
|
|
|
|
|
|
|
|
"源文本:\n" +
|
|
|
|
|
|
|
|
"{ocr_txt}\n\n" +
|
|
|
|
|
|
|
|
"属性定义:\n" +
|
|
|
|
|
|
|
|
"{attr_define}\n" +
|
|
|
|
|
|
|
|
"\n" +
|
|
|
|
|
|
|
|
"### 注意事项:\n" +
|
|
|
|
|
|
|
|
"1. 将结果以JSON格式返回。不需要进行解释。\n" +
|
|
|
|
|
|
|
|
"2. 如果某字段提取不到,则返回\"\"。\n" +
|
|
|
|
|
|
|
|
"3. 日期格式为yyyy-MM-dd,浮点型格式返回保留两位小数。\n" +
|
|
|
|
|
|
|
|
"4. 值为文本类型的数据,尽量使用原文中的文字。\n" +
|
|
|
|
|
|
|
|
"5. 只可以使用原文中的文字,不可以自行添加内容。\n" +
|
|
|
|
|
|
|
|
"\n" +
|
|
|
|
|
|
|
|
"回溯你输出的结果,确保你的输出结果符合json格式。");
|
|
|
|
|
|
|
|
NotePromptExtractAttributesDto notePromptExtractAttributesDto = new NotePromptExtractAttributesDto();
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto.setAttrName("甲方");
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto.setAttrValueType("文本");
|
|
|
|
|
|
|
|
NotePromptExtractAttributesDto notePromptExtractAttributesDto2 = new NotePromptExtractAttributesDto();
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto2.setAttrName("乙方");
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto2.setAttrValueType("文本");
|
|
|
|
|
|
|
|
NotePromptExtractAttributesDto notePromptExtractAttributesDto3 = new NotePromptExtractAttributesDto();
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto3.setAttrName("数量");
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto3.setAttrValueType("文本");
|
|
|
|
|
|
|
|
NotePromptExtractAttributesDto notePromptExtractAttributesDto4 = new NotePromptExtractAttributesDto();
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto4.setAttrName("合同金额");
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto4.setAttrValueType("浮点");
|
|
|
|
|
|
|
|
NotePromptExtractAttributesDto notePromptExtractAttributesDto5 = new NotePromptExtractAttributesDto();
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto5.setAttrName("支付时间");
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto5.setAttrValueType("日期");
|
|
|
|
|
|
|
|
NotePromptExtractAttributesDto notePromptExtractAttributesDto6 = new NotePromptExtractAttributesDto();
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto6.setAttrName("履行期限");
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto6.setAttrValueType("文本");
|
|
|
|
|
|
|
|
NotePromptExtractAttributesDto notePromptExtractAttributesDto7 = new NotePromptExtractAttributesDto();
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto7.setAttrName("签订日期");
|
|
|
|
|
|
|
|
notePromptExtractAttributesDto7.setAttrValueType("日期");
|
|
|
|
|
|
|
|
llmExtractDto.setExtractAttributes(List.of(notePromptExtractAttributesDto, notePromptExtractAttributesDto2, notePromptExtractAttributesDto3, notePromptExtractAttributesDto4, notePromptExtractAttributesDto5, notePromptExtractAttributesDto6, notePromptExtractAttributesDto7));
|
|
|
|
|
|
|
|
llmExtractService.extractAttribute(Collections.singletonList(llmExtractDto));
|
|
|
|
|
|
|
|
long end = System.currentTimeMillis();
|
|
|
|
|
|
|
|
log.info("耗时:{}", end - start);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void test() {
|
|
|
|
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
|
|
|
|
|
|
xxlJobService.executeTaskByJobHandler("evidenceAnalysis", "1");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|