life-script启动后地址栏无限重复切换bug修复
This commit is contained in:
@@ -17,6 +17,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -33,7 +34,7 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class LifeEventServiceImpl extends ServiceImpl<LifeEventMapper, LifeEvent>
|
||||
public class LifeEventServiceImpl extends ServiceImpl<LifeEventMapper, LifeEvent>
|
||||
implements LifeEventService {
|
||||
|
||||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
@@ -152,7 +153,7 @@ public class LifeEventServiceImpl extends ServiceImpl<LifeEventMapper, LifeEvent
|
||||
}
|
||||
|
||||
// 调用Coze AI进行疗愈回复
|
||||
String aiGeneratedContent = generateHealingByAi(request, currentUserId);
|
||||
String aiGeneratedContent = generateHealingByAi(event);
|
||||
if (StringUtils.hasText(aiGeneratedContent)) {
|
||||
event.setAiReply(aiGeneratedContent);
|
||||
}
|
||||
@@ -164,24 +165,23 @@ public class LifeEventServiceImpl extends ServiceImpl<LifeEventMapper, LifeEvent
|
||||
/**
|
||||
* 调用Coze AI生成疗愈内容
|
||||
*
|
||||
* @param request 创建请求
|
||||
* @param userId 用户ID
|
||||
* @param event 人生事件
|
||||
* @return AI生成的疗愈内容,失败时返回null
|
||||
*/
|
||||
private String generateHealingByAi(LifeEventCreateRequest request, String userId) {
|
||||
private String generateHealingByAi(LifeEvent event) {
|
||||
try {
|
||||
// 组装AI输入
|
||||
String input = assembleHealingInput(request);
|
||||
log.info("开始调用AI生成疗愈回复,用户ID: {}, 输入长度: {}", userId, input.length());
|
||||
String input = assembleHealingInput(event);
|
||||
log.info("开始调用AI生成疗愈回复,用户ID: {}, 输入长度: {}", event.getUserId(), input.length());
|
||||
|
||||
// 调用Coze工作流
|
||||
String result = aiChatService.callWorkflowByConfigKey(COZE_HEALING_CONFIG_KEY, input, userId);
|
||||
String result = aiChatService.callWorkflowByConfigKey(COZE_HEALING_CONFIG_KEY, input, event.getUserId());
|
||||
|
||||
log.info("AI生成疗愈回复完成,用户ID: {}, 结果长度: {}", userId, result != null ? result.length() : 0);
|
||||
log.info("AI生成疗愈回复完成,用户ID: {}, 结果长度: {}", event.getUserId(), result != null ? result.length() : 0);
|
||||
return result;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("AI生成疗愈回复失败,用户ID: {}, 错误: {}", userId, e.getMessage(), e);
|
||||
log.error("AI生成疗愈回复失败,用户ID: {}, 错误: {}", event.getUserId(), e.getMessage(), e);
|
||||
// AI调用失败不影响事件创建,返回null
|
||||
return null;
|
||||
}
|
||||
@@ -190,30 +190,30 @@ public class LifeEventServiceImpl extends ServiceImpl<LifeEventMapper, LifeEvent
|
||||
/**
|
||||
* 组装AI疗愈输入内容
|
||||
*
|
||||
* @param request 创建请求
|
||||
* @param event 人生事件
|
||||
* @return 格式化的输入字符串
|
||||
*/
|
||||
private String assembleHealingInput(LifeEventCreateRequest request) {
|
||||
private String assembleHealingInput(LifeEvent event) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
// 标题
|
||||
if (StringUtils.hasText(request.getTitle())) {
|
||||
sb.append("【事件标题】").append(request.getTitle()).append("\n");
|
||||
if (StringUtils.hasText(event.getTitle())) {
|
||||
sb.append("【事件标题】").append(event.getTitle()).append("\n");
|
||||
}
|
||||
|
||||
// 发生时间
|
||||
if (StringUtils.hasText(request.getEventDate())) {
|
||||
sb.append("【发生时间】").append(request.getEventDate()).append("\n");
|
||||
if (!ObjectUtils.isEmpty(event.getEventDate())) {
|
||||
sb.append("【发生时间】").append(event.getEventDate()).append("\n");
|
||||
}
|
||||
|
||||
// 经历详解
|
||||
if (StringUtils.hasText(request.getContent())) {
|
||||
sb.append("【经历详解】").append(request.getContent()).append("\n");
|
||||
if (StringUtils.hasText(event.getContent())) {
|
||||
sb.append("【经历详解】").append(event.getContent()).append("\n");
|
||||
}
|
||||
|
||||
|
||||
// 情绪类型
|
||||
if (StringUtils.hasText(request.getEmotionType())) {
|
||||
sb.append("【情绪类型】").append(request.getEmotionType()).append("\n");
|
||||
if (StringUtils.hasText(event.getEmotionType())) {
|
||||
sb.append("【情绪类型】").append(event.getEmotionType()).append("\n");
|
||||
}
|
||||
|
||||
return sb.toString().trim();
|
||||
@@ -258,6 +258,12 @@ public class LifeEventServiceImpl extends ServiceImpl<LifeEventMapper, LifeEvent
|
||||
event.setEmotionScore(BigDecimal.valueOf(request.getEmotionScore()));
|
||||
}
|
||||
|
||||
// 调用Coze AI进行疗愈回复
|
||||
String aiGeneratedContent = generateHealingByAi(event);
|
||||
if (StringUtils.hasText(aiGeneratedContent)) {
|
||||
event.setAiReply(aiGeneratedContent);
|
||||
}
|
||||
|
||||
this.updateById(event);
|
||||
return convertToResponse(event);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user