Skip to content

Commit 7402727

Browse files
committed
webui: format+qol
1 parent 77c08a8 commit 7402727

File tree

3 files changed

+20
-14
lines changed

3 files changed

+20
-14
lines changed

examples/server/public/index.html.gz

123 Bytes
Binary file not shown.

examples/server/webui/index.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,11 @@ <h3 class="text-lg font-bold mb-6">Settings</h3>
261261
<span v-if="msg.content === null" class="loading loading-dots loading-md"></span>
262262
<!-- render message as markdown -->
263263
<div v-else dir="auto">
264-
<details v-if="msg.role === 'assistant' && splitMsgContent.cot" class="collapse bg-base-200" :open="isGenerating">
265-
<summary class="collapse-title">Reasoning?</summary>
264+
<details v-if="msg.role === 'assistant' && splitMsgContent.cot" class="collapse bg-base-200" :open="splitMsgContent.isThinking">
265+
<summary class="collapse-title text-xl font-medium">
266+
<span v-if="splitMsgContent.isThinking">Thinking<span class="loading loading-dots loading-md" style="vertical-align: middle;"></span></span>
267+
<span v-else >Thought Process</span>
268+
</summary>
266269
<vue-markdown :source="splitMsgContent.cot" dir="auto" class="collapse-content"></vue-markdown>
267270
</details>
268271
<vue-markdown :source="splitMsgContent.content"></vue-markdown>

examples/server/webui/src/main.js

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -191,24 +191,27 @@ const MessageBubble = defineComponent({
191191
},
192192
splitMsgContent() {
193193
const content = this.msg.content;
194-
if (this.msg.role !== 'assistant'){
195-
return {content};
194+
if (this.msg.role !== "assistant") {
195+
return { content };
196196
}
197-
let actualContent = '';
198-
let cot = '';
199-
let thinkSplit = content.split("<think>",2);
197+
let actualContent = "";
198+
let cot = "";
199+
let isThinking = false;
200+
let thinkSplit = content.split("<think>", 2);
200201
actualContent += thinkSplit[0];
201-
while (thinkSplit[1]!==undefined){
202+
while (thinkSplit[1] !== undefined) {
202203
// <think> tag found
203-
thinkSplit = thinkSplit[1].split("</think>",2);
204-
cot+=thinkSplit[0];
205-
if(thinkSplit[1]!==undefined){
204+
thinkSplit = thinkSplit[1].split("</think>", 2);
205+
cot += thinkSplit[0];
206+
isThinking = true;
207+
if (thinkSplit[1] !== undefined) {
206208
// </think> closing tag found
207-
thinkSplit = thinkSplit[1].split("<think>",2);
208-
actualContent+=thinkSplit[0];
209+
isThinking = false;
210+
thinkSplit = thinkSplit[1].split("<think>", 2);
211+
actualContent += thinkSplit[0];
209212
}
210213
}
211-
return {content : actualContent, cot };
214+
return { content: actualContent, cot , isThinking};
212215
},
213216
},
214217
methods: {

0 commit comments

Comments
 (0)