|
|
@@ -114,6 +114,7 @@ import VoiceInput from '@/components/ai/voice/VoiceInput.vue'
|
|
|
import { marked } from 'marked'
|
|
|
import {CreateDialogue, sendChatMessageStream} from "@/api/questions.js";
|
|
|
import {useAudioPlayer} from "@/api/tts/useAudioPlayer.js";
|
|
|
+import {Message} from "@/utils/message/Message.js";
|
|
|
|
|
|
const { playAudioChunk , stopPlayback, setOnPlaybackComplete } = useAudioPlayer();
|
|
|
|
|
|
@@ -594,7 +595,16 @@ const showQuestAnswerDialogue = () => {
|
|
|
|
|
|
}
|
|
|
|
|
|
+//延时恢复对话,避免立即回复导致对话内容被覆盖
|
|
|
+const delayRecoverQuestDialogue = () => {
|
|
|
+ // Message().error('当前网络无反应,请稍后重试!', true);
|
|
|
+ // 设置默认内容为"让我思考一下..."
|
|
|
+ currentDialogue.value.content = "当前网络无反应,请稍后重试!"
|
|
|
|
|
|
+ setTimeout(() => {
|
|
|
+ recoverQuestDialogue()
|
|
|
+ }, 1500)
|
|
|
+}
|
|
|
|
|
|
/** 回复对话 */
|
|
|
const recoverQuestDialogue = () => {
|
|
|
@@ -626,7 +636,7 @@ const doSendMessageStream = async userMessage => {
|
|
|
// 发送 event stream
|
|
|
let isFirstChunk = true // 是否是第一个 chunk 消息段
|
|
|
await sendChatMessageStream(
|
|
|
- userMessage.conversationId,
|
|
|
+ userMessage.conversationId+22222,
|
|
|
userMessage.content,
|
|
|
userMessage.contentAnswer,
|
|
|
conversationInAbortController.value,
|
|
|
@@ -664,6 +674,8 @@ const doSendMessageStream = async userMessage => {
|
|
|
error => {
|
|
|
console.log(`对话异常! ${error}`)
|
|
|
stopStream()
|
|
|
+
|
|
|
+ delayRecoverQuestDialogue()
|
|
|
// 需要抛出异常,禁止重试
|
|
|
throw error
|
|
|
},
|
|
|
@@ -675,6 +687,7 @@ const doSendMessageStream = async userMessage => {
|
|
|
} catch (error) {
|
|
|
console.error('发送消息失败:', error)
|
|
|
stopStream()
|
|
|
+ delayRecoverQuestDialogue()
|
|
|
}
|
|
|
}
|
|
|
|