summaryrefslogtreecommitdiffstats
path: root/assets
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2025-02-03 22:35:01 +0800
committerGitHub <noreply@github.com>2025-02-03 22:35:01 +0800
commit700d8a3245f1133c37e035039e511a1e5dce1a5d (patch)
tree7b1b2cf2e816adb0af399c9ca34051d3fcbef47f /assets
parent07e58aaacd8c7f486a0d2a7c8d35a195f27d487e (diff)
downloadaichat-700d8a3245f1133c37e035039e511a1e5dce1a5d.tar.gz
feat: strip reasoning contents (#1141)
Diffstat (limited to 'assets')
-rw-r--r--assets/arena.html22
-rw-r--r--assets/playground.html22
2 files changed, 42 insertions, 2 deletions
diff --git a/assets/arena.html b/assets/arena.html
index 31973eb..2296de2 100644
--- a/assets/arena.html
+++ b/assets/arena.html
@@ -870,6 +870,7 @@
});
}
}
+ sanitizeMessages(messages);
const body = {
model: chat.model,
messages: messages,
@@ -991,6 +992,20 @@
});
}
+ function sanitizeMessages(messages) {
+ let messagesLen = messages.length;
+ for (let i = 0; i < messagesLen; i++) {
+ const message = messages[i];
+ if (typeof message.content === "string" && message.role === "assistant" && i !== messagesLen - 1) {
+ message.content = stripThinkTag(message.content);
+ }
+ }
+ }
+
+ function stripThinkTag(text) {
+ return text.replace(/^\s*<think>([\s\S]*?)<\/think>(\s*|$)/g, '')
+ }
+
function setupMarked() {
const renderer = {
code({ text, lang }) {
@@ -1013,7 +1028,12 @@
name: 'think',
level: 'block',
start(src) {
- return src.indexOf('<think>');
+ const match = /^(\s*)<think>/.exec(src);
+ if (match) {
+ return match[1].length
+ } else {
+ return -1;
+ }
},
tokenizer(src, tokens) {
const rule = /^\s*<think>([\s\S]*?)(<\/think>|$)/;
diff --git a/assets/playground.html b/assets/playground.html
index d038bd1..06e2e62 100644
--- a/assets/playground.html
+++ b/assets/playground.html
@@ -1298,6 +1298,7 @@
messages = [...promptMessages, ...messages];
}
}
+ sanitizeMessages(messages);
const body = {
model: this.settings.model,
messages: messages,
@@ -1458,6 +1459,20 @@
return { system: prompt, cases: [] }
}
+ function sanitizeMessages(messages) {
+ let messagesLen = messages.length;
+ for (let i = 0; i < messagesLen; i++) {
+ const message = messages[i];
+ if (typeof message.content === "string" && message.role === "assistant" && i !== messagesLen - 1) {
+ message.content = stripThinkTag(message.content);
+ }
+ }
+ }
+
+ function stripThinkTag(text) {
+ return text.replace(/^\s*<think>([\s\S]*?)<\/think>(\s*|$)/g, '')
+ }
+
function convertImageToDataURL(imageFile) {
return new Promise((resolve, reject) => {
if (!imageFile) {
@@ -1494,7 +1509,12 @@
name: 'think',
level: 'block',
start(src) {
- return src.indexOf('<think>');
+ const match = /^(\s*)<think>/.exec(src);
+ if (match) {
+ return match[1].length
+ } else {
+ return -1;
+ }
},
tokenizer(src, tokens) {
const rule = /^\s*<think>([\s\S]*?)(<\/think>|$)/;