Commit cd3caa60 authored by alex yao's avatar alex yao

refactor(DifyChatService): 重构深度思考内容解析逻辑

- 移除独立的 parseDeepThinkingContent 方法,将其逻辑内联到 responseMess 方法中
- 简化思考标记的开始和结束标签处理流程
- 优化推理内容构建过程,直接在事件响应中处理思考内容
- 修复原有的逻辑判断条件,确保消息和推理内容正确分离
- 减少不必要的字符串操作和条件判断分支
- 提高代码可读性和维护性
parent 56bd131e
...@@ -189,45 +189,27 @@ public class DifyChatServiceImpl implements DifyChatService { ...@@ -189,45 +189,27 @@ public class DifyChatServiceImpl implements DifyChatService {
boolean isThink = false; boolean isThink = false;
/**
* 解析深度思考文本内容
* 处理思考标记的开始和结束标签,提取纯文本内容
*
* @param content 原始内容
* @return 解析后的文本内容,如果内容不完整则返回空字符串
*/
String parseDeepThinkingContent(String content) {
if (!isThink) {
if (content.contains(THINK_START_TAG)) {
isThink = true;
return content.replaceFirst(THINK_START_TAG, StringUtils.EMPTY);
}
return content;
} else {
if (content.contains(THINK_END_TAG)) {
isThink = false;
return content.replaceFirst(THINK_END_TAG, StringUtils.EMPTY);
}
return StringUtils.EMPTY;
}
}
void responseMess(MessageEvent event) throws IOException { void responseMess(MessageEvent event) throws IOException {
if (StringUtils.isNotEmpty(event.getAnswer())) { if (StringUtils.isNotEmpty(event.getAnswer())) {
String think = parseDeepThinkingContent(event.getAnswer());
LargeModelDemandResult largeModelDemandResult = new LargeModelDemandResult(); LargeModelDemandResult largeModelDemandResult = new LargeModelDemandResult();
if (isThink || StringUtils.isNotBlank(think)) { if (StringUtils.isNotEmpty(event.getAnswer())) {
largeModelDemandResult.setReasoningContent(think); String content = event.getAnswer();
reasoningContentBuilder.append(think); if (!isThink) {
} else if (!isThink || StringUtils.isNotBlank(think)) { if (content.contains(THINK_START_TAG)) {
largeModelDemandResult.setMessage(think); isThink = true;
reasoningContentBuilder.append(think); largeModelDemandResult.setReasoningContent(
} else { content.replaceFirst(THINK_START_TAG, StringUtils.EMPTY));
largeModelDemandResult.setMessage(event.getAnswer()); } else {
messageBuilder.append(event.getAnswer()); largeModelDemandResult.setMessage(content);
}
} else {
largeModelDemandResult.setReasoningContent(
content.replaceFirst(THINK_END_TAG, StringUtils.EMPTY));
isThink = !content.contains(THINK_END_TAG);
}
largeModelDemandResult.setCode("0");
sseUtil.send(JsonUtils.serialize(largeModelDemandResult));
} }
largeModelDemandResult.setCode("0");
sseUtil.send(JsonUtils.serialize(largeModelDemandResult));
} }
} }
......
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