Explorar el Código

1、课程问题弹框ai对话新增指定回答内容

liyanbo hace 8 meses
padre
commit
6647fe7076

+ 2 - 1
src/api/questions.js

@@ -38,7 +38,8 @@ export async function sendChatMessageStream (
     body: JSON.stringify({
       conversationId,
       content,
-      useContext: enableContext
+      useContext: enableContext,
+      contentAnswer
     }),
     onmessage: onMessage,
     onerror: onError,

+ 9 - 2
src/components/videopage/DialogComponents.vue

@@ -242,6 +242,8 @@ const handleAIClick = async () => {
     sendMessage()
 
     prompt.value = ''
+
+    console.log("handleAIClick", props.currentQuestion.ccAiAnswer)
     // 执行发送
     await doSendMessageStream({
       conversationId: activeConversationId.value,
@@ -504,7 +506,7 @@ const doSendMessageStream = async userMessage => {
 
     // 2. 发送 event stream
     let isFirstChunk = true // 是否是第一个 chunk 消息段
-    console.log("userMessage", userMessage)
+    console.log("doSendMessageStream-userMessage", userMessage)
     await sendChatMessageStream(
       userMessage.conversationId,
       userMessage.content,
@@ -519,6 +521,7 @@ const doSendMessageStream = async userMessage => {
         }
 
         if (data.eventType === 'TEXT') {
+          console.log("========",data)
 
           // 如果内容为空,就不处理。
           if (data.receive?.content === '') {
@@ -543,7 +546,8 @@ const doSendMessageStream = async userMessage => {
               }
             }
           }
-        } else if (data.eventType === 'AUDIO') {
+        }
+        if (data.eventType === 'AUDIO') {
           // 处理音频消息
           await playAudioChunk(data.audioData);
         }
@@ -558,6 +562,7 @@ const doSendMessageStream = async userMessage => {
         throw error
       },
       () => {
+        console.log(`结束对话! `)
         stopStream()
       }
     )
@@ -577,6 +582,8 @@ const stopStream = async () => {
   stopPlayback();
   // 设置为 false
   conversationInProgress.value = false
+
+  console.log(`结束对话!更改状态: `,conversationInProgress.value)
 }
 
 /** 处理 prompt 输入变化 */

+ 0 - 2
src/views/AIDevelop.vue

@@ -432,8 +432,6 @@ onMounted(async () => {
     try {
       // 取接口课程数据
       const res = await ClassType(typeIdParam)
-      console.log(res);
-      
       courseList.value = res.data
       // 初始化已观看课程ID
       const savedWatchedIds = localStorage.getItem('watchedCourseIds')

+ 11 - 4
src/views/AIQuestions.vue

@@ -253,7 +253,7 @@ const initSpeechRecognition = () => {
     }
   };
 
-  // 识别器结束时清除定时器
+  //识别器结束时清除定时器
   instance.onend = () => {
     clearInterval(countdownTimer.value);
     isRecording.value = false;
@@ -264,7 +264,7 @@ const initSpeechRecognition = () => {
     console.error('语音识别错误:', event.error);
     clearInterval(countdownTimer.value); // 出错时清除定时器
     isRecording.value = false;
-    alert("语音输入失败,请重试");
+    Message().error('语音输入失败,请重试!', true)
     countdown.value = 0;
   };
 
@@ -421,6 +421,7 @@ const doSendMessage = async (content) => {
 
 
 import { useAudioPlayer } from '@/api/tts/useAudioPlayer';
+import {Message} from "@/utils/message/Message.js";
 
 // 解构 stopPlayback 方法
 const { playAudioChunk,stopPlayback } = useAudioPlayer();
@@ -453,7 +454,7 @@ const doSendMessageStream = async (userMessage) => {
 
     // 1.2 开始滚动
     textRoll();
-    
+
     // 2. 发送 event stream
     let isFirstChunk = true; // 是否是第一个 chunk 消息段
 
@@ -501,10 +502,14 @@ const doSendMessageStream = async (userMessage) => {
         throw error;
       },
       () => {
+        console.log(`结束对话! `)
         stopStream();
       }
     );
-  } catch {}
+  } catch (error) {
+    console.error('发送消息失败:', error)
+    stopStream()
+  }
 };
 
 /** 停止 stream 流式调用 */
@@ -515,6 +520,8 @@ const stopStream = async () => {
   }
   // 设置为 false
   conversationInProgress.value = false;
+
+  console.log(`结束对话!更改状态: `,conversationInProgress.value)
 };
 
 /**