提交 2539bfa7 作者: 925993793@qq.com

大模型结果解析完善

上级 6183b22b
...@@ -303,11 +303,28 @@ public class AnalysisServiceImpl implements AnalysisService { ...@@ -303,11 +303,28 @@ public class AnalysisServiceImpl implements AnalysisService {
@Override @Override
public String llmResult(String eventName, String startTime, String endTime, EventLlmConfig llmConfig) { public String llmResult(String eventName, String startTime, String endTime, EventLlmConfig llmConfig) {
if (llmConfig == null) {
return null;
}
String result = llmService.model(llmConfig.getLlmName(), llmConfig.getLlmPrompt(), eventName); String result = llmService.model(llmConfig.getLlmName(), llmConfig.getLlmPrompt(), eventName);
if (result.startsWith("```json")) { AnalysisColumnEnum analysisColumnEnum = AnalysisColumnEnum.getByCode(llmConfig.getColumnCode());
return result.substring(7, result.length() - 3); String startHeader = null;
} else if (result.startsWith("```")) { if (analysisColumnEnum != null) {
return result.substring(3, result.length() - 3); String resType = analysisColumnEnum.getResType();
if (resType.equals("array")) {
startHeader = "[";
} else if (resType.equals("object")) {
startHeader = "{";
}
}
if (startHeader != null && !result.startsWith(startHeader)) {
if (result.startsWith("```json")) {
result = result.substring(7, result.length() - 3);
} else if (result.startsWith("```")) {
result = result.substring(3, result.length() - 3);
} else {
result = result.substring(result.indexOf(startHeader));
}
} }
if (llmConfig.getColumnCode().equals(AnalysisColumnEnum.IMPACT_ASSESSMENT.getCode())) { if (llmConfig.getColumnCode().equals(AnalysisColumnEnum.IMPACT_ASSESSMENT.getCode())) {
String prompt = "根据提供的事件名称,以及其%s的概述,详细的描述下该事件的%s"; String prompt = "根据提供的事件名称,以及其%s的概述,详细的描述下该事件的%s";
...@@ -329,26 +346,7 @@ public class AnalysisServiceImpl implements AnalysisService { ...@@ -329,26 +346,7 @@ public class AnalysisServiceImpl implements AnalysisService {
public String llmResult(String eventId, String startTime, String endTime, Integer columnCode) { public String llmResult(String eventId, String startTime, String endTime, Integer columnCode) {
Event event = eventService.getById(eventId); Event event = eventService.getById(eventId);
EventLlmConfig llmConfig = eventLlmConfigService.getConfig(eventId, columnCode); EventLlmConfig llmConfig = eventLlmConfigService.getConfig(eventId, columnCode);
String result = llmService.model(llmConfig.getLlmName(), llmConfig.getLlmPrompt(), event.getEventName()); return llmResult(event.getEventName(), startTime, endTime, llmConfig);
if (result.startsWith("```json")) {
return result.substring(7, result.length() - 3);
} else if (result.startsWith("```")) {
return result.substring(3, result.length() - 3);
}
if (columnCode.equals(AnalysisColumnEnum.IMPACT_ASSESSMENT.getCode())) {
String prompt = "根据提供的事件名称,以及其%s的概述,详细的描述下该事件的%s";
List<JSONObject> impactList = JSON.parseArray(result, JSONObject.class);
for (JSONObject impact : impactList) {
String theme = impact.getString("theme");
JSONObject params = new JSONObject();
params.put("eventName", event.getEventName());
params.put("impactOutline", impact);
String impactDetail = llmService.model(llmConfig.getLlmName(), String.format(prompt, theme, theme), params.toJSONString());
impact.put("impactDetail", impactDetail);
}
result = JSON.toJSONString(impactList);
}
return result;
} }
@Override @Override
...@@ -396,7 +394,7 @@ public class AnalysisServiceImpl implements AnalysisService { ...@@ -396,7 +394,7 @@ public class AnalysisServiceImpl implements AnalysisService {
if (CollectionUtils.isNotEmpty(coOccurrenceVOS)) { if (CollectionUtils.isNotEmpty(coOccurrenceVOS)) {
EventAnalysisVersionRecord record = EventAnalysisVersionRecord.of(versionId, AnalysisColumnEnum.CO_OCCURRENCE, JSON.toJSONString(coOccurrenceVOS)); EventAnalysisVersionRecord record = EventAnalysisVersionRecord.of(versionId, AnalysisColumnEnum.CO_OCCURRENCE, JSON.toJSONString(coOccurrenceVOS));
records.add(record); records.add(record);
log.info("{}-事件分析【{}】重新生成逻辑完成。",eventName,AnalysisColumnEnum.CO_OCCURRENCE.getName()); log.info("{}-事件分析【{}】重新生成逻辑完成。", eventName, AnalysisColumnEnum.CO_OCCURRENCE.getName());
} }
//大模型相关逻辑生成的结果(影响评估,举措建议等) //大模型相关逻辑生成的结果(影响评估,举措建议等)
List<EventLlmConfig> collect = configList.stream().filter(e -> !e.getColumnCode().equals(AnalysisColumnEnum.CORE_SUMMARY.getCode())).collect(Collectors.toList()); List<EventLlmConfig> collect = configList.stream().filter(e -> !e.getColumnCode().equals(AnalysisColumnEnum.CORE_SUMMARY.getCode())).collect(Collectors.toList());
...@@ -458,7 +456,7 @@ public class AnalysisServiceImpl implements AnalysisService { ...@@ -458,7 +456,7 @@ public class AnalysisServiceImpl implements AnalysisService {
break; break;
case "done": case "done":
pptUrl = progressResponse.getData().getPptUrl(); pptUrl = progressResponse.getData().getPptUrl();
log.info("应用-{},PPT生成成功: {}", appId,pptUrl); log.info("应用-{},PPT生成成功: {}", appId, pptUrl);
flag = false; flag = false;
break; break;
case "build_failed": case "build_failed":
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论