添加对于 think 标签的解析

This commit is contained in:
Wenjie Zhang 2025-04-25 10:14:31 +08:00
parent c4d9d06d7c
commit 205bec89cb
2 changed files with 38 additions and 3 deletions

View File

@ -347,7 +347,42 @@ const updateMessage = (info) => {
try {
// content
if (info.content != null && info.content !== '') {
msg.content += info.content;
// <think>
if (info.content.includes('<think>') && !msg.isCollectingThinking) {
//
msg.isCollectingThinking = true;
//
const parts = info.content.split('<think>');
msg.content += parts[0]; //
//
if (parts.length > 1) {
if (parts[1].includes('</think>')) {
const thinkParts = parts[1].split('</think>');
msg.reasoning_content = (msg.reasoning_content || '') + thinkParts[0];
msg.content += thinkParts[1]; //
msg.isCollectingThinking = false;
} else {
msg.reasoning_content = (msg.reasoning_content || '') + parts[1];
}
}
}
//
else if (msg.isCollectingThinking) {
if (info.content.includes('</think>')) {
const parts = info.content.split('</think>');
msg.reasoning_content = (msg.reasoning_content || '') + parts[0];
msg.content += parts[1]; //
msg.isCollectingThinking = false;
} else {
msg.reasoning_content = (msg.reasoning_content || '') + info.content;
}
}
//
else {
msg.content += info.content;
}
}
// null/undefined

View File

@ -15,7 +15,7 @@
<caret-right-outlined :rotate="isActive ? 90 : 0" />
</template>
<a-collapse-panel key="show" :header="message.status=='reasoning' ? '正在思考...' : '推理过程'" class="reasoning-header">
<p class="reasoning-content">{{ message.reasoning_content }}</p>
<p class="reasoning-content">{{ message.reasoning_content.trim() }}</p>
</a-collapse-panel>
</a-collapse>
</div>
@ -56,7 +56,7 @@
<!-- 工具调用 (AgentView特有) -->
<slot v-else-if="message.toolCalls && Object.keys(message.toolCalls).length > 0" name="tool-calls"></slot>
<div v-else class="err-msg" @click="$emit('retry')">
<div v-else-if="!isProcessing" class="err-msg" @click="$emit('retry')">
请求错误请重试{{ message.message }}
</div>