Commit a116f2dc authored by alex yao's avatar alex yao

fix(dify-chat): 优化think标签内容解析逻辑

- 修复了think标签结束后的推理内容截取问题
- 添加了对think标签前后内容的分别处理
- 改进了消息构建器的内容拼接逻辑
- 确保think标签后的内容正确设置为message字段
- 优化了推理内容和消息内容的分离处理
- 修复了标签解析过程中的字符串索引计算问题
parent cd3caa60
......@@ -203,9 +203,23 @@ public class DifyChatServiceImpl implements DifyChatService {
largeModelDemandResult.setMessage(content);
}
} else {
largeModelDemandResult.setReasoningContent(
content.replaceFirst(THINK_END_TAG, StringUtils.EMPTY));
isThink = !content.contains(THINK_END_TAG);
if (content.contains(THINK_END_TAG)) {
String reasoningPart = content.substring(0, content.indexOf(THINK_END_TAG));
if (StringUtils.isNotEmpty(reasoningPart)) {
reasoningContentBuilder.append(reasoningPart);
largeModelDemandResult.setReasoningContent(reasoningPart);
}
// 处理think标签之后的内容
String afterThinkTag = content.substring(content.indexOf(THINK_END_TAG) + THINK_END_TAG.length());
if (StringUtils.isNotEmpty(afterThinkTag)) {
messageBuilder.append(afterThinkTag);
largeModelDemandResult.setMessage(afterThinkTag);
}
isThink = false;
} else {
reasoningContentBuilder.append(content);
largeModelDemandResult.setReasoningContent(content);
}
}
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