|
@@ -919,11 +919,16 @@
|
|
<div class="c_info_title">
|
|
<div class="c_info_title">
|
|
课程目标
|
|
课程目标
|
|
<el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
|
|
<el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
|
|
- <button class="c_pub_button_confirm" style="margin: 0 20px 0 auto;"
|
|
|
|
|
|
+ <button class="c_pub_button_confirm" style="margin: 0px 5px 0px auto;"
|
|
@contextmenu.prevent="openAiDialog(1, 'aitargetTextDetail2',1)"
|
|
@contextmenu.prevent="openAiDialog(1, 'aitargetTextDetail2',1)"
|
|
@click="openAiDialog(2, 'aitargetTextDetail2',1)">生成目标</button>
|
|
@click="openAiDialog(2, 'aitargetTextDetail2',1)">生成目标</button>
|
|
- </el-tooltip>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ <el-tooltip effect="light" content="右键单击可配置提示词" placement="bottom">
|
|
|
|
+ <button class="c_pub_button_confirm" style="margin: 0 20px 0 0;"
|
|
|
|
+ @contextmenu.prevent="openAiDialog(1, 'aitargetTextDetail3',1)"
|
|
|
|
+ @click="openAiDialog(2, 'aitargetTextDetail3',1)">生成目标2</button>
|
|
|
|
+ </el-tooltip>
|
|
|
|
+ </div>
|
|
<div style="width: 100%; padding: 0px 20px; box-sizing: border-box">
|
|
<div style="width: 100%; padding: 0px 20px; box-sizing: border-box">
|
|
<div style="width: calc(100%);" class='op_task_box'>
|
|
<div style="width: calc(100%);" class='op_task_box'>
|
|
<textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="targetCourseText2"
|
|
<textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="targetCourseText2"
|
|
@@ -5000,6 +5005,7 @@
|
|
<aiTips ttitle="基础资料" title="提取目标" :detail="aiJson.aiTarget" pan="aiTarget" @setAiJson="setAiJson" v-if="!yiKeTemplateArray.includes(templateid)"/>
|
|
<aiTips ttitle="基础资料" title="提取目标" :detail="aiJson.aiTarget" pan="aiTarget" @setAiJson="setAiJson" v-if="!yiKeTemplateArray.includes(templateid)"/>
|
|
<aiTips ttitle="基础资料" title="智能检索资料" :detail="aiJson.aiSearchFile" pan="aiSearchFile" @setAiJson="setAiJson" v-if="!yiKeTemplateArray.includes(templateid)"/>
|
|
<aiTips ttitle="基础资料" title="智能检索资料" :detail="aiJson.aiSearchFile" pan="aiSearchFile" @setAiJson="setAiJson" v-if="!yiKeTemplateArray.includes(templateid)"/>
|
|
<aiTips ttitle="基础资料" title="课程描述优化" :detail="aiJson.aiDetail" pan="aiDetail" @setAiJson="setAiJson" />
|
|
<aiTips ttitle="基础资料" title="课程描述优化" :detail="aiJson.aiDetail" pan="aiDetail" @setAiJson="setAiJson" />
|
|
|
|
+ <!-- <aiTips ttitle="基础资料" title="目标文件检索" :detail="aiJson.aiTargetGet" pan="aiTargetGet" @setAiJson="setAiJson" v-if="!yiKeTemplateArray.includes(templateid)"/> -->
|
|
<aiTips ttitle="基础资料" title="生成目标" :detail="aiJson.aiTarget2" pan="aiTarget2" @setAiJson="setAiJson" v-if="!yiKeTemplateArray.includes(templateid)"/>
|
|
<aiTips ttitle="基础资料" title="生成目标" :detail="aiJson.aiTarget2" pan="aiTarget2" @setAiJson="setAiJson" v-if="!yiKeTemplateArray.includes(templateid)"/>
|
|
<aiTips ttitle="基础资料" title="生成大纲按钮" :detail="aiJson.aiOutline" pan="aiOutline" @setAiJson="setAiJson" v-if="templateid != '61c628b9-3d96-11ef-b873-005056b86db5' && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'"/>
|
|
<aiTips ttitle="基础资料" title="生成大纲按钮" :detail="aiJson.aiOutline" pan="aiOutline" @setAiJson="setAiJson" v-if="templateid != '61c628b9-3d96-11ef-b873-005056b86db5' && templateid != '4480d65a-1e48-11ef-bee5-005056b86db5' && templateid != 'cf5722a4-401b-11ef-b873-005056b86dc3'"/>
|
|
<aiTips ttitle="课程大纲" title="大纲任务生成" :detail="aiJson.aiOutlineTask" pan="aiOutlineTask" @setAiJson="setAiJson" v-if="templateid == '61c628b9-3d96-11ef-b873-005056b86db5'"/>
|
|
<aiTips ttitle="课程大纲" title="大纲任务生成" :detail="aiJson.aiOutlineTask" pan="aiOutlineTask" @setAiJson="setAiJson" v-if="templateid == '61c628b9-3d96-11ef-b873-005056b86db5'"/>
|
|
@@ -7687,26 +7693,23 @@ export default {
|
|
this.openAiDialog(clickType, 'aiTeacher2')
|
|
this.openAiDialog(clickType, 'aiTeacher2')
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- if(!(this.templateid == "4480d65a-1e48-11ef-bee5-005056b86db5" || this.templateid == "cf5722a4-401b-11ef-b873-005056b86dc3")){
|
|
|
|
- let _pan2 = 1
|
|
|
|
- for (var k = 0; k < this.unitJson[0].chapterInfo[0].taskJson.length; k++) {
|
|
|
|
- if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail2){
|
|
|
|
- _pan2 = 2
|
|
|
|
- this.$message.error(`请完善任务${k+1}的课程大纲`)
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail3){
|
|
|
|
- _pan2 = 2
|
|
|
|
- this.$message.error(`请完善任务${k+1}的课程教案`)
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ let _pan2 = 1
|
|
|
|
+ for (var k = 0; k < this.unitJson[0].chapterInfo[0].taskJson.length; k++) {
|
|
|
|
+ if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail2 && !(this.templateid == "4480d65a-1e48-11ef-bee5-005056b86db5" || this.templateid == "cf5722a4-401b-11ef-b873-005056b86dc3")){
|
|
|
|
+ _pan2 = 2
|
|
|
|
+ this.$message.error(`请完善任务${k+1}的课程大纲`)
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
-
|
|
|
|
- if(_pan2 == 2){
|
|
|
|
- return;
|
|
|
|
|
|
+ if(!this.unitJson[0].chapterInfo[0].taskJson[k].taskDetail3){
|
|
|
|
+ _pan2 = 2
|
|
|
|
+ this.$message.error(`请完善任务${k+1}的课程教案`)
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if(_pan2 == 2){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
const functionA = () => {
|
|
const functionA = () => {
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
this.loading = false
|
|
this.loading = false
|
|
@@ -8326,6 +8329,15 @@ export default {
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>${a}</title>
|
|
<title>${a}</title>
|
|
<style>
|
|
<style>
|
|
|
|
+ table {
|
|
|
|
+ border-collapse: collapse; /* 折叠边框 */
|
|
|
|
+ width: 100%;
|
|
|
|
+ }
|
|
|
|
+ th, td {
|
|
|
|
+ border: 1px solid black; /* 线条样式 */
|
|
|
|
+ padding: 8px;
|
|
|
|
+ text-align: left;
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|
|
</head>
|
|
</head>
|
|
<body>
|
|
<body>
|
|
@@ -8414,6 +8426,15 @@ export default {
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>${a}</title>
|
|
<title>${a}</title>
|
|
<style>
|
|
<style>
|
|
|
|
+ table {
|
|
|
|
+ border-collapse: collapse; /* 折叠边框 */
|
|
|
|
+ width: 100%;
|
|
|
|
+ }
|
|
|
|
+ th, td {
|
|
|
|
+ border: 1px solid black; /* 线条样式 */
|
|
|
|
+ padding: 8px;
|
|
|
|
+ text-align: left;
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|
|
</head>
|
|
</head>
|
|
<body>
|
|
<body>
|
|
@@ -10450,7 +10471,7 @@ export default {
|
|
delete this.unitJson[i].isUpdate;
|
|
delete this.unitJson[i].isUpdate;
|
|
}
|
|
}
|
|
if(!this.targetCourseText2){
|
|
if(!this.targetCourseText2){
|
|
- this.courseText = this.targetCourseText ? JSON.parse(JSON.stringify(this.targetCourseText)) : this.courseText
|
|
|
|
|
|
+ this.courseText = this.teacherCourseText ? JSON.parse(JSON.stringify(this.teacherCourseText)) : this.courseText
|
|
}
|
|
}
|
|
let params = [
|
|
let params = [
|
|
{
|
|
{
|
|
@@ -10714,7 +10735,7 @@ export default {
|
|
delete this.unitJson[i].isUpdate;
|
|
delete this.unitJson[i].isUpdate;
|
|
}
|
|
}
|
|
if(!this.targetCourseText2){
|
|
if(!this.targetCourseText2){
|
|
- this.courseText = this.targetCourseText ? JSON.parse(JSON.stringify(this.targetCourseText)) : this.courseText
|
|
|
|
|
|
+ this.courseText = this.teacherCourseText ? JSON.parse(JSON.stringify(this.teacherCourseText)) : this.courseText
|
|
}
|
|
}
|
|
let params = [
|
|
let params = [
|
|
{
|
|
{
|
|
@@ -10849,7 +10870,8 @@ export default {
|
|
this.aiJson.aiAbstract = this.aiJson.aiAbstract ? this.aiJson.aiAbstract : '从用户提供的教案资料(文件形式)中,自动总结教案摘要与教案的学科关键词(每个学科3个)。注意,在提取信息方面你绝对不能虚拟出不存在的东西。然后,你基于用户上传的教案,生成项目的驱动性问题和最终作品。'
|
|
this.aiJson.aiAbstract = this.aiJson.aiAbstract ? this.aiJson.aiAbstract : '从用户提供的教案资料(文件形式)中,自动总结教案摘要与教案的学科关键词(每个学科3个)。注意,在提取信息方面你绝对不能虚拟出不存在的东西。然后,你基于用户上传的教案,生成项目的驱动性问题和最终作品。'
|
|
this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
- this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,从你的知识库去检索5个最相关的信息'
|
|
|
|
|
|
+ this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,**从你的知识库去检索5个最相关的信息**,如果没有相关的信息,请你根据已有的知识,并参考#参考资料中的内容,生成本课程的教学目标。你仅需要输出与课程目标相关的内容。'
|
|
|
|
+ this.aiJson.aiTargetGet = this.aiJson.aiTargetGet ? this.aiJson.aiTargetGet : '从用户提供的教案资料(文件形式)中,自动提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiOutlineDetail2 = this.aiJson.aiOutlineDetail2 ? this.aiJson.aiOutlineDetail2 : '请参考#参考资料,重新生成该任务,生成内容需包含任务名,任务设计,评价标准。注意,你绝对不能重复已有其他任务,也不要输出其他内容'
|
|
this.aiJson.aiOutlineDetail2 = this.aiJson.aiOutlineDetail2 ? this.aiJson.aiOutlineDetail2 : '请参考#参考资料,重新生成该任务,生成内容需包含任务名,任务设计,评价标准。注意,你绝对不能重复已有其他任务,也不要输出其他内容'
|
|
this.aiJson.aiRateRule = '根据<评价维度>和<维度描述>,制定具体的评价细则。 具体的评价细则分为6级——0星,1星,2星,3星,4星,5星。'
|
|
this.aiJson.aiRateRule = '根据<评价维度>和<维度描述>,制定具体的评价细则。 具体的评价细则分为6级——0星,1星,2星,3星,4星,5星。'
|
|
if(this.templateid == '61c628b9-3d96-11ef-b873-005056b86db5'){
|
|
if(this.templateid == '61c628b9-3d96-11ef-b873-005056b86db5'){
|
|
@@ -10867,7 +10889,7 @@ export default {
|
|
// this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
// this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
// this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
// this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
// this.aiJson.aiDetail = '请根据#参考资料(上下文中可能蕴含不相关的内容,请你无视不相关内容),为一个<课程标题>的<学科>整合跨学科的,面向<年级>年级学生的项目式学习课程生成课程概况,驱动性问题(有且仅需要生成1个问题)和项目成果&评价标准。请你再生成时更有创意一点,不要与#参考资料中原有的驱动性问题重复。'
|
|
// this.aiJson.aiDetail = '请根据#参考资料(上下文中可能蕴含不相关的内容,请你无视不相关内容),为一个<课程标题>的<学科>整合跨学科的,面向<年级>年级学生的项目式学习课程生成课程概况,驱动性问题(有且仅需要生成1个问题)和项目成果&评价标准。请你再生成时更有创意一点,不要与#参考资料中原有的驱动性问题重复。'
|
|
- // this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,从你的知识库去检索5个最相关的信息'
|
|
|
|
|
|
+ // this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,**从你的知识库去检索5个最相关的信息**,如果没有相关的信息,请你根据已有的知识,并参考#参考资料中的内容,生成本课程的教学目标。你仅需要输出与课程目标相关的内容。'
|
|
// this.aiJson.aiOutline = '请为这个名为<课程名字>的<课程学科>学科的,面向<面向年级>学生的项目式学习课程设计序列教学活动(需要每个任务都需要至少200个token的详细描述)。你需要参考课程简要描述<课程简要描述>和<课程目标>和#参考资料(上下文中可能蕴含不相关的内容,请你无视不相关内容),并产出每个教学任务的设计以及每个教学活动的评价量规(学生能做到...)。'
|
|
// this.aiJson.aiOutline = '请为这个名为<课程名字>的<课程学科>学科的,面向<面向年级>学生的项目式学习课程设计序列教学活动(需要每个任务都需要至少200个token的详细描述)。你需要参考课程简要描述<课程简要描述>和<课程目标>和#参考资料(上下文中可能蕴含不相关的内容,请你无视不相关内容),并产出每个教学任务的设计以及每个教学活动的评价量规(学生能做到...)。'
|
|
// this.aiJson.aiTeacher = '请根据<任务名+单一任务描述>和并参考<课程简要描述>和#参考上下文(上下文中可能蕴含不相关的内容,请你无视不相关内容),为该任务设计详细的教案,教案需要包含该任务的教学目标,教学过程(包含分步骤的教师活动和学生活动,教师活动与学生活动应该一一对应),评价标准(学生能做到...),相关知识点的讲解,练习(练习需要包含示例答案)。'
|
|
// this.aiJson.aiTeacher = '请根据<任务名+单一任务描述>和并参考<课程简要描述>和#参考上下文(上下文中可能蕴含不相关的内容,请你无视不相关内容),为该任务设计详细的教案,教案需要包含该任务的教学目标,教学过程(包含分步骤的教师活动和学生活动,教师活动与学生活动应该一一对应),评价标准(学生能做到...),相关知识点的讲解,练习(练习需要包含示例答案)。'
|
|
// }
|
|
// }
|
|
@@ -12835,7 +12857,8 @@ export default {
|
|
this.aiJson.aiAbstract = this.aiJson.aiAbstract ? this.aiJson.aiAbstract : '从用户提供的教案资料(文件形式)中,自动总结教案摘要与教案的学科关键词(每个学科3个)。注意,在提取信息方面你绝对不能虚拟出不存在的东西。然后,你基于用户上传的教案,生成项目的驱动性问题和最终作品。'
|
|
this.aiJson.aiAbstract = this.aiJson.aiAbstract ? this.aiJson.aiAbstract : '从用户提供的教案资料(文件形式)中,自动总结教案摘要与教案的学科关键词(每个学科3个)。注意,在提取信息方面你绝对不能虚拟出不存在的东西。然后,你基于用户上传的教案,生成项目的驱动性问题和最终作品。'
|
|
this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
- this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,从你的知识库去检索5个最相关的信息'
|
|
|
|
|
|
+ this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,**从你的知识库去检索5个最相关的信息**,如果没有相关的信息,请你根据已有的知识,并参考#参考资料中的内容,生成本课程的教学目标。你仅需要输出与课程目标相关的内容。'
|
|
|
|
+ this.aiJson.aiTargetGet = this.aiJson.aiTargetGet ? this.aiJson.aiTargetGet : '从用户提供的教案资料(文件形式)中,自动提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiOutlineDetail2 = this.aiJson.aiOutlineDetail2 ? this.aiJson.aiOutlineDetail2 : '请参考#参考资料,重新生成该任务,生成内容需包含任务名,任务设计,评价标准。注意,你绝对不能重复已有其他任务,也不要输出其他内容'
|
|
this.aiJson.aiOutlineDetail2 = this.aiJson.aiOutlineDetail2 ? this.aiJson.aiOutlineDetail2 : '请参考#参考资料,重新生成该任务,生成内容需包含任务名,任务设计,评价标准。注意,你绝对不能重复已有其他任务,也不要输出其他内容'
|
|
this.aiJson.aiRateRule = '根据<评价维度>和<维度描述>,制定具体的评价细则。 具体的评价细则分为6级——0星,1星,2星,3星,4星,5星。'
|
|
this.aiJson.aiRateRule = '根据<评价维度>和<维度描述>,制定具体的评价细则。 具体的评价细则分为6级——0星,1星,2星,3星,4星,5星。'
|
|
if(this.templateid == '61c628b9-3d96-11ef-b873-005056b86db5'){
|
|
if(this.templateid == '61c628b9-3d96-11ef-b873-005056b86db5'){
|
|
@@ -12973,7 +12996,8 @@ export default {
|
|
this.aiJson.aiAbstract = this.aiJson.aiAbstract ? this.aiJson.aiAbstract : '从用户提供的教案资料(文件形式)中,自动总结教案摘要与教案的学科关键词(每个学科3个)。注意,在提取信息方面你绝对不能虚拟出不存在的东西。然后,你基于用户上传的教案,生成项目的驱动性问题和最终作品。'
|
|
this.aiJson.aiAbstract = this.aiJson.aiAbstract ? this.aiJson.aiAbstract : '从用户提供的教案资料(文件形式)中,自动总结教案摘要与教案的学科关键词(每个学科3个)。注意,在提取信息方面你绝对不能虚拟出不存在的东西。然后,你基于用户上传的教案,生成项目的驱动性问题和最终作品。'
|
|
this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
- this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,从你的知识库去检索5个最相关的信息'
|
|
|
|
|
|
+ this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,**从你的知识库去检索5个最相关的信息**,如果没有相关的信息,请你根据已有的知识,并参考#参考资料中的内容,生成本课程的教学目标。你仅需要输出与课程目标相关的内容。'
|
|
|
|
+ this.aiJson.aiTargetGet = this.aiJson.aiTargetGet ? this.aiJson.aiTargetGet : '从用户提供的教案资料(文件形式)中,自动提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
this.aiJson.aiOutlineDetail2 = this.aiJson.aiOutlineDetail2 ? this.aiJson.aiOutlineDetail2 : '请参考#参考资料,重新生成该任务,生成内容需包含任务名,任务设计,评价标准。注意,你绝对不能重复已有其他任务,也不要输出其他内容'
|
|
this.aiJson.aiOutlineDetail2 = this.aiJson.aiOutlineDetail2 ? this.aiJson.aiOutlineDetail2 : '请参考#参考资料,重新生成该任务,生成内容需包含任务名,任务设计,评价标准。注意,你绝对不能重复已有其他任务,也不要输出其他内容'
|
|
this.aiJson.aiRateRule = '根据<评价维度>和<维度描述>,制定具体的评价细则。 具体的评价细则分为6级——0星,1星,2星,3星,4星,5星。'
|
|
this.aiJson.aiRateRule = '根据<评价维度>和<维度描述>,制定具体的评价细则。 具体的评价细则分为6级——0星,1星,2星,3星,4星,5星。'
|
|
if(this.templateid == '61c628b9-3d96-11ef-b873-005056b86db5'){
|
|
if(this.templateid == '61c628b9-3d96-11ef-b873-005056b86db5'){
|
|
@@ -14925,6 +14949,15 @@ export default {
|
|
this.aiText2 = ''
|
|
this.aiText2 = ''
|
|
}else if(pan == 'aiTask2'){
|
|
}else if(pan == 'aiTask2'){
|
|
this.aiJson['aiTask'] = string
|
|
this.aiJson['aiTask'] = string
|
|
|
|
+ }else if(pan == 'aiteacherTextDetail'){
|
|
|
|
+ this.aiJson['aiAbstract'] = string
|
|
|
|
+ }else if(pan == 'aitargetTextDetail'){
|
|
|
|
+ this.aiJson['aiTarget'] = string
|
|
|
|
+ }else if(pan == 'aitargetTextDetail2'){
|
|
|
|
+ this.aiJson['aiTarget2'] = string
|
|
|
|
+ }else if(pan == 'aitargetTextDetail3'){
|
|
|
|
+ this.aiJson['aiTargetGet'] = string
|
|
|
|
+ this.aiJson['aiTarget2'] = string2
|
|
}else {
|
|
}else {
|
|
this.aiJson[pan] = string
|
|
this.aiJson[pan] = string
|
|
}
|
|
}
|
|
@@ -15266,6 +15299,18 @@ export default {
|
|
this.aitype = type
|
|
this.aitype = type
|
|
this.aiText = this.aiJson.aiTarget2
|
|
this.aiText = this.aiJson.aiTarget2
|
|
this.aiCallBack = callback
|
|
this.aiCallBack = callback
|
|
|
|
+ } else if (type == 'aitargetTextDetail3'){
|
|
|
|
+ if (this.ttargetTextLoading2) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: "请回答完毕后再次发送",
|
|
|
|
+ type: "warning"
|
|
|
|
+ });
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.aitype = type
|
|
|
|
+ this.aiText = this.aiJson.aiTargetGet
|
|
|
|
+ this.aiText2 = this.aiJson.aiTarget2
|
|
|
|
+ this. aiCallBack= callback
|
|
} else if (type == 'aiSearchFile'){
|
|
} else if (type == 'aiSearchFile'){
|
|
if(this.fileSLoading) {
|
|
if(this.fileSLoading) {
|
|
this.$message({
|
|
this.$message({
|
|
@@ -15582,6 +15627,8 @@ ${msg} 以及##参考资料
|
|
this.aitargetTextDetail(msg)
|
|
this.aitargetTextDetail(msg)
|
|
} else if (this.aitype == "aitargetTextDetail2") {
|
|
} else if (this.aitype == "aitargetTextDetail2") {
|
|
this.aitargetTextDetail2(msg)
|
|
this.aitargetTextDetail2(msg)
|
|
|
|
+ } else if (this.aitype == "aitargetTextDetail3") {
|
|
|
|
+ this.aitargetTextDetail3(msg)
|
|
} else if (this.aitype == 'aiSearchFile'){
|
|
} else if (this.aitype == 'aiSearchFile'){
|
|
let messages = `NOTICE
|
|
let messages = `NOTICE
|
|
Role: 你是创建课程的老师,可以利用file_search的方式完整的去分析文件内容(注:如果文件内容里面不包含需要检索的内容,就不引用文件内容),并生成需要的JSON数据。
|
|
Role: 你是创建课程的老师,可以利用file_search的方式完整的去分析文件内容(注:如果文件内容里面不包含需要检索的内容,就不引用文件内容),并生成需要的JSON数据。
|
|
@@ -19566,6 +19613,115 @@ Instruction: Based on the context, follow "Format example", write content.
|
|
#Context
|
|
#Context
|
|
## 参考资料
|
|
## 参考资料
|
|
课程标题:${this.courseName}
|
|
课程标题:${this.courseName}
|
|
|
|
+${sub.length ? '学科:' + sub.join(",") : ''}
|
|
|
|
+${mclass.length ? '面向年级:' + mclass.join(",") : ''}
|
|
|
|
+${this.teacherCourseText ? '课程摘要:' + this.teacherCourseText.replaceAll('#', " ").replaceAll('*', "").replaceAll('\n', "") : ''}
|
|
|
|
+${this.targetCourseText && this.aiCallBack == 2 ? '参考内容:'+this.targetCourseText : ''}
|
|
|
|
+
|
|
|
|
+## 要求
|
|
|
|
+${msg}
|
|
|
|
+
|
|
|
|
+${this.targetCourseText && this.aiCallBack == 2 ? '注意,优化原有的<参考内容>即可不用重新生成,让内容更具体化,更具体' : ''}`
|
|
|
|
+ let _uuid = uuidv4();
|
|
|
|
+ // let params = JSON.stringify({
|
|
|
|
+ // // "model": "Chat",
|
|
|
|
+ // model: 'gpt-3.5-turbo',
|
|
|
|
+ // temperature: 0,
|
|
|
|
+ // max_tokens: 4096,
|
|
|
|
+ // top_p: 1,
|
|
|
|
+ // frequency_penalty: 0,
|
|
|
|
+ // presence_penalty: 0,
|
|
|
|
+ // messages: [{
|
|
|
|
+ // content: messages,
|
|
|
|
+ // role: 'user'
|
|
|
|
+ // }],
|
|
|
|
+ // uid: _uuid,
|
|
|
|
+ // mind_map_question: "",
|
|
|
|
+ // })
|
|
|
|
+ let params = {
|
|
|
|
+ assistant_id: 'f8e1ebb2-2e0d-11ef-8bf4-12e77c4cb76b',
|
|
|
|
+ message: [{"type":"text", "text":messages.replaceAll('\n', " ").replaceAll('*', "")}],
|
|
|
|
+ session_name: _uuid,
|
|
|
|
+ userId: _this.userid,
|
|
|
|
+ uid: _uuid,
|
|
|
|
+ file_ids: fileid.length ? [...fileid] : '',
|
|
|
|
+ }
|
|
|
|
+ // let params = JSON.stringify({
|
|
|
|
+ // message: {
|
|
|
|
+ // anthropic_version: "bedrock-2023-05-31",
|
|
|
|
+ // max_tokens: 4096,
|
|
|
|
+ // temperature: 0,
|
|
|
|
+ // top_p: 1,
|
|
|
|
+ // messages: [{
|
|
|
|
+ // "role": "user",
|
|
|
|
+ // "content": messages
|
|
|
|
+ // }] ,
|
|
|
|
+ // },
|
|
|
|
+ // uid: _uuid,
|
|
|
|
+ // model: "Claude 3 Sonnet" // Claude 3 Sonnet或者Claude 3 Haiku
|
|
|
|
+ // });
|
|
|
|
+ // _this.ajax.post('https://gpt4.cocorobo.cn/chat', params).then(function (response) {
|
|
|
|
+ _this.ajax.post('https://gpt4.cocorobo.cn/ai_agent_park_chat_new', params).then(function (response) {
|
|
|
|
+ // _this.ajax.post('https://claude3.cocorobo.cn/chat', params).then(function (response) {
|
|
|
|
+ console.log(response);
|
|
|
|
+ // let data = response.data.FunctionResponse
|
|
|
|
+ // if (data.choices && data.choices.length && data.choices[0].message) {
|
|
|
|
+ // _this.courseText = data.choices[0].message.content
|
|
|
|
+ // }
|
|
|
|
+ if (converter(response.data.FunctionResponse.result) == converter("发送成功")) {
|
|
|
|
+ } else {
|
|
|
|
+ _this.$message.warning(response.data.FunctionResponse.result);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }).catch(function (error) {
|
|
|
|
+ _this.targetTextLoading2 = false
|
|
|
|
+ _this.ttargetTextLoading2 = false
|
|
|
|
+ console.log(error);
|
|
|
|
+ });
|
|
|
|
+ await _this.aitargetTextDetail2getAiContent(_uuid)
|
|
|
|
+ },
|
|
|
|
+ async aitargetTextDetail22(msg,msg2) {
|
|
|
|
+ let _this = this
|
|
|
|
+
|
|
|
|
+ let fileid = [] // file-okF1PSRw4VYjRl81SykkxWSo 科学目标fileid 'file-okF1PSRw4VYjRl81SykkxWSo' 目标
|
|
|
|
+ _this.targetTextLoading2 = true
|
|
|
|
+ _this.ttargetTextLoading2 = true
|
|
|
|
+ let sub = []
|
|
|
|
+ if (_this.courseTypeId.length) {
|
|
|
|
+ for (var i = 0; i < _this.courseTypeId.length; i++) {
|
|
|
|
+ let _sid = _this.courseTypeId[i]
|
|
|
|
+ for (var j = 0; j < _this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'].length; j++) {
|
|
|
|
+ if (_sid == _this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'][j].id) {
|
|
|
|
+ sub.push(_this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'][j].name)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ let mclass = []
|
|
|
|
+ if (_this.courseTypeId.length) {
|
|
|
|
+ for (var i = 0; i < _this.courseTypeId.length; i++) {
|
|
|
|
+ let _sid = _this.courseTypeId[i]
|
|
|
|
+ for (var j = 0; j < _this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'].length; j++) {
|
|
|
|
+ if (_sid == _this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'][j].id) {
|
|
|
|
+ mclass.push(_this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'][j].name)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ let messages = `NOTICE
|
|
|
|
+Role: 你是创建课程的老师,内容以markdown形式出现(注:如果文件内容里面不包含需要检索的内容,就不引用文件内容)。
|
|
|
|
+Language: Please use the same language as the user requirement, if the user speaks Chinese, the specific text of your answer should also be in Chinese.
|
|
|
|
+ATTENTION: Use '##' to SPLIT SECTIONS, not '#'. Output format carefully referenced "Format example".
|
|
|
|
+Instruction: Based on the context, follow "Format example", write content.
|
|
|
|
+
|
|
|
|
+#Context
|
|
|
|
+## 参考资料
|
|
|
|
+课程标题:${this.courseName}
|
|
|
|
+${sub.length ? '学科:' + sub.join(",") : ''}
|
|
|
|
+${mclass.length ? '面向年级:' + mclass.join(",") : ''}
|
|
|
|
+课程目标:${msg2}
|
|
|
|
+${this.teacherCourseText ? '课程摘要:' + this.teacherCourseText.replaceAll('#', " ").replaceAll('*', "").replaceAll('\n', "") : ''}
|
|
${this.targetCourseText && this.aiCallBack == 2 ? '参考内容:'+this.targetCourseText : ''}
|
|
${this.targetCourseText && this.aiCallBack == 2 ? '参考内容:'+this.targetCourseText : ''}
|
|
|
|
|
|
## 要求
|
|
## 要求
|
|
@@ -19675,6 +19831,101 @@ ${this.targetCourseText && this.aiCallBack == 2 ? '注意,优化原有的<参
|
|
// this.$forceUpdate();
|
|
// this.$forceUpdate();
|
|
};
|
|
};
|
|
},
|
|
},
|
|
|
|
+ async aitargetTextDetail3(msg) {
|
|
|
|
+ let _this = this
|
|
|
|
+
|
|
|
|
+ let fileid = ['file-okF1PSRw4VYjRl81SykkxWSo'] // file-okF1PSRw4VYjRl81SykkxWSo 科学目标fileid
|
|
|
|
+ _this.targetTextLoading2 = true
|
|
|
|
+ _this.ttargetTextLoading2 = true
|
|
|
|
+ let sub = []
|
|
|
|
+ if (_this.courseTypeId.length) {
|
|
|
|
+ for (var i = 0; i < _this.courseTypeId.length; i++) {
|
|
|
|
+ let _sid = _this.courseTypeId[i]
|
|
|
|
+ for (var j = 0; j < _this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'].length; j++) {
|
|
|
|
+ if (_sid == _this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'][j].id) {
|
|
|
|
+ sub.push(_this.CourseTypeJson['34629907-d02f-11ec-8c78-005056b86db5'][j].name)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ let mclass = []
|
|
|
|
+ if (_this.courseTypeId.length) {
|
|
|
|
+ for (var i = 0; i < _this.courseTypeId.length; i++) {
|
|
|
|
+ let _sid = _this.courseTypeId[i]
|
|
|
|
+ for (var j = 0; j < _this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'].length; j++) {
|
|
|
|
+ if (_sid == _this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'][j].id) {
|
|
|
|
+ mclass.push(_this.CourseTypeJson['34628934-d02f-11ec-8c78-005056b86db5'][j].name)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ let messages = `${msg}`
|
|
|
|
+ let _uuid = uuidv4();
|
|
|
|
+ // let params = JSON.stringify({
|
|
|
|
+ // // "model": "Chat",
|
|
|
|
+ // model: 'gpt-3.5-turbo',
|
|
|
|
+ // temperature: 0,
|
|
|
|
+ // max_tokens: 4096,
|
|
|
|
+ // top_p: 1,
|
|
|
|
+ // frequency_penalty: 0,
|
|
|
|
+ // presence_penalty: 0,
|
|
|
|
+ // messages: [{
|
|
|
|
+ // content: messages,
|
|
|
|
+ // role: 'user'
|
|
|
|
+ // }],
|
|
|
|
+ // uid: _uuid,
|
|
|
|
+ // mind_map_question: "",
|
|
|
|
+ // })
|
|
|
|
+ let params = {
|
|
|
|
+ assistant_id: 'f8e1ebb2-2e0d-11ef-8bf4-12e77c4cb76b',
|
|
|
|
+ message: [{"type":"text", "text":messages.replaceAll('\n', " ").replaceAll('*', "")}],
|
|
|
|
+ session_name: _uuid,
|
|
|
|
+ userId: _this.userid,
|
|
|
|
+ uid: _uuid,
|
|
|
|
+ file_ids: fileid.length ? [...fileid] : '',
|
|
|
|
+ }
|
|
|
|
+ // let params = JSON.stringify({
|
|
|
|
+ // message: {
|
|
|
|
+ // anthropic_version: "bedrock-2023-05-31",
|
|
|
|
+ // max_tokens: 4096,
|
|
|
|
+ // temperature: 0,
|
|
|
|
+ // top_p: 1,
|
|
|
|
+ // messages: [{
|
|
|
|
+ // "role": "user",
|
|
|
|
+ // "content": messages
|
|
|
|
+ // }] ,
|
|
|
|
+ // },
|
|
|
|
+ // uid: _uuid,
|
|
|
|
+ // model: "Claude 3 Sonnet" // Claude 3 Sonnet或者Claude 3 Haiku
|
|
|
|
+ // });
|
|
|
|
+ // _this.ajax.post('https://gpt4.cocorobo.cn/chat', params).then(function (response) {
|
|
|
|
+ _this.ajax.post('https://gpt4.cocorobo.cn/ai_agent_park_chat', params).then(function (response) {
|
|
|
|
+ // _this.ajax.post('https://claude3.cocorobo.cn/chat', params).then(function (response) {
|
|
|
|
+ console.log(response);
|
|
|
|
+ // let data = response.data.FunctionResponse
|
|
|
|
+ // if (data.choices && data.choices.length && data.choices[0].message) {
|
|
|
|
+ // _this.courseText = data.choices[0].message.content
|
|
|
|
+ // }
|
|
|
|
+ console.log(response);
|
|
|
|
+ let data = response.data.FunctionResponse
|
|
|
|
+ // if (data.choices && data.choices.length && data.choices[0].message) {
|
|
|
|
+ // console.log(data.choices[0].message.content);
|
|
|
|
+ // _this.unitJson[0].chapterInfo[0].taskJson[_tindex2].eList = JSON.parse(data.choices[0].message.content)
|
|
|
|
+ // _this.$forceUpdate()
|
|
|
|
+ // }
|
|
|
|
+ if (data.message) {
|
|
|
|
+ console.log('返回回来的目标:',data.message);
|
|
|
|
+ _this.aitargetTextDetail22(_this.aiJson.aiTarget2, data.message.replaceAll('#', " ").replaceAll('*', "").replaceAll('\n', ""))
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }).catch(function (error) {
|
|
|
|
+ _this.targetTextLoading2 = false
|
|
|
|
+ _this.ttargetTextLoading2 = false
|
|
|
|
+ console.log(error);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
againEva(msg, i, k) {
|
|
againEva(msg, i, k) {
|
|
if(!this.unitJson[0].chapterInfo[0].taskJson[i].eList[k].value || !this.unitJson[0].chapterInfo[0].taskJson[i].eList[k].detail){
|
|
if(!this.unitJson[0].chapterInfo[0].taskJson[i].eList[k].value || !this.unitJson[0].chapterInfo[0].taskJson[i].eList[k].detail){
|
|
this.$message.error(`任务${i+1}的第${k+1}个评价完善信息后再生成细则`)
|
|
this.$message.error(`任务${i+1}的第${k+1}个评价完善信息后再生成细则`)
|
|
@@ -19995,6 +20246,14 @@ ${msg}
|
|
this.isOutline = true
|
|
this.isOutline = true
|
|
this.isOutline2 = true
|
|
this.isOutline2 = true
|
|
this.courseTextBool = true
|
|
this.courseTextBool = true
|
|
|
|
+ this.aiJson.teacherDetail2 = this.aiJson.teacherDetail2 ? this.aiJson.teacherDetail2 : '请根据<任务名>、<任务描述>,<课程简要描述>,为该任务设计详细的教案,教案需要包含该任务的教学目标,教学过程(包含分步骤的教师活动和学生活动,教师活动与学生活动应该一一对应),相关知识点的讲解,练习(练习需要包含示例答案)。'
|
|
|
|
+ this.aiJson.aiAbstract = this.aiJson.aiAbstract ? this.aiJson.aiAbstract : '从用户提供的教案资料(文件形式)中,自动总结教案摘要与教案的学科关键词(每个学科3个)。注意,在提取信息方面你绝对不能虚拟出不存在的东西。然后,你基于用户上传的教案,生成项目的驱动性问题和最终作品。'
|
|
|
|
+ this.aiJson.aiTarget = this.aiJson.aiTarget ? this.aiJson.aiTarget : '从用户提供的教案资料中,提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
|
|
+ this.aiJson.aiSearchFile = this.aiJson.aiSearchFile ? this.aiJson.aiSearchFile : '请根据<关键词>,从你的相应知识库去检索5个最相关的信息。'
|
|
|
|
+ this.aiJson.aiTarget2 = this.aiJson.aiTarget2 ? this.aiJson.aiTarget2 : '请根据课程标题<课程标题>,**从你的知识库去检索5个最相关的信息**,如果没有相关的信息,请你根据已有的知识,并参考#参考资料中的内容,生成本课程的教学目标。你仅需要输出与课程目标相关的内容。'
|
|
|
|
+ this.aiJson.aiTargetGet = this.aiJson.aiTargetGet ? this.aiJson.aiTargetGet : '从用户提供的教案资料(文件形式)中,自动提取出课程目标(如不存在课程目标则返回“未提取到目标”。注意,在提取信息方面你绝对不能虚拟出不存在的东西。'
|
|
|
|
+ this.aiJson.aiOutlineDetail2 = this.aiJson.aiOutlineDetail2 ? this.aiJson.aiOutlineDetail2 : '请参考#参考资料,重新生成该任务,生成内容需包含任务名,任务设计,评价标准。注意,你绝对不能重复已有其他任务,也不要输出其他内容'
|
|
|
|
+ this.aiJson.aiRateRule = '根据<评价维度>和<维度描述>,制定具体的评价细则。 具体的评价细则分为6级——0星,1星,2星,3星,4星,5星。'
|
|
}
|
|
}
|
|
this.loading = false;
|
|
this.loading = false;
|
|
this.timer2 = setInterval(() => {
|
|
this.timer2 = setInterval(() => {
|