Просмотр исходного кода

feat(speaking): handle image SSE event in dialogue engine

jimmylee 1 месяц назад
Родитель
Сommit
a9dcc50afd
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      src/views/Editor/EnglishSpeaking/composables/useDialogueEngine.ts

+ 10 - 0
src/views/Editor/EnglishSpeaking/composables/useDialogueEngine.ts

@@ -153,6 +153,9 @@ export function useDialogueEngine() {
           }
         } else if (event.type === 'token') {
           aiMsg.content += event.text
+        } else if (event.type === 'image') {
+          aiMsg.imageUrl = event.url
+          aiMsg.status = 'done'
         } else if (event.type === 'done') {
           aiMsg.status = 'done'
           isComplete.value = event.isComplete
@@ -244,6 +247,9 @@ export function useDialogueEngine() {
           // Skip transcript on regenerate, student message already exists
         } else if (event.type === 'token') {
           aiMsg.content += event.text
+        } else if (event.type === 'image') {
+          aiMsg.imageUrl = event.url
+          aiMsg.status = 'done'
         } else if (event.type === 'done') {
           aiMsg.status = 'done'
           isComplete.value = event.isComplete
@@ -440,6 +446,10 @@ export function useDialogueEngine() {
         else if (data.type === 'token' && aiMsg) {
           aiMsg.content += data.content
         }
+        else if (data.type === 'image' && aiMsg) {
+          aiMsg.imageUrl = data.url
+          aiMsg.status = 'done'
+        }
         else if (data.type === 'done') {
           if (aiMsg) aiMsg.status = 'done'
           else if (studentMsg && studentMsg.status === 'loading') studentMsg.status = 'done'