Commit cd3caa60 authored by alex yao's avatar alex yao

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

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