|
@@ -4,7 +4,9 @@
|
|
|
:before-close="handleClose" class="pub_dialog_diy" v-loading="loading">
|
|
|
<div>
|
|
|
<div class="ex_box">
|
|
|
- 例子:请你以富文本的形式给我出三个关于小学数学单位换算的选择题,每个选择题选项不少于4个,需要答案,但不需要解释,符号请使用中文的
|
|
|
+ <span>例子:</span>
|
|
|
+ <el-button type="primary" size="mini" @click="checkExample('1')">选择题</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="checkExample('2')">问答题</el-button>
|
|
|
</div>
|
|
|
<div class="ac_box">
|
|
|
<el-input v-model="text" placeholder="请在这里输入要发送的消息" size="normal" type="textarea" resize="none"
|
|
@@ -13,7 +15,7 @@
|
|
|
</div>
|
|
|
<div class="ac_content" v-if="aiCreate.length">
|
|
|
<div class="title">生成内容:</div>
|
|
|
- <div class="box">
|
|
|
+ <div class="box" v-if="aiType == 1">
|
|
|
<div v-for="(item, index) in aiCreate" :key="index" class="choice">
|
|
|
<div class="title">{{ `${index + 1}:${item.title}` }}</div>
|
|
|
<div class="options">
|
|
@@ -22,6 +24,12 @@
|
|
|
<div class="answer">{{ `答案:${item.answer}` }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="box" v-if="aiType == 3">
|
|
|
+ <div v-for="(item, index) in aiCreate" :key="index" class="choice">
|
|
|
+ <div class="title">{{ `${index + 1}:${item.title}` }}</div>
|
|
|
+ <div class="answer">{{ `答案:${item.answer}` }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div slot="footer">
|
|
@@ -46,6 +54,14 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ example: {
|
|
|
+ '1':{
|
|
|
+ 'title':'请你以富文本的形式给我出三个关于小学数学单位换算的选择题,每个选择题选项不少于4个,需要答案,但不需要解释,符号请使用中文的'
|
|
|
+ },
|
|
|
+ '2':{
|
|
|
+ 'title':'请你以富文本的形式给我出三个关于三年级语文知识问答的问答题,需要答案,但不需要解释'
|
|
|
+ }
|
|
|
+ },
|
|
|
text: "",
|
|
|
aiCreate: [],
|
|
|
aiType: "",
|
|
@@ -60,6 +76,9 @@ export default {
|
|
|
close() {
|
|
|
this.$emit('update:aiDialogVisible', false)
|
|
|
},
|
|
|
+ checkExample(type){
|
|
|
+ this.text = this.example[type].title
|
|
|
+ },
|
|
|
guid() {
|
|
|
var _num,
|
|
|
i,
|
|
@@ -79,15 +98,16 @@ export default {
|
|
|
this.$message.error("请输入要发送的消息")
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+ // else if (this.text.indexOf("添加文档") !== -1) {
|
|
|
+ // this.aiType = 4
|
|
|
+ // }
|
|
|
if (this.text.indexOf("选择题") !== -1) {
|
|
|
this.aiType = 1
|
|
|
} else if (this.text.indexOf("问答题") !== -1) {
|
|
|
- this.aiType = 2
|
|
|
- } else if (this.text.indexOf("填空题") !== -1) {
|
|
|
this.aiType = 3
|
|
|
- } else if (this.text.indexOf("添加文档") !== -1) {
|
|
|
- this.aiType = 4
|
|
|
+ }else {
|
|
|
+ this.$message.error("生成的文字中要包含选择题或者问答题才能生成题目哦,请重新编辑下吧")
|
|
|
+ return
|
|
|
}
|
|
|
this.loading = true
|
|
|
let param = {
|
|
@@ -131,6 +151,12 @@ export default {
|
|
|
},
|
|
|
generate2(aiReturn) {
|
|
|
this.loading = true
|
|
|
+ let content = ''
|
|
|
+ if(this.aiType == 1){
|
|
|
+ content = `${JSON.stringify(aiReturn)},要求返回格式是Array [{"title":"",options:[],answer:[]}]`
|
|
|
+ }else if(this.aiType == 3) {
|
|
|
+ content = `${JSON.stringify(aiReturn)},要求返回格式是Array [{title: "",answer: ""}]`
|
|
|
+ }
|
|
|
let param = {
|
|
|
model: "gpt-3.5-turbo",
|
|
|
temperature: 0,
|
|
@@ -141,7 +167,7 @@ export default {
|
|
|
messages: [
|
|
|
{
|
|
|
role: "user",
|
|
|
- content: `${JSON.stringify(aiReturn)},要求返回格式是Array [{"title":"",options:[],answer:[]}]`
|
|
|
+ content: content
|
|
|
},
|
|
|
],
|
|
|
uid: this.guid(),
|
|
@@ -159,7 +185,11 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
let aiCreate = res.data.FunctionResponse.choices[0].message.content;
|
|
|
- aiCreate = JSON.parse(aiCreate)
|
|
|
+ try {
|
|
|
+ aiCreate = JSON.parse(aiCreate)
|
|
|
+ } catch (error) {
|
|
|
+ this.generate2(aiReturn)
|
|
|
+ }
|
|
|
console.log(aiCreate)
|
|
|
this.aiCreate = aiCreate;
|
|
|
this.loading = false
|
|
@@ -175,8 +205,8 @@ export default {
|
|
|
this.$message.error("请先创建Ai内容!");
|
|
|
return;
|
|
|
}
|
|
|
- if(this.aiType !== 1){
|
|
|
- this.$message.error("目前只支持选择题的创建!输入内容必须包含选择题三个字!");
|
|
|
+ if(this.aiType !== 1 && this.aiType !== 3){
|
|
|
+ this.$message.error("目前只支持选择题/问答题的创建!输入内容必须包含选择题/问答题!");
|
|
|
return;
|
|
|
}
|
|
|
var json = JSON.parse(JSON.stringify(this.aiJson))
|
|
@@ -217,6 +247,20 @@ export default {
|
|
|
}
|
|
|
)
|
|
|
}
|
|
|
+ }else if(this.aiType === 3){
|
|
|
+ for (var i = 0; i < this.aiCreate.length; i++) {
|
|
|
+ array.push(
|
|
|
+ {
|
|
|
+ json: {
|
|
|
+ answer: this.aiCreate[i].answer,
|
|
|
+ title: this.aiCreate[i].title,
|
|
|
+ type: 1
|
|
|
+ },
|
|
|
+ ttype: 1,
|
|
|
+ type: 3
|
|
|
+ }
|
|
|
+ )
|
|
|
+ }
|
|
|
}
|
|
|
if (!json.length || json[0].ttype == 1) {
|
|
|
json = [...json, ...array]
|