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() {