fix: 解决异常文本异常的问题

This commit is contained in:
huangzhe
2025-07-31 16:52:28 +08:00
parent fa010c914a
commit ad887ced64
2 changed files with 18 additions and 15 deletions

View File

@@ -269,7 +269,7 @@ export default {
const reader = response.body.getReader()
let buffer = ''
while (true) {
try {
// try {
const { done, value } = await reader.read()
if (done) break
buffer += new TextDecoder().decode(value)
@@ -279,10 +279,10 @@ export default {
if (parsed) this.updateMessageContent(parsed, requestIndex)
})
buffer = lines[lines.length - 1] || ''
} catch (error) {
console.error('读取流数据时发生错误:', error)
break
}
// } catch (error) {
// console.error('读取流数据时发生错误:', error)
// break
// }
}
},
parseStreamLine(line) {
@@ -368,15 +368,15 @@ export default {
// 取出一个完整文本块
const chunk = this.typingQueue.shift()
if (chunk.message_id !== this.currentMessageID) {
console.log('message_id !== this.currentMessageID');
typeNextChar()
return
}
// if (chunk.message_id !== this.currentMessageID) {
// console.log('message_id !== this.currentMessageID');
// typeNextChar()
// return
// }
// console.log(this.messages);
const chars = Array.from(chunk.answer)
const isThink = chunk.isThink
// 内部递归函数,用于逐字输出当前块
const outputChar = () => {

View File

@@ -20,9 +20,9 @@
<p v-html="md.render(message.think)" v-if="message.think && message.showThink" class="thinkText" />
</span>
<div style="width: 100%">
<!-- {{ (message) }} -->
{{ filterVisible(message) }}
<!-- <hr> -->
<!-- {{ (message) }}
<hr>
{{ filterVisible(message) }} -->
<p v-html="render(message)" class="render-container"></p>
<span class="speakLoadingToast pv10" v-if="!filterVisible(message)">
<van-loading type="spinner" :color="primaryColor" size="20px" />
@@ -92,7 +92,7 @@ export default {
let text = message.text.trim()
// 如果开头是中文,直接返回
if (new RegExp('^[\u4e00-\u9fa5]+', 'g').test(text)) return text
text = text.replace(/<information>([^<]*)(?:<\/information>)?/g, '').trim()
text = text.replace(/<is_complete>([^<]*)(?:<\/is_complete>)?/g, '').trim()
@@ -102,6 +102,9 @@ export default {
text = text.replace(/^<\w+>/g, '').trim()
text = text.replace(/^\w+/, "").trim()
text = text.replace(/<\/?([\w\s='"]+)?(?!>)$/gi, '').trim()
// console.log(`text`, text[text.length - 1]);
console.log(`kjlasf dsadfjkls`, text[text.length - 1]);
return text
},
showThink(message) {