Merge remote-tracking branch 'origin/develop' into develop

develop
hhb@hotmail.com 2 months ago
commit 692015b0c7

@ -151,14 +151,6 @@ public class AiController {
@PostMapping("chat/comments") @PostMapping("chat/comments")
@ApiOperation("设置评语") @ApiOperation("设置评语")
public SseEmitter chatComments(@RequestBody @Valid ChatCommentsDto chatCommentsDto) { public SseEmitter chatComments(@RequestBody @Valid ChatCommentsDto chatCommentsDto) {
/*
Authentication user0 = SecurityUtil.getAuthentication();
Object user01 = SecurityUtil.getAuthentication().getPrincipal();
TmdUserDetail user02 = (TmdUserDetail) SecurityUtil.getAuthentication().getPrincipal();
Claims user03 = ((TmdUserDetail) SecurityUtil.getAuthentication().getPrincipal()).getClaims();
String user04 = ((TmdUserDetail) SecurityUtil.getAuthentication().getPrincipal()).getClaims().getSubject();
*/
//String userId = ((TmdUserDetail) SecurityUtil.getAuthentication().getPrincipal()).getClaims().getSubject(); //String userId = ((TmdUserDetail) SecurityUtil.getAuthentication().getPrincipal()).getClaims().getSubject();
// 获取getClaims时为空 // 获取getClaims时为空
String userId = ((TmdUserDetail) SecurityUtil.getAuthentication().getPrincipal()).getUser().getId(); String userId = ((TmdUserDetail) SecurityUtil.getAuthentication().getPrincipal()).getUser().getId();

@ -12,10 +12,10 @@ import java.util.List;
public class ChatModelDto { public class ChatModelDto {
public String type; public String type;
public String name; public String name;
public String role; public ArrayList<String> role;
public String chat; public ArrayList<String> chat;
public ArrayList<String> cycleChats; public ArrayList<String> cycleChats;
public String end; public ArrayList<String> end;
} }

@ -32,6 +32,17 @@ public class ChatCommentsDto {
* *
*/ */
private int repeat; private int repeat;
/**
*
*/
private String name;
/*
*
*/
private int phase;
/** /**
* *
*/ */

@ -6,6 +6,7 @@ import lombok.Data;
*/ */
@Data @Data
public class WisdomExamCommentsDto { public class WisdomExamCommentsDto {
/** /**
* *
*/ */
@ -21,9 +22,19 @@ public class WisdomExamCommentsDto {
/** /**
* *
*/ */
public int scoreRate; public double scoreRate;
/** /**
* *
*/ */
public int ranking; public int ranking;
/**
*
*/
public double classRate;
/**
*
*/
public double gradeRate;
} }

@ -76,6 +76,7 @@ public class ChatMessageServiceImpl implements ChatMessageService {
try { try {
// 目前仅使用讯飞星火大模型 // 目前仅使用讯飞星火大模型
String appId = chatCommentsDto.getAppId(); String appId = chatCommentsDto.getAppId();
// 获取模板文本
String text = commentsTemplate(chatCommentsDto); String text = commentsTemplate(chatCommentsDto);
if (!StringUtils.isEmpty(text)) { if (!StringUtils.isEmpty(text)) {
chatCommentsDto.setText(text); chatCommentsDto.setText(text);
@ -300,232 +301,256 @@ public class ChatMessageServiceImpl implements ChatMessageService {
* @return * @return
*/ */
private String commentsTemplate(ChatCommentsDto chatCommentsDto) { private String commentsTemplate(ChatCommentsDto chatCommentsDto) {
StringBuilder builder = new StringBuilder();
String strData = JSON.toJSONString(chatCommentsDto.getData());
List<ChatModelDto> chatModels = new ArrayList<>();
ChatModelDto chatModel = null;
// 获取模型数据
chatModels = jsonLoader.myJsonDataBean();
/*
//验证获取模型数据 异常问题
try { try {
String fileText = FileUtil.getFileText("Json/ChatModel.json"); StringBuilder builder = new StringBuilder();
String jsonData = JSON.toJSONString(fileText); String strData = JSON.toJSONString(chatCommentsDto.getData());
//获取聊天字段中的数据 //检查是否角色
Object obj = JSON.parseObject(jsonData).get("chatModel"); int phase = Math.max(chatCommentsDto.getPhase(), 0);
String jsonData01 = JSON.toJSONString(obj); List<ChatModelDto> chatModels = new ArrayList<>();
//转换方式 ChatModelDto chatModel = null;
chatModels = JSON.parseObject(jsonData01, new TypeReference<List<ChatModelDto>>() {}); // 获取模型数据
chatModels = jsonLoader.myJsonDataBean();
log.info("获取地址fileText"+fileText+"----文件内容Data:"+ jsonData +"----获取模型集合Object" + obj +"----获取模型集合String"+ jsonData01 +"----获取模型集合机构:"+chatModels); //循环查找对应的模型数据
} catch (Exception e) { for (ChatModelDto chatModelTemp : chatModels) {
throw new ServiceException(ErrorCode.OPERATION_ERROR.getCode(), "读取文件" + Arrays.toString(e.getStackTrace()) + e.getMessage()); //判断评语类型
}*/ if (chatCommentsDto.getType().equals(chatModelTemp.getType())) {
chatModel = chatModelTemp;
//循环查找对应的模型数据 break;
for (ChatModelDto chatModelTemp : chatModels) { }
//判断评语类型 }
if (chatCommentsDto.getType().equals(chatModelTemp.getType())) { String chatName = "";
chatModel = chatModelTemp; switch(phase){
break; case 1:
if (chatCommentsDto.getName().contains("班") || chatCommentsDto.getName().contains("班级")) {
chatName = chatCommentsDto.getName();
} else {
chatName = chatCommentsDto.getName()+"班级";
}
break;
case 2:
if (chatCommentsDto.getName().contains("年级")) {
chatName = chatCommentsDto.getName();
} else {
chatName = chatCommentsDto.getName()+"年级";
}
break;
default:
chatName = chatCommentsDto.getName()+"同学";
break;
} }
}
if (chatModel != null) { if (chatModel != null) {
//角色条件 //角色条件
builder.append(String.format(chatModel.getRole(), chatCommentsDto.getPeriod(), chatCommentsDto.getSubject())); builder.append(String.format(chatModel.getRole().get(0), chatCommentsDto.getPeriod(), chatCommentsDto.getSubject(), chatName));
} }
ChatModelDto finalChatModel = chatModel; ChatModelDto finalChatModel = chatModel;
//模版 //模版
switch (chatCommentsDto.getType()) { switch (chatCommentsDto.getType()) {
//智育 总体评语模版 //智育 总体评语模版
case "wisdom": { case "wisdom": {
WisdomCommentsDto wisdomComments; WisdomCommentsDto wisdomComments;
//转换问题 //转换问题
try { try {
//转换方式 //转换方式
wisdomComments = JSON.parseObject(strData, WisdomCommentsDto.class); wisdomComments = JSON.parseObject(strData, WisdomCommentsDto.class);
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "类型转换失败"); throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "类型转换失败");
} }
if (wisdomComments.getName() == null) { if (wisdomComments.getName() == null) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常"); throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
} }
// 使用String.format方法生成最终的字符串 String chat = phase > 0 ? finalChatModel.getChat().get(1) : finalChatModel.getChat().get(0);
builder.append(String.format( String cycleChat = finalChatModel.getCycleChats().get(0);
finalChatModel.getChat(),
wisdomComments.getName(), // 使用String.format方法生成最终的字符串
wisdomComments.getYear(), builder.append(String.format(
wisdomComments.getSemester(), chat,
wisdomComments.getJoinAll(), chatCommentsDto.getName(),
wisdomComments.getLessonMiddle(), wisdomComments.getYear(),
wisdomComments.getOnLine(), wisdomComments.getSemester(),
wisdomComments.getMarking(), wisdomComments.getJoinAll(),
wisdomComments.getLevel(), wisdomComments.getLessonMiddle(),
wisdomComments.getProportion(), wisdomComments.getOnLine(),
wisdomComments.getName() wisdomComments.getMarking(),
)); wisdomComments.getLevel(),
/* wisdomComments.getProportion(),
//有平均分 wisdomComments.getName()
builder.append(String.format(
finalChatModel.getChat(),
wisdomComments.getName(),
wisdomComments.getYear(),
wisdomComments.getSemester(),
wisdomComments.getJoinAll(),
wisdomComments.getLessonMiddle(),
wisdomComments.getOnLine(),
wisdomComments.getMarking(),
wisdomComments.getAverage(),
wisdomComments.getLevel(),
wisdomComments.getProportion(),
wisdomComments.getName()
));*/
wisdomComments.getDims().forEach(item -> {
builder.append(String.format(finalChatModel.getCycleChats().get(0),
item.name,
item.data[0],
item.data[1],
item.data[2],
item.data[3],
item.data[4]
)); ));
}); wisdomComments.getDims().forEach(item -> {
builder.append(String.format(finalChatModel.getEnd(), wisdomComments.getName())); if(item.data.length >= 4)
break; {
} builder.append(String.format(cycleChat,
//智育 表现模版 item.name,
case "wisdomExam": { item.data[0],
List<WisdomExamCommentsDto> examComments = new ArrayList<>(); item.data[1],
try { item.data[2],
examComments = JSON.parseObject(strData, new TypeReference<List<WisdomExamCommentsDto>>() { item.data[3],
item.data[4]
));
}
}); });
} catch (Exception e) { //builder.append(String.format(finalChatModel.getEnd().get(0),chatName, wisdomComments.getDims().size()));
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "类型转换失败"); break;
} }
if (examComments.size() <= 1) { //智育 表现模版
if (examComments.isEmpty()) { case "wisdomExam": {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常"); List<WisdomExamCommentsDto> examComments = new ArrayList<>();
try {
examComments = JSON.parseObject(strData, new TypeReference<List<WisdomExamCommentsDto>>() {
});
} catch (Exception e) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "类型转换失败");
} }
if (examComments.get(0).name == null) { if (examComments.size() <= 1) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常"); if (examComments.isEmpty()) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
}
if (examComments.get(0).name == null) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
}
} }
} int count = 1;
int count = 1; if(finalChatModel.getChat() != null && !chatCommentsDto.getName().isEmpty()){
for (WisdomExamCommentsDto examComment : examComments) { //昵称
builder.append(String.format(finalChatModel.getCycleChats().get(0), count, examComment.getName(), builder.append(String.format(finalChatModel.getChat().get(0), chatCommentsDto.getName()));
examComment.getTime(), examComment.getScore(), examComment.getScoreRate(),
examComment.getRanking()));
if (count < examComments.size()) {
count++;
} }
switch(phase){
case 1:{
for (WisdomExamCommentsDto examComment : examComments) {
builder.append(String.format(finalChatModel.getCycleChats().get(1), count, examComment.getName(),examComment.getTime(), examComment.getClassRate(),examComment.getGradeRate()));
count++;
}
break;
}
case 2:{
for (WisdomExamCommentsDto examComment : examComments) {
builder.append(String.format(finalChatModel.getCycleChats().get(2), count, examComment.getName(),examComment.getTime(), examComment.getGradeRate()));
count++;
}
break;
}
default:{
for (WisdomExamCommentsDto examComment : examComments) {
builder.append(String.format(finalChatModel.getCycleChats().get(0), count, examComment.getName(),examComment.getTime(), examComment.getScore(), examComment.getScoreRate(),examComment.getRanking()));
count++;
}
break;
}
}
break;
} }
builder.append(String.format(finalChatModel.getEnd(), count)); // 智育 学科评语模版
break; case "wisdomSubject": {
} List<WisdomSubjectComments> subjectComments;
// 智育 学科评语模版 try {
case "windomSubject": { subjectComments = JSON.parseObject(strData, new TypeReference<List<WisdomSubjectComments>>() {});
List<WisdomSubjectComments> subjectComments; } catch (Exception e) {
try { throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
subjectComments = JSON.parseObject(strData, new TypeReference<List<WisdomSubjectComments>>() { }
});
} catch (Exception e) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
}
if (subjectComments.size() <= 1) {
if (subjectComments.isEmpty()) { if (subjectComments.isEmpty()) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常"); throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
} }
} if(finalChatModel.getChat() != null && !chatCommentsDto.getName().isEmpty()){
builder.append(finalChatModel.getChat()); builder.append(String.format(finalChatModel.getChat().get(1), chatCommentsDto.getName()));
String name = "";
//拼接学科数组
for (WisdomSubjectComments comments : subjectComments) {
builder.append(String.format(finalChatModel.getCycleChats().get(0), comments.subjectName));
for (WisdomSubjectComments.StuInfo stuInfo : comments.getRankings()) {
builder.append(String.format(finalChatModel.getCycleChats().get(1), stuInfo.ranking,stuInfo.name, stuInfo.scoreRate*100));
} }
name = comments.getClaasRanking().name; else {
builder.append(String.format(finalChatModel.getCycleChats().get(2),name,comments.getClaasRanking().ranking, comments.getClaasRanking().scoreRate * 100,comments.getClaasRanking().average * 100)); if (finalChatModel.getChat() != null) {
} builder.append(finalChatModel.getChat().get(0));
builder.append(String.format(finalChatModel.getEnd(), subjectComments.size(),name)); }
break; }
} String name = "";
//艺术 考核指标纬度评语 //拼接学科数组
case "artLatitude":{ for (WisdomSubjectComments comments : subjectComments) {
List<ArtLatitudeDto> artLatitudes; builder.append(String.format(finalChatModel.getCycleChats().get(0), comments.subjectName));
try { for (WisdomSubjectComments.StuInfo stuInfo : comments.getRankings()) {
artLatitudes = JSON.parseObject(strData, new TypeReference<List<ArtLatitudeDto>>() { builder.append(String.format(finalChatModel.getCycleChats().get(1), stuInfo.ranking,stuInfo.name, stuInfo.scoreRate*100));
}); }
} catch (Exception e) { if (phase == 0) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常"); name = comments.getClaasRanking().name;
builder.append(String.format(finalChatModel.getCycleChats().get(2), name, comments.getClaasRanking().ranking, comments.getClaasRanking().scoreRate * 100, comments.getClaasRanking().average * 100));
}
}
//builder.append(String.format(finalChatModel.getEnd().get(0), subjectComments.size(),chatName));
break;
} }
if (artLatitudes.size() <= 1) { //艺术 考核指标纬度评语
if (artLatitudes.isEmpty()) { case "artLatitude":{
List<ArtLatitudeDto> artLatitudes;
try {
artLatitudes = JSON.parseObject(strData, new TypeReference<List<ArtLatitudeDto>>() {
});
} catch (Exception e) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常"); throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
} }
} if (artLatitudes.size() <= 1) {
builder.append(finalChatModel.getChat()); if (artLatitudes.isEmpty()) {
for (ArtLatitudeDto artLatitude : artLatitudes) throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
{ }
builder.append(String.format(finalChatModel.getCycleChats().get(0), artLatitude.getQuotaN1(),artLatitude.getQuotaP1(), artLatitude.getQuotaN2(),artLatitude.getQuotaP2(), artLatitude.getQuotaN3(),artLatitude.getQuotaP3(), artLatitude.getPercent(),artLatitude.getLevel())); }
} if(finalChatModel.getChat() != null && !chatCommentsDto.getName().isEmpty()) {
builder.append(String.format(finalChatModel.getChat().get(1), chatCommentsDto.getName()));
}else {
if (finalChatModel.getChat() != null) {
builder.append(finalChatModel.getChat().get(0));
}
}
for (ArtLatitudeDto artLatitude : artLatitudes){
builder.append(String.format(finalChatModel.getCycleChats().get(0), artLatitude.getQuotaN1(),artLatitude.getQuotaP1(), artLatitude.getQuotaN2(),artLatitude.getQuotaP2(), artLatitude.getQuotaN3(),artLatitude.getQuotaP3(), artLatitude.getPercent(),artLatitude.getLevel()));
}
builder.append(finalChatModel.getEnd()); //builder.append(String.format(finalChatModel.getEnd().get(0),chatName));
break; break;
}
//艺术 学科评语模版
case "artSubject":{
List<ArtSubjectDto> artSubjects;
try {
artSubjects = JSON.parseObject(strData, new TypeReference<List<ArtSubjectDto>>() {
});
} catch (Exception e) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
} }
if (artSubjects.size() <= 1) { //艺术 学科评语模版
if (artSubjects.isEmpty()) { case "artSubject":{
List<ArtSubjectDto> artSubjects;
try {
artSubjects = JSON.parseObject(strData, new TypeReference<List<ArtSubjectDto>>() {});
} catch (Exception e) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常"); throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
} }
if (artSubjects.size() <= 1) {
if (artSubjects.isEmpty()) {
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "请求参数异常");
}
}
builder.append(String.format(finalChatModel.getChat().get(0), chatCommentsDto.getSubject()));
for (ArtSubjectDto artSubject : artSubjects){
builder.append(String.format(finalChatModel.getCycleChats().get(0), artSubject.getDimension(),artSubject.getBlock(), artSubject.getPoint(),artSubject.getScore(), artSubject.getTotalScore(),artSubject.getPercent()));
}
//builder.append(String.format(finalChatModel.getEnd().get(0),chatName));
break;
} }
builder.append(finalChatModel.getChat()); //体育
for (ArtSubjectDto artSubject : artSubjects){ case "sport":{
builder.append(String.format(finalChatModel.getCycleChats().get(0), artSubject.getDimension(),artSubject.getBlock(), artSubject.getPoint(),artSubject.getScore(), artSubject.getTotalScore(),artSubject.getPercent())); builder.append("请按照以下格式回复:\n");
builder.append("1. 运动作品:\n");
builder.append("2. 运动作品说明:\n");
builder.append("3. 运动作品示例:\n");
builder.append("4. 运动作品示例说明:\n");
break;
} }
//德育
builder.append(String.format(finalChatModel.getEnd(),chatCommentsDto.getSubject())); case "moral":{
break; builder.append(finalChatModel.getChat());
} break;
//体育 }
case "sport":{ default:
builder.append("请按照以下格式回复:\n"); throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "评语类型异常");
builder.append("1. 运动作品:\n");
builder.append("2. 运动作品说明:\n");
builder.append("3. 运动作品示例:\n");
builder.append("4. 运动作品示例说明:\n");
break;
} }
//德育
case "moral":{
builder.append(finalChatModel.getChat());
break; String limitChat = "。限制条件如下1.%s字左右2.直接返回评价的内容3.评价开头不要提示语4.评价开头不允许出现特殊字符。";
} int size = chatCommentsDto.getSize() > 0 ? chatCommentsDto.getSize() : 200;
default: builder.append(String.format(limitChat, size));
throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "评语类型异常");
}
if (chatCommentsDto.getSize() > 0) { return builder.toString();
builder.append("字数限制在:") } catch (Exception e) {
.append(chatCommentsDto.getSize()) log.info(Arrays.toString(e.getStackTrace()));
.append("字左右"); log.error("{}-{}", e.getMessage(), Arrays.toString(e.getStackTrace()));
} else { throw new ServiceException(ErrorCode.OPERATION_ERROR.getCode(), Arrays.toString(e.getStackTrace()));
builder.append("字数限制在200字左右");
} }
return builder.toString();
} }
} }

@ -3,42 +3,49 @@
{ {
"type": "wisdom", "type": "wisdom",
"name": "智育 总体评语模版", "name": "智育 总体评语模版",
"role": "请扮演[%s%s]老师角色\n", "role": ["请扮演[%s%s]老师角色,依据提供的数据,对%s的总体的表现做一个评价。\n 数据如下:"],
"chat": "%s同学在%s学年度第%s学期中共计参加了%s次评测其中课中评测%s次、线上评测%s次、阅卷评测%s次素养等级为%s已超过班级%s%% 同学。\n %s同学总体表现", "chat": ["%s同学在%s学年度第%s学期中共计参加了%s次评测其中课中评测%s次、线上评测%s次、阅卷评测%s次素养等级为%s已超过班级%s%% 的同学。\n %s同学的总体表现",
"%s在%s学年度第%s学期共计参加了%s次评测其中课中评测%s次、线上评测%s次、阅卷评测%s次总体表现如下"
],
"cycleChats": ["在%s中学习态度为%s、学习成效%s、合作能力%s、评价能力%s、评价能力%s ;\n"], "cycleChats": ["在%s中学习态度为%s、学习成效%s、合作能力%s、评价能力%s、评价能力%s ;\n"],
"end": "根据我提供的数据,对这 %s 次考试成绩表现做一个评价\n" "end": ["请根据我提供的数据,对%s的考试成绩表现做一个评价。\n"],
"limit": "。限制条件如下1、%s字左右2、直接返回评语的内容3、评语的开篇不允许出现提示语4、评语的开篇不允许出现特殊字符。"
}, },
{ {
"type": "wisdomExam", "type": "wisdomExam",
"name": "智育 成绩表现模版", "name": "智育 成绩表现模版",
"role": "请扮演[%s%s]老师角色\n", "role": ["请扮演[%s%s]老师角色,依据我提供的数据,对%s的学习成效表现做一个评价。数据如下\n"],
"chat": "", "chat": ["%s\n,"],
"cycleChats": ["参加第%s次考试结果名称:%s时间:%s得分%s考试得分率%s %% 排名:%s ;\n"], "cycleChats": ["参加第%s次考试结果名称:%s时间:%s得分%s考试得分率%s %% 排名:%s ;\n","参加第%s次考试结果名称:%s时间:%s班级平均得分率%s %%,年级平均得分率:%s %%;\n","参加第%s次考试结果名称:%s时间:%s年级平均得分率%s %%;\n"],
"end": "根据我提供的数据,对这 %s 次考试成绩表现做一个评价。\n" "end": ["请根据我提供的数据,对%s的考试成绩表现做一个评价。\n"],
"limit": "。限制条件如下1、%s字左右2、直接返回评语的内容3、评语的开篇不允许出现提示语4、评语的开篇不允许出现特殊字符。"
}, },
{ {
"type": "windomSubject", "type": "wisdomSubject",
"name": "智育 学科评语模版", "name": "智育 学科评语模版",
"role": "请扮演[%s%s]老师角色\n ", "role": ["请扮演[%s%s]老师角色,依据我提供的数据,对%s的各科评测表现做一个评价。 数据如下:\n"],
"chat": "各科评测表现", "chat": ["各科评测表现","%s的各科评测表现\""],
"cycleChats":["科目:%s 班级top10"," 排名:%s姓名%s得分率%s %% ,\n " ,"%s在班级排名%s,得分率:%s %%,排在班级平均得分率:(%s %%)"], "cycleChats":["科目:%s 班级top10"," 排名:%s姓名%s得分率%s %% ,\n " ,"%s在班级排名%s,得分率:%s %%,排在班级平均得分率:(%s %%)"],
"end": "根据我提供的数据,对这%s门学科【%s】在班级中的表现做一个评价。 \n" "end": ["请根据我提供的数据,对这%s门学科对%s的表现做一个评价。 \n"],
"limit": "。限制条件如下1、%s字左右2、直接返回评语的内容3、评语的开篇不允许出现提示语4、评语的开篇不允许出现特殊字符。"
}, },
{ {
"type": "artLatitude", "type": "artLatitude",
"name": "艺术 考核指标评语模版", "name": "艺术 考核指标评语模版",
"role": "请扮演[%s%s]老师角色\n ", "role": ["请扮演[%s%s]老师角色,依据我提供的数据,对%s的表现做一个整体的评价。数据如下\n"],
"chat": "考核指标评纬度\n", "chat": ["考核指标评纬度\n","%s的考核指标评纬度\n"],
"cycleChats": [" 一级指标:%s %s %%);二级指标:%s %s %%);三级指标 %s %s %% ;得分率:%s %% 等级:%s\n"], "cycleChats": [" 一级指标:%s %s %%);二级指标:%s %s %%);三级指标 %s %s %% ;得分率:%s %% 等级:%s\n"],
"end": "根据我提供的【考核指标纬度】做一个整体的评价。 \n" "end": ["请根据我提供的数据,对%s做一个整体的评价。 \n"],
"limit": ""
}, },
{ {
"type": "artSubject", "type": "artSubject",
"name": "艺术 学科评语模版", "name": "艺术 学科评语模版",
"role": "请扮演[%s%s]老师角色\n ", "role": ["请扮演[%s%s]老师角色,依据我提供的数据,对%s的表现做一个整体的评价。 数据如下:\n "],
"chat": "%s学科\n", "chat": ["%s学科\n"],
"cycleChats": [" 考核纬度:%s一级知识点%s二级知识点 %s得分%s/%s 得分率:%s\n"], "cycleChats": [" 考核纬度:%s一级知识点%s二级知识点 %s得分%s/%s 得分率:%s\n"],
"end": "根据我提供的【%s学科】的表现做一个整体的评价。 \n" "end": ["请根据我提供的数据,对%s的表现做一个整体的评价。 \n"],
"limit": "。限制条件如下1、%s字左右2、直接返回评语的内容3、评语的开篇不允许出现提示语4、评语的开篇不允许出现特殊字符。"
} }
] ]
} }

Loading…
Cancel
Save