diff --git a/src/views/AI-new/components/chat-new.vue b/src/views/AI-new/components/chat-new.vue index 2b6316a..cd7024e 100644 --- a/src/views/AI-new/components/chat-new.vue +++ b/src/views/AI-new/components/chat-new.vue @@ -233,7 +233,7 @@ export default { } if (this.single) { // this.$set(this.messages, this.messages.length - 1, { ...this.currentMessage }) - this.$set(this.messages, this.messages.length, this.genMessage = { ...this.currentMessage }) + this.$set(this.messages, this.messages.length - 1, this.genMessage = { ...this.currentMessage }) } else { this.messages.push(this.currentMessage) } @@ -376,7 +376,7 @@ export default { // console.log(this.messages); const chars = Array.from(chunk.answer) - + const isThink = chunk.isThink // 内部递归函数,用于逐字输出当前块 const outputChar = () => { @@ -388,12 +388,11 @@ export default { const char = chars.shift() || '' // this.$set(this.currentMessage, isThink ? 'think' : 'text', this.currentMessage[isThink ? 'think' : 'text'] + char) if (requestIndex === 2) { - console.log('requestIndex === 2', char); - + // console.log('requestIndex === 2', char); this.$set(this.genMessage, 'text', this.genMessage.text + char) // this.messages.splice(this.messages.length - 1, 1, this.genMessage) } if (requestIndex === 1) { - console.log('requestIndex === 1', char); + // console.log('requestIndex === 1', char); this.$set(this.currentMessage, 'text', this.currentMessage.text + char) } @@ -427,6 +426,8 @@ export default { sendMessage() { this.$emit('update:messageStatus', 'send') this.$emit('update:autoScrollEnabled', true) + // 重置索引 + this.requestIndex = 1 this.axiosGetAiChat() }, diff --git a/src/views/AI-new/components/message.vue b/src/views/AI-new/components/message.vue index 01b0331..1166cf2 100644 --- a/src/views/AI-new/components/message.vue +++ b/src/views/AI-new/components/message.vue @@ -20,8 +20,8 @@

- {{ (message) }} - + + {{ filterVisible(message) }}

@@ -89,28 +89,20 @@ export default { }, filterVisible(message) { // if (!message.text.startsWith('<')) { - let text = message.text + let text = message.text.trim() // 如果开头是中文,直接返回 if (new RegExp('^[\u4e00-\u9fa5]+', 'g').test(text)) return text - - text = text.replace(/([^<]*)(?:<\/information>)?/g, '') - text = text.replace(/([^<]*)(?:<\/is_complete>)?/g, '') + + text = text.replace(/([^<]*)(?:<\/information>)?/g, '').trim() + text = text.replace(/([^<]*)(?:<\/is_complete>)?/g, '').trim() // 捕获 不包含 < 的后置标签 span> /span> a - text = text.replace(/^[/]?[a-zA-z0-9]+[]+/g, '') - // 尝试匹配 标签 - text = text.replace(/^<\w+>/g, '') - // <\/?([\w\s]+)?(?!>)$ - text = text.replace(/<\/?([\w\s='"]+)?(?!>)$/g, '') - - text = text.replace(/^\w+/, "") + text = text.replace(/^[/]?[a-zA-z0-9]+[]+/g, '').trim() + // // 尝试匹配 标签 + text = text.replace(/^<\w+>/g, '').trim() + text = text.replace(/^\w+/, "").trim() + text = text.replace(/<\/?([\w\s='"]+)?(?!>)$/gi, '').trim() return text - // } - // 只把 text 标签内容渲染 - // let match = /([^<]*)(?:<\/text>)?/.exec(message.text) - // let text = match ? match[1] : '' - // text = text.replace(/<\/?([\w\s='"]+)?(?!>)$/g, '') - // return text }, showThink(message) { this.$set(message, 'showThink', !message.showThink)