Prompt模板记录详细的框架信息。
This commit is contained in:
parent
903216e1e5
commit
5858f1d84c
@ -0,0 +1,17 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "角色能力框架")
|
||||
@Data
|
||||
public class AbilityFramework {
|
||||
@Schema(description="能力与角色")
|
||||
private String abilityInfo;
|
||||
@Schema(description="背景信息")
|
||||
private String bgInfo;
|
||||
@Schema(description="指令")
|
||||
private String orderInfo;
|
||||
@Schema(description="输出格式")
|
||||
private String outputFormat;
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "简介框架")
|
||||
@Data
|
||||
public class BriefFramework {
|
||||
@Schema(description="指令")
|
||||
private String orderInfo;
|
||||
@Schema(description="背景信息")
|
||||
private String bgInfo;
|
||||
@Schema(description="补充数据")
|
||||
private String plusInfo;
|
||||
@Schema(description="输出格式")
|
||||
private String outputFormat;
|
||||
}
|
@ -26,10 +26,6 @@ public class PromptTemplatesRespVO {
|
||||
@Schema(description = "模板框架,使用字典(llm_prompt_template_framework)")
|
||||
private Integer templateFramework;
|
||||
|
||||
@Schema(description = "模板内容")
|
||||
@ExcelProperty("模板内容")
|
||||
private String templateText;
|
||||
|
||||
@Schema(description = "变量标识符,使用字典(llm_variable_identifier)")
|
||||
private Integer variableIdentifier;
|
||||
|
||||
@ -54,4 +50,17 @@ public class PromptTemplatesRespVO {
|
||||
@ExcelProperty("关联应用")
|
||||
private int applicationCount;
|
||||
|
||||
@Schema(description = "简介框架")
|
||||
private BriefFramework briefFramework;
|
||||
|
||||
@Schema(description = "角色能力框架")
|
||||
private AbilityFramework abilityFramework;
|
||||
|
||||
@Schema(description = "角色能力框架")
|
||||
private SampleFramework sampleFramework;
|
||||
|
||||
@Schema(description = "模板内容")
|
||||
@ExcelProperty("模板内容")
|
||||
private String templateText;
|
||||
|
||||
}
|
||||
|
@ -21,9 +21,6 @@ public class PromptTemplatesSaveReqVO {
|
||||
@Schema(description = "模板框架,使用字典(llm_prompt_template_framework)")
|
||||
private Integer templateFramework;
|
||||
|
||||
@Schema(description = "模板内容")
|
||||
private String templateText;
|
||||
|
||||
@Schema(description = "变量标识符,使用字典(llm_variable_identifier)")
|
||||
private Integer variableIdentifier;
|
||||
|
||||
@ -36,4 +33,16 @@ public class PromptTemplatesSaveReqVO {
|
||||
@Schema(description = "应用Id列表", example = "[1, 2, 3]")
|
||||
private List<String> applicationIds;
|
||||
|
||||
@Schema(description = "模板内容")
|
||||
private String templateText;
|
||||
|
||||
@Schema(description = "简介框架")
|
||||
private BriefFramework briefFramework;
|
||||
|
||||
@Schema(description = "角色能力框架")
|
||||
private AbilityFramework abilityFramework;
|
||||
|
||||
@Schema(description = "角色能力框架")
|
||||
private SampleFramework sampleFramework;
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "角色能力框架")
|
||||
@Data
|
||||
public class SampleFramework {
|
||||
@Schema(description="背景信息")
|
||||
private String bgInfo;
|
||||
@Schema(description="样例列表")
|
||||
private List<SampleFrameworkItem> itemList;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "角色能力框架样例")
|
||||
@Data
|
||||
public class SampleFrameworkItem {
|
||||
@Schema(description="输入")
|
||||
private String input;
|
||||
@Schema(description="输出")
|
||||
private String output;
|
||||
}
|
@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplications.PromptT
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestags.PromptTemplatesTagsMapper;
|
||||
import cn.iocoder.yudao.module.llm.service.label.LabelService;
|
||||
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
@ -48,6 +49,24 @@ public class PromptTemplatesServiceImpl implements PromptTemplatesService {
|
||||
this.isNameDuplicate(createReqVO.getName());
|
||||
PromptTemplatesDO promptTemplates = BeanUtils.toBean(createReqVO, PromptTemplatesDO.class);
|
||||
promptTemplates.setTemplateType(2);
|
||||
String categoryName = this.dictDataApi.getDictDataLabel(Long.valueOf(createReqVO
|
||||
.getTemplateCategory().toString()));
|
||||
switch (categoryName) {
|
||||
case "简介框架":
|
||||
BriefFramework briefFramework = createReqVO.getBriefFramework();
|
||||
promptTemplates.setTemplateText(JSON.toJSONString(briefFramework));
|
||||
break;
|
||||
case "角色能力框架":
|
||||
AbilityFramework abilityFramework = createReqVO.getAbilityFramework();
|
||||
promptTemplates.setTemplateText(JSON.toJSONString(abilityFramework));
|
||||
break;
|
||||
case "样例提示框架":
|
||||
SampleFramework sampleFramework = createReqVO.getSampleFramework();
|
||||
promptTemplates.setTemplateText(JSON.toJSONString(sampleFramework));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
promptTemplatesMapper.insert(promptTemplates);
|
||||
List<String> tagIds = createReqVO.getTagIds();
|
||||
if(tagIds!=null && !tagIds.isEmpty()) {
|
||||
@ -74,8 +93,32 @@ public class PromptTemplatesServiceImpl implements PromptTemplatesService {
|
||||
|
||||
@Override
|
||||
public void updatePromptTemplates(PromptTemplatesSaveReqVO updateReqVO) {
|
||||
validatePromptTemplatesExists(updateReqVO.getId());
|
||||
PromptTemplatesDO templatesDo = this.promptTemplatesMapper.selectById(updateReqVO.getId());
|
||||
if(templatesDo == null) {
|
||||
throw exception(PROMPT_TEMPLATES_NOT_EXISTS);
|
||||
}
|
||||
if(!templatesDo.getName().equals(updateReqVO.getName())) {
|
||||
this.isNameDuplicate(updateReqVO.getName());
|
||||
}
|
||||
PromptTemplatesDO updateObj = BeanUtils.toBean(updateReqVO, PromptTemplatesDO.class);
|
||||
String categoryName = this.dictDataApi.getDictDataLabel(Long.valueOf(updateReqVO
|
||||
.getTemplateCategory().toString()));
|
||||
switch (categoryName) {
|
||||
case "简介框架":
|
||||
BriefFramework briefFramework = updateReqVO.getBriefFramework();
|
||||
updateObj.setTemplateText(JSON.toJSONString(briefFramework));
|
||||
break;
|
||||
case "角色能力框架":
|
||||
AbilityFramework abilityFramework = updateReqVO.getAbilityFramework();
|
||||
updateObj.setTemplateText(JSON.toJSONString(abilityFramework));
|
||||
break;
|
||||
case "样例提示框架":
|
||||
SampleFramework sampleFramework = updateReqVO.getSampleFramework();
|
||||
updateObj.setTemplateText(JSON.toJSONString(sampleFramework));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
promptTemplatesMapper.updateById(updateObj);
|
||||
Map<String, Object> deleteCondition = new HashMap<>(1);
|
||||
deleteCondition.put("prompt_template_id", updateReqVO.getId());
|
||||
@ -137,7 +180,7 @@ public class PromptTemplatesServiceImpl implements PromptTemplatesService {
|
||||
.selectList("prompt_template_id", id);
|
||||
if(tagDOList!=null && !tagDOList.isEmpty()) {
|
||||
List<String> tagIds = tagDOList.stream()
|
||||
.map(p->p.getId().toString())
|
||||
.map(p->p.getTagId().toString())
|
||||
.collect(Collectors.toList());
|
||||
promptTemplates.setTagIds(tagIds);
|
||||
}
|
||||
@ -145,10 +188,30 @@ public class PromptTemplatesServiceImpl implements PromptTemplatesService {
|
||||
.selectList("prompt_template_id", id);
|
||||
if(applicationDOList!=null && !applicationDOList.isEmpty()) {
|
||||
List<String> applicationIds = applicationDOList.stream()
|
||||
.map(p->p.getId().toString())
|
||||
.map(p->p.getApplicationId().toString())
|
||||
.collect(Collectors.toList());
|
||||
promptTemplates.setApplicationIds(applicationIds);
|
||||
}
|
||||
String categoryName = this.dictDataApi.getDictDataLabel(Long.valueOf(templatesDO.getTemplateCategory().toString()));
|
||||
switch (categoryName) {
|
||||
case "简介框架":
|
||||
promptTemplates.setBriefFramework(JSON.parseObject(promptTemplates
|
||||
.getTemplateText(), BriefFramework.class));
|
||||
promptTemplates.setTemplateText("");
|
||||
break;
|
||||
case "角色能力框架":
|
||||
promptTemplates.setAbilityFramework(JSON.parseObject(promptTemplates
|
||||
.getTemplateText(), AbilityFramework.class));
|
||||
promptTemplates.setTemplateText("");
|
||||
break;
|
||||
case "样例提示框架":
|
||||
promptTemplates.setSampleFramework(JSON.parseObject(promptTemplates
|
||||
.getTemplateText(), SampleFramework.class));
|
||||
promptTemplates.setTemplateText("");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return promptTemplates;
|
||||
}
|
||||
|
||||
@ -160,10 +223,26 @@ public class PromptTemplatesServiceImpl implements PromptTemplatesService {
|
||||
for(PromptTemplatesRespVO respVO : templatesRespList) {
|
||||
// TODO 使用量查询暂时设置为0
|
||||
respVO.setUsedCount(0);
|
||||
Long applicationCount = this.promptTemplatesApplicationsMapper.selectCount(
|
||||
new QueryWrapper<PromptTemplatesApplicationsDO>()
|
||||
.eq("prompt_template_id", respVO.getId()));
|
||||
respVO.setApplicationCount(Integer.parseInt(applicationCount.toString()));
|
||||
try {
|
||||
List<PromptTemplatesTagsDO> tagDOList = this.promptTemplatesTagsMapper
|
||||
.selectList("prompt_template_id", respVO.getId());
|
||||
if(tagDOList!=null && !tagDOList.isEmpty()) {
|
||||
List<String> tagIds = tagDOList.stream()
|
||||
.map(p->p.getTagId().toString())
|
||||
.collect(Collectors.toList());
|
||||
respVO.setTagIds(tagIds);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
Long applicationCount = this.promptTemplatesApplicationsMapper.selectCount(
|
||||
new QueryWrapper<PromptTemplatesApplicationsDO>()
|
||||
.eq("prompt_template_id", respVO.getId()));
|
||||
respVO.setApplicationCount(Integer.parseInt(applicationCount.toString()));
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return pageRespList;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user