diff options
| author | sigoden <sigoden@gmail.com> | 2025-02-03 22:35:01 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-03 22:35:01 +0800 |
| commit | 700d8a3245f1133c37e035039e511a1e5dce1a5d (patch) | |
| tree | 7b1b2cf2e816adb0af399c9ca34051d3fcbef47f /assets | |
| parent | 07e58aaacd8c7f486a0d2a7c8d35a195f27d487e (diff) | |
| download | aichat-700d8a3245f1133c37e035039e511a1e5dce1a5d.tar.gz | |
feat: strip reasoning contents (#1141)
Diffstat (limited to 'assets')
| -rw-r--r-- | assets/arena.html | 22 | ||||
| -rw-r--r-- | assets/playground.html | 22 |
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>|$)/; |
