fix:【ai 大模型】模型返回异常时,空消息进行删除;取消时,也进行消息存储
This commit is contained in:
@@ -270,9 +270,29 @@ public class AiChatMessageServiceImpl implements AiChatMessageService {
|
|||||||
}).doOnError(throwable -> {
|
}).doOnError(throwable -> {
|
||||||
log.error("[sendChatMessageStream][userId({}) sendReqVO({}) 发生异常]", userId, sendReqVO, throwable);
|
log.error("[sendChatMessageStream][userId({}) sendReqVO({}) 发生异常]", userId, sendReqVO, throwable);
|
||||||
// 忽略租户,因为 Flux 异步无法透传租户
|
// 忽略租户,因为 Flux 异步无法透传租户
|
||||||
TenantUtils.executeIgnore(() -> chatMessageMapper.updateById(
|
TenantUtils.executeIgnore(() -> {
|
||||||
new AiChatMessageDO().setId(assistantMessage.getId()).setContent(throwable.getMessage())
|
// 如果有内容,则更新内容
|
||||||
.setReasoningContent(reasoningContentBuffer.toString())));
|
if (StrUtil.isNotEmpty(contentBuffer)) {
|
||||||
|
chatMessageMapper.updateById(new AiChatMessageDO().setId(assistantMessage.getId())
|
||||||
|
.setContent(contentBuffer.toString()).setReasoningContent(reasoningContentBuffer.toString()));
|
||||||
|
} else {
|
||||||
|
// 否则,则进行删除
|
||||||
|
chatMessageMapper.deleteById(assistantMessage.getId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).doOnCancel(() -> {
|
||||||
|
log.info("[sendChatMessageStream][userId({}) sendReqVO({}) 取消请求]", userId, sendReqVO);
|
||||||
|
// 忽略租户,因为 Flux 异步无法透传租户
|
||||||
|
TenantUtils.executeIgnore(() -> {
|
||||||
|
// 如果有内容,则更新内容
|
||||||
|
if (StrUtil.isNotEmpty(contentBuffer)) {
|
||||||
|
chatMessageMapper.updateById(new AiChatMessageDO().setId(assistantMessage.getId())
|
||||||
|
.setContent(contentBuffer.toString()).setReasoningContent(reasoningContentBuffer.toString()));
|
||||||
|
} else {
|
||||||
|
// 否则,则进行删除
|
||||||
|
chatMessageMapper.deleteById(assistantMessage.getId());
|
||||||
|
}
|
||||||
|
});
|
||||||
}).onErrorResume(error -> Flux.just(error(ErrorCodeConstants.CHAT_STREAM_ERROR)));
|
}).onErrorResume(error -> Flux.just(error(ErrorCodeConstants.CHAT_STREAM_ERROR)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,8 +85,8 @@ public class TongYiChatModelTests {
|
|||||||
List<Message> messages = new ArrayList<>();
|
List<Message> messages = new ArrayList<>();
|
||||||
messages.add(new UserMessage("详细分析下,如何设计一个电商系统?"));
|
messages.add(new UserMessage("详细分析下,如何设计一个电商系统?"));
|
||||||
DashScopeChatOptions options = DashScopeChatOptions.builder()
|
DashScopeChatOptions options = DashScopeChatOptions.builder()
|
||||||
// .withModel("qwen3-235b-a22b-thinking-2507")
|
.withModel("qwen3-235b-a22b-thinking-2507")
|
||||||
.withModel("qwen-max-2025-01-25")
|
// .withModel("qwen-max-2025-01-25")
|
||||||
.withEnableThinking(true) // 必须设置,否则会报错
|
.withEnableThinking(true) // 必须设置,否则会报错
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user