diff --git a/src/pages/llmodels/style/instance-item.less b/src/pages/llmodels/style/instance-item.less index 07ee6d42..5b15f65e 100644 --- a/src/pages/llmodels/style/instance-item.less +++ b/src/pages/llmodels/style/instance-item.less @@ -15,6 +15,7 @@ display: flex; justify-content: flex-start; align-items: center; + color: var(--ant-blue-5); .text { display: none; diff --git a/src/pages/playground/components/multiple-chat/think-parser.ts b/src/pages/playground/components/multiple-chat/think-parser.ts index c447875d..5318068b 100644 --- a/src/pages/playground/components/multiple-chat/think-parser.ts +++ b/src/pages/playground/components/multiple-chat/think-parser.ts @@ -13,32 +13,43 @@ class ThinkParser { parse(chunk: string) { while (this.lastCheckedIndex < chunk.length) { + let startIndex = chunk.indexOf('', this.lastCheckedIndex); + let endIndex = chunk.indexOf('', this.lastCheckedIndex); + if (!this.collecting) { - let startIndex = chunk.indexOf('', this.lastCheckedIndex); - if (startIndex !== -1) { + if (endIndex !== -1 && (startIndex === -1 || endIndex < startIndex)) { + // 1 发现 ``,但之前没有 ``: + // 将 `result` + `` 之前的内容作为 `thought` + this.thought = + this.result + chunk.substring(this.lastCheckedIndex, endIndex); + this.result = ''; // **清空 result** + this.lastCheckedIndex = endIndex + 8; // 跳过 `` + } else if (startIndex !== -1) { + // 2 发现 ``,进入思考模式: this.result += chunk.substring(this.lastCheckedIndex, startIndex); this.collecting = true; - this.lastCheckedIndex = startIndex + 7; + this.lastCheckedIndex = startIndex + 7; // 跳过 `` } else { + // 3 没有 `` 也没有 ``,直接追加到 `result` this.result += chunk.substring(this.lastCheckedIndex); this.lastCheckedIndex = chunk.length; - break; } } else { - let endIndex = chunk.indexOf('', this.lastCheckedIndex); if (endIndex !== -1) { + // 4 发现 ``,结束思考模式: this.thought += chunk.substring(this.lastCheckedIndex, endIndex); + this.collecting = false; - this.lastCheckedIndex = endIndex + 8; + this.lastCheckedIndex = endIndex + 8; // 跳过 `` } else { + // 5 仍在思考模式中,追加到 `thought` this.thought += chunk.substring(this.lastCheckedIndex); this.lastCheckedIndex = chunk.length; - break; } } } - return { thought: this.thought.trimStart(), result: this.result }; + return { thought: this.thought.trim(), result: this.result }; } reset() {