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

大模型结果解析完善

上级 6183b22b
......@@ -303,11 +303,28 @@ public class AnalysisServiceImpl implements AnalysisService {
@Override
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);
if (result.startsWith("```json")) {
return result.substring(7, result.length() - 3);
} else if (result.startsWith("```")) {
return result.substring(3, result.length() - 3);
AnalysisColumnEnum analysisColumnEnum = AnalysisColumnEnum.getByCode(llmConfig.getColumnCode());
String startHeader = null;
if (analysisColumnEnum != null) {
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())) {
String prompt = "根据提供的事件名称,以及其%s的概述,详细的描述下该事件的%s";
......@@ -329,26 +346,7 @@ public class AnalysisServiceImpl implements AnalysisService {
public String llmResult(String eventId, String startTime, String endTime, Integer columnCode) {
Event event = eventService.getById(eventId);
EventLlmConfig llmConfig = eventLlmConfigService.getConfig(eventId, columnCode);
String result = llmService.model(llmConfig.getLlmName(), llmConfig.getLlmPrompt(), event.getEventName());
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;
return llmResult(event.getEventName(), startTime, endTime, llmConfig);
}
@Override
......@@ -396,7 +394,7 @@ public class AnalysisServiceImpl implements AnalysisService {
if (CollectionUtils.isNotEmpty(coOccurrenceVOS)) {
EventAnalysisVersionRecord record = EventAnalysisVersionRecord.of(versionId, AnalysisColumnEnum.CO_OCCURRENCE, JSON.toJSONString(coOccurrenceVOS));
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());
......@@ -458,7 +456,7 @@ public class AnalysisServiceImpl implements AnalysisService {
break;
case "done":
pptUrl = progressResponse.getData().getPptUrl();
log.info("应用-{},PPT生成成功: {}", appId,pptUrl);
log.info("应用-{},PPT生成成功: {}", appId, pptUrl);
flag = false;
break;
case "build_failed":
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论