Merge remote-tracking branch 'origin/dev_1.0.0' into dev_1.0.0

topo_dev
xueqingkun 9 months ago
commit 79472437ec

@ -1,5 +1,6 @@
package com.supervision.thread;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
@ -8,12 +9,14 @@ import com.supervision.police.domain.TripleInfo;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.util.StopWatch;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.Callable;
@ -83,15 +86,20 @@ public class TripleExtractThread implements Callable<TripleInfo> {
paramMap.put("tailEntityType", prompt.getEndEntityType());
paramMap.put("question", question);
paramMap.put("answer", answer);
Prompt ask = new Prompt(new UserMessage(StrUtil.format(prompt.getPrompt(), paramMap)));
String format = StrUtil.format(prompt.getPrompt(), paramMap);
// 对format进行切分,把前面两个---作为systemPrompt
String[] split = format.split("---");
SystemMessage systemMessage = new SystemMessage(split[0]);
UserMessage userMessage = new UserMessage(split[1]);
Prompt ask = new Prompt(List.of(systemMessage, userMessage));
ChatResponse call = chatClient.call(ask);
stopWatch.stop();
String content = call.getResult().getOutput().getContent();
log.info("耗时:{},分析的结果是:{}", stopWatch.getTotalTimeSeconds(), content);
// 获取从提示词中提取到的三元组信息
TripleExtractResult extractResult = JSONUtil.toBean(content, TripleExtractResult.class);
if (ObjectUtil.isEmpty(extractResult) || extractResult.result.isEmpty()) {
log.info("提取三元组信息为空,忽略");
if (ObjectUtil.isEmpty(extractResult) || CollUtil.isEmpty(extractResult.getResult())) {
log.info("提取三元组信息为空,忽略.提取的内容为:{}",content);
return null;
}
for (TripleExtractNode tripleExtractNode : extractResult.getResult()) {

Loading…
Cancel
Save