ソースを参照

feat(aiChat): add support for generate poll and generate photo functions

add handling for generate_poll and generate_photo gType in generate function, implement corresponding AI call logic, page creation and frame rendering for both new features
lsc 3 週間 前
コミット
c0706d8ef0
1 ファイル変更43 行追加1 行削除
  1. 43 1
      src/components/CollapsibleToolbar/componets/aiChat.vue

+ 43 - 1
src/components/CollapsibleToolbar/componets/aiChat.vue

@@ -423,7 +423,7 @@ const sendAction = async (action: string) => {
       gType.value = 'chat'
     }
 
-    // generate_qa // generate_choice_question
+    // generate_qa // generate_choice_question // generate_photo // generate_poll
     if (gType.value !== 'chat') {
       messages.value.at(-1).jsonData = {
         gType: gType.value,
@@ -550,6 +550,48 @@ const generate = (message: ChatMessage) => {
       })
     })
   }
+  else if (message.jsonData?.gType === 'generate_poll') {
+    console.log(message.jsonData?.gType)
+    const prompt = [
+      {
+        role: 'user',
+        content: `这是用户输入的内容:“${message.aiContent}”,根据用户输入的内容,生成投票的json。输出一个json格式的回复,格式如下:{"testCount":1,"testTitle":"","testJson":[{"id":"7de1fdb4-bec3-4324-8986-4623f838e3d7","type":"2","teststitle":"1+1?","checkList":["1","2","3"],"timuList":[],"answer":[],"userAnswer":[]]}。`, // 输出语言为${lang.lang === 'en' ? '英文' : lang.lang === 'hk' ? '繁体中文' : '简体中文'}
+      },
+    ]
+    chat_no_stream2(prompt, { type: 'json_object' }).then(async (res: any) => {
+      console.log('投票', JSON.parse(res))
+      gType.value = 'chat'
+      setPageId(78, res).then(res => {
+        const baseUrl = setUrl()
+        const url = `${baseUrl}/pbl-teacher-table/dist/workPage.html#/setWorkPage?id=${res}&type=${78}`
+        createSlide()
+        createFrameElement(url, 78)
+        message.gLoading = false
+        message.jsonData.isGenerate = true
+      })
+    })
+  }
+  else if (message.jsonData?.gType === 'generate_photo') {
+    console.log(message.jsonData?.gType)
+    const prompt = [
+      {
+        role: 'user',
+        content: `这是用户输入的内容:“${message.aiContent}”,根据用户输入的内容,生成拍照的json。输出一个json格式的回复,格式如下:{"answerQ":"问题","answer":"","fileList":[],"imageList":[],"evaluationCriteria":"评价标准"}。输出语言为${lang.lang === 'en' ? '英文' : lang.lang === 'hk' ? '繁体中文' : '简体中文'}`,
+      },
+    ]
+    chat_no_stream2(prompt, { type: 'json_object' }).then((res: any) => {
+      console.log('拍照', JSON.parse(res))
+      gType.value = 'chat'
+      setPageId(79, res).then(res => {
+        const baseUrl = setUrl()
+        const url = `${baseUrl}/pbl-teacher-table/dist/workPage.html#/setWorkPage?id=${res}&type=${79}`
+        createSlide()
+        createFrameElement(url, 79)
+        message.gLoading = false
+        message.jsonData.isGenerate = true
+      })
+    })
+  }
 }
 
 const setPageId = async (tool: any, json: any) => {