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 {
boolean isThink = false;
/**
* 解析深度思考文本内容
* 处理思考标记的开始和结束标签,提取纯文本内容
*
* @param content 原始内容
* @return 解析后的文本内容,如果内容不完整则返回空字符串
*/
String parseDeepThinkingContent(String content) {
void responseMess(MessageEvent event) throws IOException {
if (StringUtils.isNotEmpty(event.getAnswer())) {
LargeModelDemandResult largeModelDemandResult = new LargeModelDemandResult();
if (StringUtils.isNotEmpty(event.getAnswer())) {
String content = event.getAnswer();
if (!isThink) {
if (content.contains(THINK_START_TAG)) {
isThink = true;
return content.replaceFirst(THINK_START_TAG, StringUtils.EMPTY);
}
return content;
largeModelDemandResult.setReasoningContent(
content.replaceFirst(THINK_START_TAG, StringUtils.EMPTY));
} else {
if (content.contains(THINK_END_TAG)) {
isThink = false;
return content.replaceFirst(THINK_END_TAG, StringUtils.EMPTY);
largeModelDemandResult.setMessage(content);
}
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 {
largeModelDemandResult.setMessage(event.getAnswer());
messageBuilder.append(event.getAnswer());
largeModelDemandResult.setReasoningContent(
content.replaceFirst(THINK_END_TAG, StringUtils.EMPTY));
isThink = !content.contains(THINK_END_TAG);
}
largeModelDemandResult.setCode("0");
sseUtil.send(JsonUtils.serialize(largeModelDemandResult));
}
}
}
@Override
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