Commit fe7e6177 authored by alex yao's avatar alex yao

fix[车险]:修复对话结束无[DONE]输出问题

parent 19a3f26f
......@@ -340,7 +340,7 @@
<dependency>
<groupId>com.baidubce</groupId>
<artifactId>appbuilder</artifactId>
<version>0.9.4</version>
<version>1.1.0</version>
</dependency>
<dependency>
......
......@@ -339,65 +339,69 @@ public class AiDialoguesServiceImpl implements AiDialoguesService {
StringBuilder reasoningContentBuilder = new StringBuilder();
long inputTimeStamp = System.currentTimeMillis();
if (dialoguesType.equals(AiDialoguesTypeEnum.CAR_INSURANCE.getType())) {//AppBuilder
BizAiDialogues3rdRelationEntity bizAiDialogues3rdRelationEntity = new BizAiDialogues3rdRelationEntity();
bizAiDialogues3rdRelationEntity.setDialoguesId(dialoguesId);
bizAiDialogues3rdRelationEntity.setPlatform(DialoguesPlatformEnum.AppBuilder.getPlatform());
bizAiDialogues3rdRelationEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiDialogues3rdRelationEntity> relationEntities = bizAiDialogues3rdRelationService.findByExample(bizAiDialogues3rdRelationEntity, null);
if (CollectionUtils.isEmpty(relationEntities)) {
throw new BusinessException("获取会话配置异常");
}
AppBuilderClientIterator iterator = appBuilderService.communication(relationEntities.get(0).getRelationId(), input, null, true);
while (iterator.hasNext()) {
AppBuilderClientResult res = iterator.next();
LargeModelDemandResult largeModelDemandResult = new LargeModelDemandResult();
if (ArrayUtils.isNotEmpty(res.getEvents())) {
Event event = res.getEvents()[0];
String eventType = event.getEventType();
if ("chatflow".equals(eventType)) {
Map<String, Object> detail = event.getDetail();
if (detail.containsKey("message")) {
String mess = detail.get("message").toString();
largeModelDemandResult.setMessage(mess);
contentBuilder.append(mess);
try {
if (dialoguesType.equals(AiDialoguesTypeEnum.CAR_INSURANCE.getType())) {//AppBuilder
BizAiDialogues3rdRelationEntity bizAiDialogues3rdRelationEntity = new BizAiDialogues3rdRelationEntity();
bizAiDialogues3rdRelationEntity.setDialoguesId(dialoguesId);
bizAiDialogues3rdRelationEntity.setPlatform(DialoguesPlatformEnum.AppBuilder.getPlatform());
bizAiDialogues3rdRelationEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiDialogues3rdRelationEntity> relationEntities = bizAiDialogues3rdRelationService.findByExample(bizAiDialogues3rdRelationEntity, null);
if (CollectionUtils.isEmpty(relationEntities)) {
throw new BusinessException("获取会话配置异常");
}
AppBuilderClientIterator iterator = appBuilderService.communication(relationEntities.get(0).getRelationId(), input, null, true);
while (iterator.hasNext()) {
AppBuilderClientResult res = iterator.next();
LargeModelDemandResult largeModelDemandResult = new LargeModelDemandResult();
largeModelDemandResult.setCode("0");
if (ArrayUtils.isNotEmpty(res.getEvents())) {
Event event = res.getEvents()[0];
String eventType = event.getEventType();
if ("chatflow".equals(eventType)) {
Map<String, Object> detail = event.getDetail();
if (detail.containsKey("message")) {
String mess = detail.get("message").toString();
largeModelDemandResult.setMessage(mess);
contentBuilder.append(mess);
}
}
} else if (StringUtils.isNotEmpty(res.getAnswer())) {
largeModelDemandResult.setMessage(res.getAnswer());
contentBuilder.append(res.getAnswer());
}
} else if (StringUtils.isNotEmpty(res.getAnswer())) {
largeModelDemandResult.setMessage(res.getAnswer());
contentBuilder.append(res.getAnswer());
sseUtil.send(JsonUtils.serialize(largeModelDemandResult));
}
sseUtil.send(JsonUtils.serialize(largeModelDemandResult));
}
} catch (Exception e) {
logger.error(e.getMessage());
sseUtil.completeByError(e.getMessage());
} finally {
sseUtil.send("[DONE]");
sseUtil.complete();
//保存对话记录
//用户输入记录
BizAgentApplicationDialoguesRecordEntity inputRecord = new BizAgentApplicationDialoguesRecordEntity();
inputRecord.setAgentId(null);
inputRecord.setMemberId(userId);
inputRecord.setContent(input);
inputRecord.setDialogsId(dialoguesId);
inputRecord.setRole(AgentApplicationDialoguesRecordConstants.ROLE.USER);
inputRecord.setTimestamp(inputTimeStamp);
bizAgentApplicationDialoguesRecordService.save(inputRecord);
//AI输出记录
BizAgentApplicationDialoguesRecordEntity outputRecord = new BizAgentApplicationDialoguesRecordEntity();
outputRecord.setRole(AgentApplicationDialoguesRecordConstants.ROLE.ASSISTANT);
outputRecord.setAgentId(null);
outputRecord.setDialogsId(dialoguesId);
outputRecord.setMemberId(userId);
if (toolFunction != null) {
outputRecord.setFunction(JsonUtils.serialize(toolFunction));
}
outputRecord.setTimestamp(System.currentTimeMillis());
outputRecord.setContent(contentBuilder.toString());
outputRecord.setReasoningContent(reasoningContentBuilder.toString());
bizAgentApplicationDialoguesRecordService.save(outputRecord);
}
//保存对话记录
//用户输入记录
BizAgentApplicationDialoguesRecordEntity inputRecord = new BizAgentApplicationDialoguesRecordEntity();
inputRecord.setAgentId(null);
inputRecord.setMemberId(userId);
inputRecord.setContent(input);
inputRecord.setDialogsId(dialoguesId);
inputRecord.setRole(AgentApplicationDialoguesRecordConstants.ROLE.USER);
inputRecord.setTimestamp(inputTimeStamp);
bizAgentApplicationDialoguesRecordService.save(inputRecord);
//AI输出记录
BizAgentApplicationDialoguesRecordEntity outputRecord = new BizAgentApplicationDialoguesRecordEntity();
outputRecord.setRole(AgentApplicationDialoguesRecordConstants.ROLE.ASSISTANT);
outputRecord.setAgentId(null);
outputRecord.setDialogsId(dialoguesId);
outputRecord.setMemberId(userId);
if (toolFunction != null) {
outputRecord.setFunction(JsonUtils.serialize(toolFunction));
}
outputRecord.setTimestamp(System.currentTimeMillis());
outputRecord.setContent(contentBuilder.toString());
outputRecord.setReasoningContent(reasoningContentBuilder.toString());
bizAgentApplicationDialoguesRecordService.save(outputRecord);
return contentBuilder.toString();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment