Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
1516e52ef5
@ -143,6 +143,15 @@ public class HttpUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static String postForm(String url, Map<String, String> headers, Map<String, Object> form) {
|
||||
try (HttpResponse response = HttpRequest.post(url)
|
||||
.addHeaders(headers)
|
||||
.form(form)
|
||||
.execute()) {
|
||||
return response.body();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* HTTP get 请求,基于 {@link cn.hutool.http.HttpUtil} 实现
|
||||
*
|
||||
@ -160,4 +169,21 @@ public class HttpUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static String getBody(String url, Map<String, String> headers,String body) {
|
||||
try (HttpResponse response = HttpRequest.get(url)
|
||||
.addHeaders(headers)
|
||||
.body(body)
|
||||
.execute()) {
|
||||
return response.body();
|
||||
}
|
||||
}
|
||||
|
||||
public static String del(String url, Map<String, String> headers) {
|
||||
try (HttpResponse response = HttpRequest.delete(url)
|
||||
.addHeaders(headers)
|
||||
.execute()) {
|
||||
return response.body();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -22,14 +22,49 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode MODEL_ASSESS_TASK_MANUAL_NOT_EXISTS = new ErrorCode(10009, "人工评估不存在");
|
||||
|
||||
ErrorCode MODEL_ASSESS_DIMENSION_NOT_EXISTS = new ErrorCode(10010, "评估维度不存在");
|
||||
|
||||
ErrorCode MODEL_ASSESS_TASK_DIMENSION_NOT_EXISTS = new ErrorCode(10011, "人工评估维度不存在");
|
||||
|
||||
ErrorCode MODEL_ASSESS_TASK_AUTO_NOT_EXISTS = new ErrorCode(10012, "自动评估维度不存在");
|
||||
|
||||
ErrorCode MODEL_ASSESS_TASK_STOPLIST_NOT_EXISTS = new ErrorCode(10013, "自动评估维度不存在");
|
||||
|
||||
ErrorCode MODEL_ASSESS_STOPLIST_NOT_EXISTS = new ErrorCode(10014, "自动评估维度不存在");
|
||||
|
||||
ErrorCode LEARNING_RESOURCES_NOT_EXISTS = new ErrorCode(10015, "学习资源不存在");
|
||||
ErrorCode DATASET_FILES_NOT_EXISTS = new ErrorCode(10016, "数据集文件资源不存在");
|
||||
ErrorCode DATASET_QUESTION_NOT_EXISTS = new ErrorCode(10017, "数据集标准问题不存在");
|
||||
ErrorCode DATASET_ANSWER_NOT_EXISTS = new ErrorCode(10018, "数据集标准问题答案不存在");
|
||||
|
||||
|
||||
ErrorCode PROMPT_TEMPLATES_NOT_EXISTS = new ErrorCode(10016, "模板信息不存在");
|
||||
|
||||
ErrorCode PROMPT_TEMPLATES_APPLICATIONS_NOT_EXISTS = new ErrorCode(10017, "模板信息不存在");
|
||||
|
||||
ErrorCode PROMPT_TEMPLATES_TAGS_NOT_EXISTS = new ErrorCode(10017, "模板信息不存在");
|
||||
|
||||
ErrorCode FINE_TUNING_LOSS_NOT_EXISTS = new ErrorCode(10018, "损失记录不存在");
|
||||
|
||||
ErrorCode FINE_TUNING_NOT_EXISTS = new ErrorCode(10019, "模型微调不存在");
|
||||
|
||||
ErrorCode DATA_PROCESS_TASK_NOT_EXISTS = new ErrorCode(10020, "数据处理任务不存在");
|
||||
|
||||
ErrorCode CONVERSATION_NOT_EXISTS = new ErrorCode(10021, "大模型对话记录不存在");
|
||||
|
||||
ErrorCode BASE_MODEL_NOT_EXISTS = new ErrorCode(10022, "基座模型不存在");
|
||||
|
||||
ErrorCode DATASET_ANSWER_NOT_EXISTS = new ErrorCode(10023, "数据集数据问题标注内容不存在");
|
||||
|
||||
ErrorCode DATASET_FILES_NOT_EXISTS = new ErrorCode(10024, "数据集数据文件不存在");
|
||||
|
||||
ErrorCode DATASET_QUESTION_NOT_EXISTS = new ErrorCode(10025, "数据集数据问题不存在");
|
||||
|
||||
ErrorCode KNOWLEDGE_DOCUMENTS_NOT_EXISTS = new ErrorCode(10026, "知识库文档不存在");
|
||||
|
||||
ErrorCode KNOWLEDGE_DOCUMENTS_CHUNKS_NOT_EXISTS = new ErrorCode(10027, "知识库文档块不存在");
|
||||
|
||||
ErrorCode KNOWLEDGE_DOCUMENTS_CHUNKS_VECTORIZED_NOT_EXISTS = new ErrorCode(10028, "向量化存储不存在");
|
||||
|
||||
ErrorCode TRAINING_NOT_EXISTS = new ErrorCode(10029, "训练不存在");
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.framework.backend.config.LLMBackendProperties;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/mp/open/")
|
||||
@Validated
|
||||
public class GetBackendConfig {
|
||||
|
||||
@Resource
|
||||
private LLMBackendProperties llmBackendProperties;
|
||||
|
||||
@RequestMapping("getBackendConfig")
|
||||
public String getBackendConfig() {
|
||||
return llmBackendProperties.getRagHealth();
|
||||
}
|
||||
}
|
@ -39,25 +39,21 @@ public class ApplicationRespVO {
|
||||
@ExcelProperty("模型服务,模型服务ID")
|
||||
private Long appModel;
|
||||
|
||||
@Schema(description = "随机性")
|
||||
@ExcelProperty("随机性")
|
||||
@Schema(description = "废弃, 随机性")
|
||||
@ExcelProperty("废弃, 随机性")
|
||||
private Integer temperature;
|
||||
|
||||
@Schema(description = "采样性")
|
||||
@ExcelProperty("采样性")
|
||||
@Schema(description = "废弃, 采样性")
|
||||
@ExcelProperty("废弃, 采样性")
|
||||
private Integer topP;
|
||||
|
||||
@Schema(description = "单次回复限制")
|
||||
@ExcelProperty("单次回复限制")
|
||||
@Schema(description = "废弃, 单次回复限制")
|
||||
@ExcelProperty("废弃, 单次回复限制")
|
||||
private Integer maxTokens;
|
||||
|
||||
@Schema(description = "系统Prompt")
|
||||
@ExcelProperty("系统Prompt")
|
||||
private String prompt;
|
||||
|
||||
@Schema(description = "向量知识库,知识库ID")
|
||||
@Schema(description = "向量知识库,知识库ID", example = "15511")
|
||||
@ExcelProperty("向量知识库,知识库ID")
|
||||
private Long retrievalAugmentedGeneration;
|
||||
private Long modelServiceId;
|
||||
|
||||
@Schema(description = "应用API地址", example = "https://www.iocoder.cn")
|
||||
@ExcelProperty("应用API地址")
|
||||
@ -75,10 +71,17 @@ public class ApplicationRespVO {
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "大模型服务的推理参数,以JSON格式存储")
|
||||
@ExcelProperty("大模型服务的推理参数,以JSON格式存储")
|
||||
private String modelParams;
|
||||
|
||||
@Schema(description = "系统Prompt")
|
||||
@ExcelProperty("系统Prompt")
|
||||
private String prompt;
|
||||
|
||||
@Schema(description = "创建人id")
|
||||
private String creator;
|
||||
|
||||
@Schema(description = "创建人")
|
||||
private String creatorName;
|
||||
|
||||
}
|
||||
|
@ -9,10 +9,10 @@ import javax.validation.constraints.*;
|
||||
@Data
|
||||
public class ApplicationSaveReqVO {
|
||||
|
||||
@Schema(description = "应用ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31452")
|
||||
@Schema(description = "应用ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25658")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "应用名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
|
||||
@Schema(description = "应用名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@NotEmpty(message = "应用名称不能为空")
|
||||
private String appName;
|
||||
|
||||
@ -30,20 +30,17 @@ public class ApplicationSaveReqVO {
|
||||
@Schema(description = "模型服务,模型服务ID")
|
||||
private Long appModel;
|
||||
|
||||
@Schema(description = "随机性")
|
||||
@Schema(description = "废弃, 随机性")
|
||||
private Integer temperature;
|
||||
|
||||
@Schema(description = "采样性")
|
||||
@Schema(description = "废弃, 采样性")
|
||||
private Integer topP;
|
||||
|
||||
@Schema(description = "单次回复限制")
|
||||
@Schema(description = "废弃, 单次回复限制")
|
||||
private Integer maxTokens;
|
||||
|
||||
@Schema(description = "系统Prompt")
|
||||
private String prompt;
|
||||
|
||||
@Schema(description = "向量知识库,知识库ID")
|
||||
private Long retrievalAugmentedGeneration;
|
||||
@Schema(description = "向量知识库,知识库ID", example = "15511")
|
||||
private Long modelServiceId;
|
||||
|
||||
@Schema(description = "应用API地址", example = "https://www.iocoder.cn")
|
||||
private String appUrl;
|
||||
@ -51,7 +48,18 @@ public class ApplicationSaveReqVO {
|
||||
@Schema(description = "应用图标")
|
||||
private String appLogo;
|
||||
|
||||
@Schema(description = "聊天人次", example = "8556")
|
||||
@Schema(description = "聊天人次", example = "20515")
|
||||
private Long chatCount;
|
||||
|
||||
}
|
||||
@Schema(description = "大模型服务的推理参数,以JSON格式存储")
|
||||
private String modelParams;
|
||||
|
||||
@Schema(description = "系统Prompt")
|
||||
private String prompt;
|
||||
|
||||
@Schema(description = "创建人id")
|
||||
private String creator;
|
||||
|
||||
@Schema(description = "创建人")
|
||||
private String creatorName;
|
||||
}
|
||||
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.basemodel;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import cn.iocoder.yudao.module.llm.service.basemodel.BaseModelService;
|
||||
|
||||
@Tag(name = "管理后台 - 基座模型")
|
||||
@RestController
|
||||
@RequestMapping("/llm/base-model")
|
||||
@Validated
|
||||
public class BaseModelController {
|
||||
|
||||
@Resource
|
||||
private BaseModelService baseModelService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建基座模型")
|
||||
@PreAuthorize("@ss.hasPermission('llm:base-model:create')")
|
||||
public CommonResult<Integer> createBaseModel(@Valid @RequestBody BaseModelSaveReqVO createReqVO) {
|
||||
return success(baseModelService.createBaseModel(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新基座模型")
|
||||
@PreAuthorize("@ss.hasPermission('llm:base-model:update')")
|
||||
public CommonResult<Boolean> updateBaseModel(@Valid @RequestBody BaseModelSaveReqVO updateReqVO) {
|
||||
baseModelService.updateBaseModel(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除基座模型")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:base-model:delete')")
|
||||
public CommonResult<Boolean> deleteBaseModel(@RequestParam("id") Integer id) {
|
||||
baseModelService.deleteBaseModel(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得基座模型")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:base-model:query')")
|
||||
public CommonResult<BaseModelRespVO> getBaseModel(@RequestParam("id") Integer id) {
|
||||
BaseModelDO baseModel = baseModelService.getBaseModel(id);
|
||||
return success(BeanUtils.toBean(baseModel, BaseModelRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得基座模型分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:base-model:query')")
|
||||
public CommonResult<PageResult<BaseModelRespVO>> getBaseModelPage(@Valid BaseModelPageReqVO pageReqVO) {
|
||||
PageResult<BaseModelDO> pageResult = baseModelService.getBaseModelPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, BaseModelRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出基座模型 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:base-model:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportBaseModelExcel(@Valid BaseModelPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<BaseModelDO> list = baseModelService.getBaseModelPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "基座模型.xls", "数据", BaseModelRespVO.class,
|
||||
BeanUtils.toBean(list, BaseModelRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 基座模型分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BaseModelPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "基座模型名称", example = "张三")
|
||||
private String modelName;
|
||||
|
||||
@Schema(description = "参数量", example = "12388")
|
||||
private Integer parameterCount;
|
||||
|
||||
@Schema(description = "最大上下文长度")
|
||||
private Integer maxContextLength;
|
||||
|
||||
@Schema(description = "模型类型", example = "1")
|
||||
private String modelType;
|
||||
|
||||
@Schema(description = "是否启动")
|
||||
private Boolean isActive;
|
||||
|
||||
@Schema(description = "是否微调")
|
||||
private Boolean isFinetuned;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String notes;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 基座模型 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class BaseModelRespVO {
|
||||
|
||||
@Schema(description = "基座模型唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "2828")
|
||||
@ExcelProperty("基座模型唯一标识")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "基座模型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||
@ExcelProperty("基座模型名称")
|
||||
private String modelName;
|
||||
|
||||
@Schema(description = "参数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "12388")
|
||||
@ExcelProperty("参数量")
|
||||
private Integer parameterCount;
|
||||
|
||||
@Schema(description = "最大上下文长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("最大上下文长度")
|
||||
private Integer maxContextLength;
|
||||
|
||||
@Schema(description = "模型类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@ExcelProperty("模型类型")
|
||||
private String modelType;
|
||||
|
||||
@Schema(description = "是否启动", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("是否启动")
|
||||
private Boolean isActive;
|
||||
|
||||
@Schema(description = "是否微调", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("是否微调")
|
||||
private Boolean isFinetuned;
|
||||
|
||||
@Schema(description = "备注")
|
||||
@ExcelProperty("备注")
|
||||
private String notes;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 基座模型新增/修改 Request VO")
|
||||
@Data
|
||||
public class BaseModelSaveReqVO {
|
||||
|
||||
@Schema(description = "基座模型唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "2828")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "基座模型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||
@NotEmpty(message = "基座模型名称不能为空")
|
||||
private String modelName;
|
||||
|
||||
@Schema(description = "参数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "12388")
|
||||
@NotNull(message = "参数量不能为空")
|
||||
private Integer parameterCount;
|
||||
|
||||
@Schema(description = "最大上下文长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "最大上下文长度不能为空")
|
||||
private Integer maxContextLength;
|
||||
|
||||
@Schema(description = "模型类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@NotEmpty(message = "模型类型不能为空")
|
||||
private String modelType;
|
||||
|
||||
@Schema(description = "是否启动", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "是否启动不能为空")
|
||||
private Boolean isActive;
|
||||
|
||||
@Schema(description = "是否微调", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "是否微调不能为空")
|
||||
private Boolean isFinetuned;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String notes;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.conversation;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.conversation.ConversationDO;
|
||||
import cn.iocoder.yudao.module.llm.service.conversation.ConversationService;
|
||||
|
||||
@Tag(name = "管理后台 - 大模型对话记录")
|
||||
@RestController
|
||||
@RequestMapping("/llm/conversation")
|
||||
@Validated
|
||||
public class ConversationController {
|
||||
|
||||
@Resource
|
||||
private ConversationService conversationService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建大模型对话记录")
|
||||
@PreAuthorize("@ss.hasPermission('llm:conversation:create')")
|
||||
public CommonResult<Integer> createConversation(@Valid @RequestBody ConversationSaveReqVO createReqVO) {
|
||||
return success(conversationService.createConversation(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新大模型对话记录")
|
||||
@PreAuthorize("@ss.hasPermission('llm:conversation:update')")
|
||||
public CommonResult<Boolean> updateConversation(@Valid @RequestBody ConversationSaveReqVO updateReqVO) {
|
||||
conversationService.updateConversation(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除大模型对话记录")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:conversation:delete')")
|
||||
public CommonResult<Boolean> deleteConversation(@RequestParam("id") Integer id) {
|
||||
conversationService.deleteConversation(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得大模型对话记录")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:conversation:query')")
|
||||
public CommonResult<ConversationRespVO> getConversation(@RequestParam("id") Integer id) {
|
||||
ConversationDO conversation = conversationService.getConversation(id);
|
||||
return success(BeanUtils.toBean(conversation, ConversationRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得大模型对话记录分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:conversation:query')")
|
||||
public CommonResult<PageResult<ConversationRespVO>> getConversationPage(@Valid ConversationPageReqVO pageReqVO) {
|
||||
PageResult<ConversationDO> pageResult = conversationService.getConversationPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ConversationRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出大模型对话记录 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:conversation:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportConversationExcel(@Valid ConversationPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<ConversationDO> list = conversationService.getConversationPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "大模型对话记录.xls", "数据", ConversationRespVO.class,
|
||||
BeanUtils.toBean(list, ConversationRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.conversation.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 大模型对话记录分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ConversationPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "对话中的角色: user, assistant, system")
|
||||
private String role;
|
||||
|
||||
@Schema(description = "对话的内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "推理参数,采用 JSON 格式")
|
||||
private String modelParams;
|
||||
|
||||
@Schema(description = "提示词")
|
||||
private String prompt;
|
||||
|
||||
@Schema(description = "知识库相关信息", example = "15002")
|
||||
private String knowledgeBaseId;
|
||||
|
||||
@Schema(description = "应用ID", example = "31046")
|
||||
private Long applicationId;
|
||||
|
||||
@Schema(description = "模型服务ID", example = "2904")
|
||||
private Long modelServiceId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.conversation.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 大模型对话记录 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ConversationRespVO {
|
||||
|
||||
@Schema(description = "对话记录的唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "17037")
|
||||
@ExcelProperty("对话记录的唯一标识")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "对话中的角色: user, assistant, system", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("对话中的角色: user, assistant, system")
|
||||
private String role;
|
||||
|
||||
@Schema(description = "对话的内容", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("对话的内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "推理参数,采用 JSON 格式")
|
||||
@ExcelProperty("推理参数,采用 JSON 格式")
|
||||
private String modelParams;
|
||||
|
||||
@Schema(description = "提示词")
|
||||
@ExcelProperty("提示词")
|
||||
private String prompt;
|
||||
|
||||
@Schema(description = "知识库相关信息", example = "15002")
|
||||
@ExcelProperty("知识库相关信息")
|
||||
private String knowledgeBaseId;
|
||||
|
||||
@Schema(description = "应用ID", example = "31046")
|
||||
@ExcelProperty("应用ID")
|
||||
private Long applicationId;
|
||||
|
||||
@Schema(description = "模型服务ID", example = "2904")
|
||||
@ExcelProperty("模型服务ID")
|
||||
private Long modelServiceId;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.conversation.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 大模型对话记录新增/修改 Request VO")
|
||||
@Data
|
||||
public class ConversationSaveReqVO {
|
||||
|
||||
@Schema(description = "对话记录的唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "17037")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "对话中的角色: user, assistant, system", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "对话中的角色: user, assistant, system不能为空")
|
||||
private String role;
|
||||
|
||||
@Schema(description = "对话的内容", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "对话的内容不能为空")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "推理参数,采用 JSON 格式")
|
||||
private String modelParams;
|
||||
|
||||
@Schema(description = "提示词")
|
||||
private String prompt;
|
||||
|
||||
@Schema(description = "知识库相关信息", example = "15002")
|
||||
private String knowledgeBaseId;
|
||||
|
||||
@Schema(description = "应用ID", example = "31046")
|
||||
private Long applicationId;
|
||||
|
||||
@Schema(description = "模型服务ID", example = "2904")
|
||||
private Long modelServiceId;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO;
|
||||
import cn.iocoder.yudao.module.llm.service.dataprocesstask.DataProcessTaskService;
|
||||
|
||||
@Tag(name = "管理后台 - 数据处理任务")
|
||||
@RestController
|
||||
@RequestMapping("/llm/data-process-task")
|
||||
@Validated
|
||||
public class DataProcessTaskController {
|
||||
|
||||
@Resource
|
||||
private DataProcessTaskService dataProcessTaskService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建数据处理任务")
|
||||
@PreAuthorize("@ss.hasPermission('llm:data-process-task:create')")
|
||||
public CommonResult<Long> createDataProcessTask(@Valid @RequestBody DataProcessTaskSaveReqVO createReqVO) {
|
||||
return success(dataProcessTaskService.createDataProcessTask(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新数据处理任务")
|
||||
@PreAuthorize("@ss.hasPermission('llm:data-process-task:update')")
|
||||
public CommonResult<Boolean> updateDataProcessTask(@Valid @RequestBody DataProcessTaskSaveReqVO updateReqVO) {
|
||||
dataProcessTaskService.updateDataProcessTask(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除数据处理任务")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:data-process-task:delete')")
|
||||
public CommonResult<Boolean> deleteDataProcessTask(@RequestParam("id") Long id) {
|
||||
dataProcessTaskService.deleteDataProcessTask(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得数据处理任务")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:data-process-task:query')")
|
||||
public CommonResult<DataProcessTaskRespVO> getDataProcessTask(@RequestParam("id") Long id) {
|
||||
DataProcessTaskDO dataProcessTask = dataProcessTaskService.getDataProcessTask(id);
|
||||
return success(BeanUtils.toBean(dataProcessTask, DataProcessTaskRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得数据处理任务分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:data-process-task:query')")
|
||||
public CommonResult<PageResult<DataProcessTaskRespVO>> getDataProcessTaskPage(@Valid DataProcessTaskPageReqVO pageReqVO) {
|
||||
PageResult<DataProcessTaskDO> pageResult = dataProcessTaskService.getDataProcessTaskPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DataProcessTaskRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出数据处理任务 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:data-process-task:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportDataProcessTaskExcel(@Valid DataProcessTaskPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<DataProcessTaskDO> list = dataProcessTaskService.getDataProcessTaskPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "数据处理任务.xls", "数据", DataProcessTaskRespVO.class,
|
||||
BeanUtils.toBean(list, DataProcessTaskRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 数据处理任务分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class DataProcessTaskPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "任务名称", example = "王五")
|
||||
private String taskName;
|
||||
|
||||
@Schema(description = "处理前数据集ID", example = "21087")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "状态,使用字典(llm_data_process_status)", example = "2")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "处理后的数据集ID", example = "27877")
|
||||
private Long datasetPostId;
|
||||
|
||||
@Schema(description = "配置信息")
|
||||
private String options;
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据处理任务 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DataProcessTaskRespVO {
|
||||
|
||||
@Schema(description = "数据处理任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24850")
|
||||
@ExcelProperty("数据处理任务ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@ExcelProperty("任务名称")
|
||||
private String taskName;
|
||||
|
||||
@Schema(description = "处理前数据集ID", example = "21087")
|
||||
@ExcelProperty("处理前数据集ID")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "状态,使用字典(llm_data_process_status)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("状态,使用字典(llm_data_process_status)")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "处理后的数据集ID", example = "27877")
|
||||
@ExcelProperty("处理后的数据集ID")
|
||||
private Long datasetPostId;
|
||||
|
||||
@Schema(description = "配置信息")
|
||||
@ExcelProperty("配置信息")
|
||||
private String options;
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据处理任务新增/修改 Request VO")
|
||||
@Data
|
||||
public class DataProcessTaskSaveReqVO {
|
||||
|
||||
@Schema(description = "数据处理任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24850")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@NotEmpty(message = "任务名称不能为空")
|
||||
private String taskName;
|
||||
|
||||
@Schema(description = "处理前数据集ID", example = "21087")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "状态,使用字典(llm_data_process_status)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotNull(message = "状态,使用字典(llm_data_process_status)不能为空")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "处理后的数据集ID", example = "27877")
|
||||
private Long datasetPostId;
|
||||
|
||||
@Schema(description = "配置信息")
|
||||
private String options;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer.DatasetAnswerDO;
|
||||
import cn.iocoder.yudao.module.llm.service.datasetanswer.DatasetAnswerService;
|
||||
|
||||
@Tag(name = "管理后台 - 数据集数据问题标注内容")
|
||||
@RestController
|
||||
@RequestMapping("/llm/dataset-answer")
|
||||
@Validated
|
||||
public class DatasetAnswerController {
|
||||
|
||||
@Resource
|
||||
private DatasetAnswerService datasetAnswerService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建数据集数据问题标注内容")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:create')")
|
||||
public CommonResult<Long> createDatasetAnswer(@Valid @RequestBody DatasetAnswerSaveReqVO createReqVO) {
|
||||
return success(datasetAnswerService.createDatasetAnswer(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新数据集数据问题标注内容")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:update')")
|
||||
public CommonResult<Boolean> updateDatasetAnswer(@Valid @RequestBody DatasetAnswerSaveReqVO updateReqVO) {
|
||||
datasetAnswerService.updateDatasetAnswer(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除数据集数据问题标注内容")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:delete')")
|
||||
public CommonResult<Boolean> deleteDatasetAnswer(@RequestParam("id") Long id) {
|
||||
datasetAnswerService.deleteDatasetAnswer(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得数据集数据问题标注内容")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:query')")
|
||||
public CommonResult<DatasetAnswerRespVO> getDatasetAnswer(@RequestParam("id") Long id) {
|
||||
DatasetAnswerDO datasetAnswer = datasetAnswerService.getDatasetAnswer(id);
|
||||
return success(BeanUtils.toBean(datasetAnswer, DatasetAnswerRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得数据集数据问题标注内容分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:query')")
|
||||
public CommonResult<PageResult<DatasetAnswerRespVO>> getDatasetAnswerPage(@Valid DatasetAnswerPageReqVO pageReqVO) {
|
||||
PageResult<DatasetAnswerDO> pageResult = datasetAnswerService.getDatasetAnswerPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DatasetAnswerRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出数据集数据问题标注内容 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-answer:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportDatasetAnswerExcel(@Valid DatasetAnswerPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<DatasetAnswerDO> list = datasetAnswerService.getDatasetAnswerPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "数据集数据问题标注内容.xls", "数据", DatasetAnswerRespVO.class,
|
||||
BeanUtils.toBean(list, DatasetAnswerRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题标注内容分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class DatasetAnswerPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "数据集ID", example = "23968")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "502")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题ID", example = "8932")
|
||||
private Long questionId;
|
||||
|
||||
@Schema(description = "标注内容")
|
||||
private String answer;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题标注内容 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DatasetAnswerRespVO {
|
||||
|
||||
@Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4634")
|
||||
@ExcelProperty("数据集问题ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23968")
|
||||
@ExcelProperty("数据集ID")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "502")
|
||||
@ExcelProperty("数据文件ID")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题ID", example = "8932")
|
||||
@ExcelProperty("问题ID")
|
||||
private Long questionId;
|
||||
|
||||
@Schema(description = "标注内容")
|
||||
@ExcelProperty("标注内容")
|
||||
private String answer;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题标注内容新增/修改 Request VO")
|
||||
@Data
|
||||
public class DatasetAnswerSaveReqVO {
|
||||
|
||||
@Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4634")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23968")
|
||||
@NotNull(message = "数据集ID不能为空")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "502")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题ID", example = "8932")
|
||||
private Long questionId;
|
||||
|
||||
@Schema(description = "标注内容")
|
||||
private String answer;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles.DatasetFilesDO;
|
||||
import cn.iocoder.yudao.module.llm.service.datasetfiles.DatasetFilesService;
|
||||
|
||||
@Tag(name = "管理后台 - 数据集数据文件")
|
||||
@RestController
|
||||
@RequestMapping("/llm/dataset-files")
|
||||
@Validated
|
||||
public class DatasetFilesController {
|
||||
|
||||
@Resource
|
||||
private DatasetFilesService datasetFilesService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建数据集数据文件")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-files:create')")
|
||||
public CommonResult<Long> createDatasetFiles(@Valid @RequestBody DatasetFilesSaveReqVO createReqVO) {
|
||||
return success(datasetFilesService.createDatasetFiles(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新数据集数据文件")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-files:update')")
|
||||
public CommonResult<Boolean> updateDatasetFiles(@Valid @RequestBody DatasetFilesSaveReqVO updateReqVO) {
|
||||
datasetFilesService.updateDatasetFiles(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除数据集数据文件")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-files:delete')")
|
||||
public CommonResult<Boolean> deleteDatasetFiles(@RequestParam("id") Long id) {
|
||||
datasetFilesService.deleteDatasetFiles(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得数据集数据文件")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-files:query')")
|
||||
public CommonResult<DatasetFilesRespVO> getDatasetFiles(@RequestParam("id") Long id) {
|
||||
DatasetFilesDO datasetFiles = datasetFilesService.getDatasetFiles(id);
|
||||
return success(BeanUtils.toBean(datasetFiles, DatasetFilesRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得数据集数据文件分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-files:query')")
|
||||
public CommonResult<PageResult<DatasetFilesRespVO>> getDatasetFilesPage(@Valid DatasetFilesPageReqVO pageReqVO) {
|
||||
PageResult<DatasetFilesDO> pageResult = datasetFilesService.getDatasetFilesPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DatasetFilesRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出数据集数据文件 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-files:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportDatasetFilesExcel(@Valid DatasetFilesPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<DatasetFilesDO> list = datasetFilesService.getDatasetFilesPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "数据集数据文件.xls", "数据", DatasetFilesRespVO.class,
|
||||
BeanUtils.toBean(list, DatasetFilesRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据文件分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class DatasetFilesPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "数据集ID", example = "23558")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据长度")
|
||||
private Long dataLength;
|
||||
|
||||
@Schema(description = "数据文件(文件表的ID)")
|
||||
private Long datasetFile;
|
||||
|
||||
@Schema(description = "文件URL地址", example = "https://www.iocoder.cn")
|
||||
private String datasetFileUrl;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据文件 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DatasetFilesRespVO {
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32334")
|
||||
@ExcelProperty("数据集ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23558")
|
||||
@ExcelProperty("数据集ID")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据长度")
|
||||
@ExcelProperty("数据长度")
|
||||
private Long dataLength;
|
||||
|
||||
@Schema(description = "数据文件(文件表的ID)")
|
||||
@ExcelProperty("数据文件(文件表的ID)")
|
||||
private Long datasetFile;
|
||||
|
||||
@Schema(description = "文件URL地址", example = "https://www.iocoder.cn")
|
||||
@ExcelProperty("文件URL地址")
|
||||
private String datasetFileUrl;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据文件新增/修改 Request VO")
|
||||
@Data
|
||||
public class DatasetFilesSaveReqVO {
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32334")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23558")
|
||||
@NotNull(message = "数据集ID不能为空")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据长度")
|
||||
private Long dataLength;
|
||||
|
||||
@Schema(description = "数据文件(文件表的ID)")
|
||||
private Long datasetFile;
|
||||
|
||||
@Schema(description = "文件URL地址", example = "https://www.iocoder.cn")
|
||||
private String datasetFileUrl;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion.DatasetQuestionDO;
|
||||
import cn.iocoder.yudao.module.llm.service.datasetquestion.DatasetQuestionService;
|
||||
|
||||
@Tag(name = "管理后台 - 数据集数据问题")
|
||||
@RestController
|
||||
@RequestMapping("/llm/dataset-question")
|
||||
@Validated
|
||||
public class DatasetQuestionController {
|
||||
|
||||
@Resource
|
||||
private DatasetQuestionService datasetQuestionService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建数据集数据问题")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:create')")
|
||||
public CommonResult<Long> createDatasetQuestion(@Valid @RequestBody DatasetQuestionSaveReqVO createReqVO) {
|
||||
return success(datasetQuestionService.createDatasetQuestion(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新数据集数据问题")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:update')")
|
||||
public CommonResult<Boolean> updateDatasetQuestion(@Valid @RequestBody DatasetQuestionSaveReqVO updateReqVO) {
|
||||
datasetQuestionService.updateDatasetQuestion(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除数据集数据问题")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:delete')")
|
||||
public CommonResult<Boolean> deleteDatasetQuestion(@RequestParam("id") Long id) {
|
||||
datasetQuestionService.deleteDatasetQuestion(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得数据集数据问题")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:query')")
|
||||
public CommonResult<DatasetQuestionRespVO> getDatasetQuestion(@RequestParam("id") Long id) {
|
||||
DatasetQuestionDO datasetQuestion = datasetQuestionService.getDatasetQuestion(id);
|
||||
return success(BeanUtils.toBean(datasetQuestion, DatasetQuestionRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得数据集数据问题分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:query')")
|
||||
public CommonResult<PageResult<DatasetQuestionRespVO>> getDatasetQuestionPage(@Valid DatasetQuestionPageReqVO pageReqVO) {
|
||||
PageResult<DatasetQuestionDO> pageResult = datasetQuestionService.getDatasetQuestionPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, DatasetQuestionRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出数据集数据问题 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:dataset-question:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportDatasetQuestionExcel(@Valid DatasetQuestionPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<DatasetQuestionDO> list = datasetQuestionService.getDatasetQuestionPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "数据集数据问题.xls", "数据", DatasetQuestionRespVO.class,
|
||||
BeanUtils.toBean(list, DatasetQuestionRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class DatasetQuestionPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "数据集ID", example = "21903")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "13049")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题内容")
|
||||
private String question;
|
||||
|
||||
@Schema(description = "标注状态,使用字典(llm_dataset_mark_status)", example = "1")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DatasetQuestionRespVO {
|
||||
|
||||
@Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14464")
|
||||
@ExcelProperty("数据集问题ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21903")
|
||||
@ExcelProperty("数据集ID")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "13049")
|
||||
@ExcelProperty("数据文件ID")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题内容")
|
||||
@ExcelProperty("问题内容")
|
||||
private String question;
|
||||
|
||||
@Schema(description = "标注状态,使用字典(llm_dataset_mark_status)", example = "1")
|
||||
@ExcelProperty("标注状态,使用字典(llm_dataset_mark_status)")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 数据集数据问题新增/修改 Request VO")
|
||||
@Data
|
||||
public class DatasetQuestionSaveReqVO {
|
||||
|
||||
@Schema(description = "数据集问题ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14464")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "数据集ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21903")
|
||||
@NotNull(message = "数据集ID不能为空")
|
||||
private Long datasetId;
|
||||
|
||||
@Schema(description = "数据文件ID", example = "13049")
|
||||
private Long datasetFilesId;
|
||||
|
||||
@Schema(description = "问题内容")
|
||||
private String question;
|
||||
|
||||
@Schema(description = "标注状态,使用字典(llm_dataset_mark_status)", example = "1")
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuning;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuning.FineTuningDO;
|
||||
import cn.iocoder.yudao.module.llm.service.finetuning.FineTuningService;
|
||||
|
||||
@Tag(name = "管理后台 - 模型微调")
|
||||
@RestController
|
||||
@RequestMapping("/llm/fine-tuning")
|
||||
@Validated
|
||||
public class FineTuningController {
|
||||
|
||||
@Resource
|
||||
private FineTuningService fineTuningService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建模型微调")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning:create')")
|
||||
public CommonResult<Integer> createFineTuning(@Valid @RequestBody FineTuningSaveReqVO createReqVO) {
|
||||
return success(fineTuningService.createFineTuning(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新模型微调")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning:update')")
|
||||
public CommonResult<Boolean> updateFineTuning(@Valid @RequestBody FineTuningSaveReqVO updateReqVO) {
|
||||
fineTuningService.updateFineTuning(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除模型微调")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning:delete')")
|
||||
public CommonResult<Boolean> deleteFineTuning(@RequestParam("id") Integer id) {
|
||||
fineTuningService.deleteFineTuning(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得模型微调")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning:query')")
|
||||
public CommonResult<FineTuningRespVO> getFineTuning(@RequestParam("id") Integer id) {
|
||||
FineTuningDO fineTuning = fineTuningService.getFineTuning(id);
|
||||
return success(BeanUtils.toBean(fineTuning, FineTuningRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得模型微调分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning:query')")
|
||||
public CommonResult<PageResult<FineTuningRespVO>> getFineTuningPage(@Valid FineTuningPageReqVO pageReqVO) {
|
||||
PageResult<FineTuningDO> pageResult = fineTuningService.getFineTuningPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, FineTuningRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出模型微调 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportFineTuningExcel(@Valid FineTuningPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<FineTuningDO> list = fineTuningService.getFineTuningPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "模型微调.xls", "数据", FineTuningRespVO.class,
|
||||
BeanUtils.toBean(list, FineTuningRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 模型微调分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class FineTuningPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "关联的基座模型ID", example = "8253")
|
||||
private Integer baseModelId;
|
||||
|
||||
@Schema(description = "训练数据量")
|
||||
private Integer trainingDataSize;
|
||||
|
||||
@Schema(description = "评估数据集")
|
||||
private String evaluationDataset;
|
||||
|
||||
@Schema(description = "平均分")
|
||||
private BigDecimal averageScore;
|
||||
|
||||
@Schema(description = "评估状态", example = "1")
|
||||
private String evaluationStatus;
|
||||
|
||||
@Schema(description = "lora路径")
|
||||
private String loraPath;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 模型微调 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class FineTuningRespVO {
|
||||
|
||||
@Schema(description = "微调记录唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "12275")
|
||||
@ExcelProperty("微调记录唯一标识")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "关联的基座模型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8253")
|
||||
@ExcelProperty("关联的基座模型ID")
|
||||
private Integer baseModelId;
|
||||
|
||||
@Schema(description = "训练数据量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("训练数据量")
|
||||
private Integer trainingDataSize;
|
||||
|
||||
@Schema(description = "评估数据集", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("评估数据集")
|
||||
private String evaluationDataset;
|
||||
|
||||
@Schema(description = "平均分")
|
||||
@ExcelProperty("平均分")
|
||||
private BigDecimal averageScore;
|
||||
|
||||
@Schema(description = "评估状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@ExcelProperty("评估状态")
|
||||
private String evaluationStatus;
|
||||
|
||||
@Schema(description = "lora路径")
|
||||
@ExcelProperty("lora路径")
|
||||
private String loraPath;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Schema(description = "管理后台 - 模型微调新增/修改 Request VO")
|
||||
@Data
|
||||
public class FineTuningSaveReqVO {
|
||||
|
||||
@Schema(description = "微调记录唯一标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "12275")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "关联的基座模型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8253")
|
||||
@NotNull(message = "关联的基座模型ID不能为空")
|
||||
private Integer baseModelId;
|
||||
|
||||
@Schema(description = "训练数据量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "训练数据量不能为空")
|
||||
private Integer trainingDataSize;
|
||||
|
||||
@Schema(description = "评估数据集", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "评估数据集不能为空")
|
||||
private String evaluationDataset;
|
||||
|
||||
@Schema(description = "平均分")
|
||||
private BigDecimal averageScore;
|
||||
|
||||
@Schema(description = "评估状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@NotEmpty(message = "评估状态不能为空")
|
||||
private String evaluationStatus;
|
||||
|
||||
@Schema(description = "lora路径")
|
||||
private String loraPath;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss.FineTuningLossDO;
|
||||
import cn.iocoder.yudao.module.llm.service.finetuningloss.FineTuningLossService;
|
||||
|
||||
@Tag(name = "管理后台 - 损失记录表,用于记录每次训练的损失值")
|
||||
@RestController
|
||||
@RequestMapping("/llm/fine-tuning-loss")
|
||||
@Validated
|
||||
public class FineTuningLossController {
|
||||
|
||||
@Resource
|
||||
private FineTuningLossService fineTuningLossService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建损失记录表,用于记录每次训练的损失值")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:create')")
|
||||
public CommonResult<Long> createFineTuningLoss(@Valid @RequestBody FineTuningLossSaveReqVO createReqVO) {
|
||||
return success(fineTuningLossService.createFineTuningLoss(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新损失记录表,用于记录每次训练的损失值")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:update')")
|
||||
public CommonResult<Boolean> updateFineTuningLoss(@Valid @RequestBody FineTuningLossSaveReqVO updateReqVO) {
|
||||
fineTuningLossService.updateFineTuningLoss(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除损失记录表,用于记录每次训练的损失值")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:delete')")
|
||||
public CommonResult<Boolean> deleteFineTuningLoss(@RequestParam("id") Long id) {
|
||||
fineTuningLossService.deleteFineTuningLoss(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得损失记录表,用于记录每次训练的损失值")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:query')")
|
||||
public CommonResult<FineTuningLossRespVO> getFineTuningLoss(@RequestParam("id") Long id) {
|
||||
FineTuningLossDO fineTuningLoss = fineTuningLossService.getFineTuningLoss(id);
|
||||
return success(BeanUtils.toBean(fineTuningLoss, FineTuningLossRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得损失记录表,用于记录每次训练的损失值分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:query')")
|
||||
public CommonResult<PageResult<FineTuningLossRespVO>> getFineTuningLossPage(@Valid FineTuningLossPageReqVO pageReqVO) {
|
||||
PageResult<FineTuningLossDO> pageResult = fineTuningLossService.getFineTuningLossPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, FineTuningLossRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出损失记录表,用于记录每次训练的损失值 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:fine-tuning-loss:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportFineTuningLossExcel(@Valid FineTuningLossPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<FineTuningLossDO> list = fineTuningLossService.getFineTuningLossPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "损失记录表,用于记录每次训练的损失值.xls", "数据", FineTuningLossRespVO.class,
|
||||
BeanUtils.toBean(list, FineTuningLossRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 损失记录表,用于记录每次训练的损失值分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class FineTuningLossPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "微调任务ID", example = "16806")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "训练轮数")
|
||||
private Integer epoch;
|
||||
|
||||
@Schema(description = "损失值")
|
||||
private Double lossValue;
|
||||
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 损失记录表,用于记录每次训练的损失值 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class FineTuningLossRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29379")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "微调任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16806")
|
||||
@ExcelProperty("微调任务ID")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "训练轮数")
|
||||
@ExcelProperty("训练轮数")
|
||||
private Integer epoch;
|
||||
|
||||
@Schema(description = "损失值")
|
||||
@ExcelProperty("损失值")
|
||||
private Double lossValue;
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 损失记录表,用于记录每次训练的损失值新增/修改 Request VO")
|
||||
@Data
|
||||
public class FineTuningLossSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29379")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "微调任务ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16806")
|
||||
@NotNull(message = "微调任务ID不能为空")
|
||||
private Long taskId;
|
||||
|
||||
@Schema(description = "训练轮数")
|
||||
private Integer epoch;
|
||||
|
||||
@Schema(description = "损失值")
|
||||
private Double lossValue;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocuments.KnowledgeDocumentsDO;
|
||||
import cn.iocoder.yudao.module.llm.service.knowledgedocuments.KnowledgeDocumentsService;
|
||||
|
||||
@Tag(name = "管理后台 - 知识库文档")
|
||||
@RestController
|
||||
@RequestMapping("/llm/knowledge-documents")
|
||||
@Validated
|
||||
public class KnowledgeDocumentsController {
|
||||
|
||||
@Resource
|
||||
private KnowledgeDocumentsService knowledgeDocumentsService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建知识库文档")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents:create')")
|
||||
public CommonResult<Long> createKnowledgeDocuments(@Valid @RequestBody KnowledgeDocumentsSaveReqVO createReqVO) {
|
||||
return success(knowledgeDocumentsService.createKnowledgeDocuments(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新知识库文档")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents:update')")
|
||||
public CommonResult<Boolean> updateKnowledgeDocuments(@Valid @RequestBody KnowledgeDocumentsSaveReqVO updateReqVO) {
|
||||
knowledgeDocumentsService.updateKnowledgeDocuments(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除知识库文档")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents:delete')")
|
||||
public CommonResult<Boolean> deleteKnowledgeDocuments(@RequestParam("id") Long id) {
|
||||
knowledgeDocumentsService.deleteKnowledgeDocuments(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得知识库文档")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents:query')")
|
||||
public CommonResult<KnowledgeDocumentsRespVO> getKnowledgeDocuments(@RequestParam("id") Long id) {
|
||||
KnowledgeDocumentsDO knowledgeDocuments = knowledgeDocumentsService.getKnowledgeDocuments(id);
|
||||
return success(BeanUtils.toBean(knowledgeDocuments, KnowledgeDocumentsRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得知识库文档分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents:query')")
|
||||
public CommonResult<PageResult<KnowledgeDocumentsRespVO>> getKnowledgeDocumentsPage(@Valid KnowledgeDocumentsPageReqVO pageReqVO) {
|
||||
PageResult<KnowledgeDocumentsDO> pageResult = knowledgeDocumentsService.getKnowledgeDocumentsPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, KnowledgeDocumentsRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出知识库文档 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportKnowledgeDocumentsExcel(@Valid KnowledgeDocumentsPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<KnowledgeDocumentsDO> list = knowledgeDocumentsService.getKnowledgeDocumentsPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "知识库文档.xls", "数据", KnowledgeDocumentsRespVO.class,
|
||||
BeanUtils.toBean(list, KnowledgeDocumentsRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 知识库文档分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class KnowledgeDocumentsPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "知识库ID", example = "18229")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档名称", example = "芋艿")
|
||||
private String documentName;
|
||||
|
||||
@Schema(description = "文件URL地址", example = "https://www.iocoder.cn")
|
||||
private String fileUrl;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "文件状态,使用字典(llm_file_status)", example = "1")
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 知识库文档 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class KnowledgeDocumentsRespVO {
|
||||
|
||||
@Schema(description = "知识库文档ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4847")
|
||||
@ExcelProperty("知识库文档ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "知识库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18229")
|
||||
@ExcelProperty("知识库ID")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档名称", example = "芋艿")
|
||||
@ExcelProperty("文档名称")
|
||||
private String documentName;
|
||||
|
||||
@Schema(description = "文件URL地址", example = "https://www.iocoder.cn")
|
||||
@ExcelProperty("文件URL地址")
|
||||
private String fileUrl;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "文件状态,使用字典(llm_file_status)", example = "1")
|
||||
@ExcelProperty("文件状态,使用字典(llm_file_status)")
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 知识库文档新增/修改 Request VO")
|
||||
@Data
|
||||
public class KnowledgeDocumentsSaveReqVO {
|
||||
|
||||
@Schema(description = "知识库文档ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4847")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "知识库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18229")
|
||||
@NotNull(message = "知识库ID不能为空")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档名称", example = "芋艿")
|
||||
private String documentName;
|
||||
|
||||
@Schema(description = "文件URL地址", example = "https://www.iocoder.cn")
|
||||
private String fileUrl;
|
||||
|
||||
@Schema(description = "文件状态,使用字典(llm_file_status)", example = "1")
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunks;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunks.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocumentschunks.KnowledgeDocumentsChunksDO;
|
||||
import cn.iocoder.yudao.module.llm.service.knowledgedocumentschunks.KnowledgeDocumentsChunksService;
|
||||
|
||||
@Tag(name = "管理后台 - 知识库文档块")
|
||||
@RestController
|
||||
@RequestMapping("/llm/knowledge-documents-chunks")
|
||||
@Validated
|
||||
public class KnowledgeDocumentsChunksController {
|
||||
|
||||
@Resource
|
||||
private KnowledgeDocumentsChunksService knowledgeDocumentsChunksService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建知识库文档块")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks:create')")
|
||||
public CommonResult<Long> createKnowledgeDocumentsChunks(@Valid @RequestBody KnowledgeDocumentsChunksSaveReqVO createReqVO) {
|
||||
return success(knowledgeDocumentsChunksService.createKnowledgeDocumentsChunks(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新知识库文档块")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks:update')")
|
||||
public CommonResult<Boolean> updateKnowledgeDocumentsChunks(@Valid @RequestBody KnowledgeDocumentsChunksSaveReqVO updateReqVO) {
|
||||
knowledgeDocumentsChunksService.updateKnowledgeDocumentsChunks(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除知识库文档块")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks:delete')")
|
||||
public CommonResult<Boolean> deleteKnowledgeDocumentsChunks(@RequestParam("id") Long id) {
|
||||
knowledgeDocumentsChunksService.deleteKnowledgeDocumentsChunks(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得知识库文档块")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks:query')")
|
||||
public CommonResult<KnowledgeDocumentsChunksRespVO> getKnowledgeDocumentsChunks(@RequestParam("id") Long id) {
|
||||
KnowledgeDocumentsChunksDO knowledgeDocumentsChunks = knowledgeDocumentsChunksService.getKnowledgeDocumentsChunks(id);
|
||||
return success(BeanUtils.toBean(knowledgeDocumentsChunks, KnowledgeDocumentsChunksRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得知识库文档块分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks:query')")
|
||||
public CommonResult<PageResult<KnowledgeDocumentsChunksRespVO>> getKnowledgeDocumentsChunksPage(@Valid KnowledgeDocumentsChunksPageReqVO pageReqVO) {
|
||||
PageResult<KnowledgeDocumentsChunksDO> pageResult = knowledgeDocumentsChunksService.getKnowledgeDocumentsChunksPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, KnowledgeDocumentsChunksRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出知识库文档块 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportKnowledgeDocumentsChunksExcel(@Valid KnowledgeDocumentsChunksPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<KnowledgeDocumentsChunksDO> list = knowledgeDocumentsChunksService.getKnowledgeDocumentsChunksPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "知识库文档块.xls", "数据", KnowledgeDocumentsChunksRespVO.class,
|
||||
BeanUtils.toBean(list, KnowledgeDocumentsChunksRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunks.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 知识库文档块分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class KnowledgeDocumentsChunksPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "知识库ID", example = "23286")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档ID", example = "12907")
|
||||
private Long documentId;
|
||||
|
||||
@Schema(description = "块ID", example = "27291")
|
||||
private Long chunkId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "向量数据")
|
||||
private byte[] vector;
|
||||
|
||||
@Schema(description = "文本块内容")
|
||||
private String content;
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunks.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 知识库文档块 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class KnowledgeDocumentsChunksRespVO {
|
||||
|
||||
@Schema(description = "知识库文档ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21673")
|
||||
@ExcelProperty("知识库文档ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "知识库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23286")
|
||||
@ExcelProperty("知识库ID")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档ID", example = "12907")
|
||||
@ExcelProperty("文档ID")
|
||||
private Long documentId;
|
||||
|
||||
@Schema(description = "块ID", example = "27291")
|
||||
@ExcelProperty("块ID")
|
||||
private Long chunkId;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "向量数据")
|
||||
@ExcelProperty("向量数据")
|
||||
private byte[] vector;
|
||||
|
||||
@Schema(description = "文本块内容")
|
||||
@ExcelProperty("文本块内容")
|
||||
private String content;
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunks.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 知识库文档块新增/修改 Request VO")
|
||||
@Data
|
||||
public class KnowledgeDocumentsChunksSaveReqVO {
|
||||
|
||||
@Schema(description = "知识库文档ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21673")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "知识库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23286")
|
||||
@NotNull(message = "知识库ID不能为空")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档ID", example = "12907")
|
||||
private Long documentId;
|
||||
|
||||
@Schema(description = "块ID", example = "27291")
|
||||
private Long chunkId;
|
||||
|
||||
@Schema(description = "向量数据")
|
||||
private byte[] vector;
|
||||
|
||||
@Schema(description = "文本块内容")
|
||||
private String content;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunksvectorized;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunksvectorized.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocumentschunksvectorized.KnowledgeDocumentsChunksVectorizedDO;
|
||||
import cn.iocoder.yudao.module.llm.service.knowledgedocumentschunksvectorized.KnowledgeDocumentsChunksVectorizedService;
|
||||
|
||||
@Tag(name = "管理后台 - 向量化存储")
|
||||
@RestController
|
||||
@RequestMapping("/llm/knowledge-documents-chunks-vectorized")
|
||||
@Validated
|
||||
public class KnowledgeDocumentsChunksVectorizedController {
|
||||
|
||||
@Resource
|
||||
private KnowledgeDocumentsChunksVectorizedService knowledgeDocumentsChunksVectorizedService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建向量化存储")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks-vectorized:create')")
|
||||
public CommonResult<Long> createKnowledgeDocumentsChunksVectorized(@Valid @RequestBody KnowledgeDocumentsChunksVectorizedSaveReqVO createReqVO) {
|
||||
return success(knowledgeDocumentsChunksVectorizedService.createKnowledgeDocumentsChunksVectorized(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新向量化存储")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks-vectorized:update')")
|
||||
public CommonResult<Boolean> updateKnowledgeDocumentsChunksVectorized(@Valid @RequestBody KnowledgeDocumentsChunksVectorizedSaveReqVO updateReqVO) {
|
||||
knowledgeDocumentsChunksVectorizedService.updateKnowledgeDocumentsChunksVectorized(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除向量化存储")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks-vectorized:delete')")
|
||||
public CommonResult<Boolean> deleteKnowledgeDocumentsChunksVectorized(@RequestParam("id") Long id) {
|
||||
knowledgeDocumentsChunksVectorizedService.deleteKnowledgeDocumentsChunksVectorized(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得向量化存储")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks-vectorized:query')")
|
||||
public CommonResult<KnowledgeDocumentsChunksVectorizedRespVO> getKnowledgeDocumentsChunksVectorized(@RequestParam("id") Long id) {
|
||||
KnowledgeDocumentsChunksVectorizedDO knowledgeDocumentsChunksVectorized = knowledgeDocumentsChunksVectorizedService.getKnowledgeDocumentsChunksVectorized(id);
|
||||
return success(BeanUtils.toBean(knowledgeDocumentsChunksVectorized, KnowledgeDocumentsChunksVectorizedRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得向量化存储分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks-vectorized:query')")
|
||||
public CommonResult<PageResult<KnowledgeDocumentsChunksVectorizedRespVO>> getKnowledgeDocumentsChunksVectorizedPage(@Valid KnowledgeDocumentsChunksVectorizedPageReqVO pageReqVO) {
|
||||
PageResult<KnowledgeDocumentsChunksVectorizedDO> pageResult = knowledgeDocumentsChunksVectorizedService.getKnowledgeDocumentsChunksVectorizedPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, KnowledgeDocumentsChunksVectorizedRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出向量化存储 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:knowledge-documents-chunks-vectorized:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportKnowledgeDocumentsChunksVectorizedExcel(@Valid KnowledgeDocumentsChunksVectorizedPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<KnowledgeDocumentsChunksVectorizedDO> list = knowledgeDocumentsChunksVectorizedService.getKnowledgeDocumentsChunksVectorizedPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "向量化存储.xls", "数据", KnowledgeDocumentsChunksVectorizedRespVO.class,
|
||||
BeanUtils.toBean(list, KnowledgeDocumentsChunksVectorizedRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunksvectorized.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 向量化存储分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class KnowledgeDocumentsChunksVectorizedPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "知识库ID", example = "12027")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档ID", example = "23414")
|
||||
private Long documentId;
|
||||
|
||||
@Schema(description = "块在文档中的索引")
|
||||
private Integer indexInDocument;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "文档块内容")
|
||||
private String chunkText;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunksvectorized.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 向量化存储 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class KnowledgeDocumentsChunksVectorizedRespVO {
|
||||
|
||||
@Schema(description = "知识库文档ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "17820")
|
||||
@ExcelProperty("知识库文档ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "知识库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12027")
|
||||
@ExcelProperty("知识库ID")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档ID", example = "23414")
|
||||
@ExcelProperty("文档ID")
|
||||
private Long documentId;
|
||||
|
||||
@Schema(description = "块在文档中的索引")
|
||||
@ExcelProperty("块在文档中的索引")
|
||||
private Integer indexInDocument;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "文档块内容")
|
||||
@ExcelProperty("文档块内容")
|
||||
private String chunkText;
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunksvectorized.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - 向量化存储新增/修改 Request VO")
|
||||
@Data
|
||||
public class KnowledgeDocumentsChunksVectorizedSaveReqVO {
|
||||
|
||||
@Schema(description = "知识库文档ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "17820")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "知识库ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12027")
|
||||
@NotNull(message = "知识库ID不能为空")
|
||||
private Long knowledgeBaseId;
|
||||
|
||||
@Schema(description = "文档ID", example = "23414")
|
||||
private Long documentId;
|
||||
|
||||
@Schema(description = "块在文档中的索引")
|
||||
private Integer indexInDocument;
|
||||
|
||||
@Schema(description = "文档块内容")
|
||||
private String chunkText;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO;
|
||||
import cn.iocoder.yudao.module.llm.service.prompttemplates.PromptTemplatesService;
|
||||
|
||||
@Tag(name = "管理后台 - Prompt 模板表,用于记录每个模板的信息")
|
||||
@RestController
|
||||
@RequestMapping("/llm/prompt-templates")
|
||||
@Validated
|
||||
public class PromptTemplatesController {
|
||||
|
||||
@Resource
|
||||
private PromptTemplatesService promptTemplatesService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建Prompt 模板表,用于记录每个模板的信息")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates:create')")
|
||||
public CommonResult<Long> createPromptTemplates(@Valid @RequestBody PromptTemplatesSaveReqVO createReqVO) {
|
||||
return success(promptTemplatesService.createPromptTemplates(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新Prompt 模板表,用于记录每个模板的信息")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates:update')")
|
||||
public CommonResult<Boolean> updatePromptTemplates(@Valid @RequestBody PromptTemplatesSaveReqVO updateReqVO) {
|
||||
promptTemplatesService.updatePromptTemplates(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除Prompt 模板表,用于记录每个模板的信息")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates:delete')")
|
||||
public CommonResult<Boolean> deletePromptTemplates(@RequestParam("id") Long id) {
|
||||
promptTemplatesService.deletePromptTemplates(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得Prompt 模板表,用于记录每个模板的信息")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates:query')")
|
||||
public CommonResult<PromptTemplatesRespVO> getPromptTemplates(@RequestParam("id") Long id) {
|
||||
PromptTemplatesDO promptTemplates = promptTemplatesService.getPromptTemplates(id);
|
||||
return success(BeanUtils.toBean(promptTemplates, PromptTemplatesRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得Prompt 模板表,用于记录每个模板的信息分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates:query')")
|
||||
public CommonResult<PageResult<PromptTemplatesRespVO>> getPromptTemplatesPage(@Valid PromptTemplatesPageReqVO pageReqVO) {
|
||||
PageResult<PromptTemplatesDO> pageResult = promptTemplatesService.getPromptTemplatesPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, PromptTemplatesRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出Prompt 模板表,用于记录每个模板的信息 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportPromptTemplatesExcel(@Valid PromptTemplatesPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<PromptTemplatesDO> list = promptTemplatesService.getPromptTemplatesPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "Prompt 模板表,用于记录每个模板的信息.xls", "数据", PromptTemplatesRespVO.class,
|
||||
BeanUtils.toBean(list, PromptTemplatesRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板表,用于记录每个模板的信息分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class PromptTemplatesPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "Prompt 模板名称", example = "王五")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "模板分类,使用字典(llm_prompt_template_category)")
|
||||
private Integer templateCategory;
|
||||
|
||||
@Schema(description = "模板框架,使用字典(llm_prompt_template_framework)")
|
||||
private Integer templateFramework;
|
||||
|
||||
@Schema(description = "模板内容")
|
||||
private String templateText;
|
||||
|
||||
@Schema(description = "变量标识符,使用字典(llm_variable_identifier)")
|
||||
private Integer variableIdentifier;
|
||||
|
||||
@Schema(description = "模板类型(1 - 预制模板、2 - 自定义模板)", example = "1")
|
||||
private Integer templateType;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板表,用于记录每个模板的信息 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PromptTemplatesRespVO {
|
||||
|
||||
@Schema(description = "Prompt 模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20922")
|
||||
@ExcelProperty("Prompt 模板ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "Prompt 模板名称", example = "王五")
|
||||
@ExcelProperty("Prompt 模板名称")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "模板分类,使用字典(llm_prompt_template_category)")
|
||||
@ExcelProperty("模板分类,使用字典(llm_prompt_template_category)")
|
||||
private Integer templateCategory;
|
||||
|
||||
@Schema(description = "模板框架,使用字典(llm_prompt_template_framework)")
|
||||
@ExcelProperty("模板框架,使用字典(llm_prompt_template_framework)")
|
||||
private Integer templateFramework;
|
||||
|
||||
@Schema(description = "模板内容")
|
||||
@ExcelProperty("模板内容")
|
||||
private String templateText;
|
||||
|
||||
@Schema(description = "变量标识符,使用字典(llm_variable_identifier)")
|
||||
@ExcelProperty("变量标识符,使用字典(llm_variable_identifier)")
|
||||
private Integer variableIdentifier;
|
||||
|
||||
@Schema(description = "模板类型(1 - 预制模板、2 - 自定义模板)", example = "1")
|
||||
@ExcelProperty("模板类型(1 - 预制模板、2 - 自定义模板)")
|
||||
private Integer templateType;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板表,用于记录每个模板的信息新增/修改 Request VO")
|
||||
@Data
|
||||
public class PromptTemplatesSaveReqVO {
|
||||
|
||||
@Schema(description = "Prompt 模板ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20922")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "Prompt 模板名称", example = "王五")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "模板分类,使用字典(llm_prompt_template_category)")
|
||||
private Integer templateCategory;
|
||||
|
||||
@Schema(description = "模板框架,使用字典(llm_prompt_template_framework)")
|
||||
private Integer templateFramework;
|
||||
|
||||
@Schema(description = "模板内容")
|
||||
private String templateText;
|
||||
|
||||
@Schema(description = "变量标识符,使用字典(llm_variable_identifier)")
|
||||
private Integer variableIdentifier;
|
||||
|
||||
@Schema(description = "模板类型(1 - 预制模板、2 - 自定义模板)", example = "1")
|
||||
private Integer templateType;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO;
|
||||
import cn.iocoder.yudao.module.llm.service.prompttemplatesapplications.PromptTemplatesApplicationsService;
|
||||
|
||||
@Tag(name = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系")
|
||||
@RestController
|
||||
@RequestMapping("/llm/prompt-templates-applications")
|
||||
@Validated
|
||||
public class PromptTemplatesApplicationsController {
|
||||
|
||||
@Resource
|
||||
private PromptTemplatesApplicationsService promptTemplatesApplicationsService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建Prompt 模板 应用关系表,记录模板和应用之间的多对多关系")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:create')")
|
||||
public CommonResult<Long> createPromptTemplatesApplications(@Valid @RequestBody PromptTemplatesApplicationsSaveReqVO createReqVO) {
|
||||
return success(promptTemplatesApplicationsService.createPromptTemplatesApplications(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新Prompt 模板 应用关系表,记录模板和应用之间的多对多关系")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:update')")
|
||||
public CommonResult<Boolean> updatePromptTemplatesApplications(@Valid @RequestBody PromptTemplatesApplicationsSaveReqVO updateReqVO) {
|
||||
promptTemplatesApplicationsService.updatePromptTemplatesApplications(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除Prompt 模板 应用关系表,记录模板和应用之间的多对多关系")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:delete')")
|
||||
public CommonResult<Boolean> deletePromptTemplatesApplications(@RequestParam("id") Long id) {
|
||||
promptTemplatesApplicationsService.deletePromptTemplatesApplications(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得Prompt 模板 应用关系表,记录模板和应用之间的多对多关系")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:query')")
|
||||
public CommonResult<PromptTemplatesApplicationsRespVO> getPromptTemplatesApplications(@RequestParam("id") Long id) {
|
||||
PromptTemplatesApplicationsDO promptTemplatesApplications = promptTemplatesApplicationsService.getPromptTemplatesApplications(id);
|
||||
return success(BeanUtils.toBean(promptTemplatesApplications, PromptTemplatesApplicationsRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得Prompt 模板 应用关系表,记录模板和应用之间的多对多关系分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:query')")
|
||||
public CommonResult<PageResult<PromptTemplatesApplicationsRespVO>> getPromptTemplatesApplicationsPage(@Valid PromptTemplatesApplicationsPageReqVO pageReqVO) {
|
||||
PageResult<PromptTemplatesApplicationsDO> pageResult = promptTemplatesApplicationsService.getPromptTemplatesApplicationsPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, PromptTemplatesApplicationsRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportPromptTemplatesApplicationsExcel(@Valid PromptTemplatesApplicationsPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<PromptTemplatesApplicationsDO> list = promptTemplatesApplicationsService.getPromptTemplatesApplicationsPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "Prompt 模板 应用关系表,记录模板和应用之间的多对多关系.xls", "数据", PromptTemplatesApplicationsRespVO.class,
|
||||
BeanUtils.toBean(list, PromptTemplatesApplicationsRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class PromptTemplatesApplicationsPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "Prompt 模板ID", example = "5359")
|
||||
private Long promptTemplateId;
|
||||
|
||||
@Schema(description = "应用ID", example = "32098")
|
||||
private Long applicationId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PromptTemplatesApplicationsRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16475")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "Prompt 模板ID", example = "5359")
|
||||
@ExcelProperty("Prompt 模板ID")
|
||||
private Long promptTemplateId;
|
||||
|
||||
@Schema(description = "应用ID", example = "32098")
|
||||
@ExcelProperty("应用ID")
|
||||
private Long applicationId;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板 应用关系表,记录模板和应用之间的多对多关系新增/修改 Request VO")
|
||||
@Data
|
||||
public class PromptTemplatesApplicationsSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16475")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "Prompt 模板ID", example = "5359")
|
||||
private Long promptTemplateId;
|
||||
|
||||
@Schema(description = "应用ID", example = "32098")
|
||||
private Long applicationId;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags.PromptTemplatesTagsDO;
|
||||
import cn.iocoder.yudao.module.llm.service.prompttemplatestags.PromptTemplatesTagsService;
|
||||
|
||||
@Tag(name = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系")
|
||||
@RestController
|
||||
@RequestMapping("/llm/prompt-templates-tags")
|
||||
@Validated
|
||||
public class PromptTemplatesTagsController {
|
||||
|
||||
@Resource
|
||||
private PromptTemplatesTagsService promptTemplatesTagsService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建Prompt 模板标签关系表,记录模板和标签之间的多对多关系")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:create')")
|
||||
public CommonResult<Long> createPromptTemplatesTags(@Valid @RequestBody PromptTemplatesTagsSaveReqVO createReqVO) {
|
||||
return success(promptTemplatesTagsService.createPromptTemplatesTags(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新Prompt 模板标签关系表,记录模板和标签之间的多对多关系")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:update')")
|
||||
public CommonResult<Boolean> updatePromptTemplatesTags(@Valid @RequestBody PromptTemplatesTagsSaveReqVO updateReqVO) {
|
||||
promptTemplatesTagsService.updatePromptTemplatesTags(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除Prompt 模板标签关系表,记录模板和标签之间的多对多关系")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:delete')")
|
||||
public CommonResult<Boolean> deletePromptTemplatesTags(@RequestParam("id") Long id) {
|
||||
promptTemplatesTagsService.deletePromptTemplatesTags(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得Prompt 模板标签关系表,记录模板和标签之间的多对多关系")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:query')")
|
||||
public CommonResult<PromptTemplatesTagsRespVO> getPromptTemplatesTags(@RequestParam("id") Long id) {
|
||||
PromptTemplatesTagsDO promptTemplatesTags = promptTemplatesTagsService.getPromptTemplatesTags(id);
|
||||
return success(BeanUtils.toBean(promptTemplatesTags, PromptTemplatesTagsRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得Prompt 模板标签关系表,记录模板和标签之间的多对多关系分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:query')")
|
||||
public CommonResult<PageResult<PromptTemplatesTagsRespVO>> getPromptTemplatesTagsPage(@Valid PromptTemplatesTagsPageReqVO pageReqVO) {
|
||||
PageResult<PromptTemplatesTagsDO> pageResult = promptTemplatesTagsService.getPromptTemplatesTagsPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, PromptTemplatesTagsRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportPromptTemplatesTagsExcel(@Valid PromptTemplatesTagsPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<PromptTemplatesTagsDO> list = promptTemplatesTagsService.getPromptTemplatesTagsPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "Prompt 模板标签关系表,记录模板和标签之间的多对多关系.xls", "数据", PromptTemplatesTagsRespVO.class,
|
||||
BeanUtils.toBean(list, PromptTemplatesTagsRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class PromptTemplatesTagsPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "Prompt 模板ID", example = "25001")
|
||||
private Long promptTemplateId;
|
||||
|
||||
@Schema(description = "标签ID", example = "23560")
|
||||
private Long tagId;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class PromptTemplatesTagsRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2237")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "Prompt 模板ID", example = "25001")
|
||||
@ExcelProperty("Prompt 模板ID")
|
||||
private Long promptTemplateId;
|
||||
|
||||
@Schema(description = "标签ID", example = "23560")
|
||||
@ExcelProperty("标签ID")
|
||||
private Long tagId;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
@Schema(description = "管理后台 - Prompt 模板标签关系表,记录模板和标签之间的多对多关系新增/修改 Request VO")
|
||||
@Data
|
||||
public class PromptTemplatesTagsSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2237")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "Prompt 模板ID", example = "25001")
|
||||
private Long promptTemplateId;
|
||||
|
||||
@Schema(description = "标签ID", example = "23560")
|
||||
private Long tagId;
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.training;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.*;
|
||||
import javax.servlet.http.*;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||
|
||||
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.training.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.training.TrainingDO;
|
||||
import cn.iocoder.yudao.module.llm.service.training.TrainingService;
|
||||
|
||||
@Tag(name = "管理后台 - 训练")
|
||||
@RestController
|
||||
@RequestMapping("/llm/training")
|
||||
@Validated
|
||||
public class TrainingController {
|
||||
|
||||
@Resource
|
||||
private TrainingService trainingService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建训练")
|
||||
@PreAuthorize("@ss.hasPermission('llm:training:create')")
|
||||
public CommonResult<Integer> createTraining(@Valid @RequestBody TrainingSaveReqVO createReqVO) {
|
||||
return success(trainingService.createTraining(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新训练")
|
||||
@PreAuthorize("@ss.hasPermission('llm:training:update')")
|
||||
public CommonResult<Boolean> updateTraining(@Valid @RequestBody TrainingSaveReqVO updateReqVO) {
|
||||
trainingService.updateTraining(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除训练")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('llm:training:delete')")
|
||||
public CommonResult<Boolean> deleteTraining(@RequestParam("id") Integer id) {
|
||||
trainingService.deleteTraining(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得训练")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('llm:training:query')")
|
||||
public CommonResult<TrainingRespVO> getTraining(@RequestParam("id") Integer id) {
|
||||
TrainingDO training = trainingService.getTraining(id);
|
||||
return success(BeanUtils.toBean(training, TrainingRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得训练分页")
|
||||
@PreAuthorize("@ss.hasPermission('llm:training:query')")
|
||||
public CommonResult<PageResult<TrainingRespVO>> getTrainingPage(@Valid TrainingPageReqVO pageReqVO) {
|
||||
PageResult<TrainingDO> pageResult = trainingService.getTrainingPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, TrainingRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出训练 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('llm:training:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportTrainingExcel(@Valid TrainingPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<TrainingDO> list = trainingService.getTrainingPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "训练.xls", "数据", TrainingRespVO.class,
|
||||
BeanUtils.toBean(list, TrainingRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.training.vo;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 训练分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class TrainingPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "基座模型名称", example = "张三")
|
||||
private String modelName;
|
||||
|
||||
@Schema(description = "介绍", example = "你说的对")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "训练轮次")
|
||||
private Integer trainingEpochs;
|
||||
|
||||
@Schema(description = "启用Lora")
|
||||
private Boolean useLora;
|
||||
|
||||
@Schema(description = "训练批次")
|
||||
private Integer trainingBatchSize;
|
||||
|
||||
@Schema(description = "评估批次")
|
||||
private Integer evaluationBatchSize;
|
||||
|
||||
@Schema(description = "梯度累加步数")
|
||||
private Integer gradientAccumulationSteps;
|
||||
|
||||
@Schema(description = "使用GPU数量", example = "22492")
|
||||
private Integer gpuCount;
|
||||
|
||||
@Schema(description = "学习率")
|
||||
private BigDecimal learningRate;
|
||||
|
||||
@Schema(description = "最大长度")
|
||||
private Integer maxLength;
|
||||
|
||||
@Schema(description = "记录创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@Schema(description = "记录更新时间")
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.training.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
@Schema(description = "管理后台 - 训练 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class TrainingRespVO {
|
||||
|
||||
@Schema(description = "自增ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11614")
|
||||
@ExcelProperty("自增ID")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "基座模型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||
@ExcelProperty("基座模型名称")
|
||||
private String modelName;
|
||||
|
||||
@Schema(description = "介绍", example = "你说的对")
|
||||
@ExcelProperty("介绍")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "训练轮次", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("训练轮次")
|
||||
private Integer trainingEpochs;
|
||||
|
||||
@Schema(description = "启用Lora", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("启用Lora")
|
||||
private Boolean useLora;
|
||||
|
||||
@Schema(description = "训练批次", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("训练批次")
|
||||
private Integer trainingBatchSize;
|
||||
|
||||
@Schema(description = "评估批次", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("评估批次")
|
||||
private Integer evaluationBatchSize;
|
||||
|
||||
@Schema(description = "梯度累加步数", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("梯度累加步数")
|
||||
private Integer gradientAccumulationSteps;
|
||||
|
||||
@Schema(description = "使用GPU数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "22492")
|
||||
@ExcelProperty("使用GPU数量")
|
||||
private Integer gpuCount;
|
||||
|
||||
@Schema(description = "学习率", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("学习率")
|
||||
private BigDecimal learningRate;
|
||||
|
||||
@Schema(description = "最大长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("最大长度")
|
||||
private Integer maxLength;
|
||||
|
||||
@Schema(description = "记录创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("记录创建时间")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@Schema(description = "记录更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("记录更新时间")
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.training.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import javax.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 训练新增/修改 Request VO")
|
||||
@Data
|
||||
public class TrainingSaveReqVO {
|
||||
|
||||
@Schema(description = "自增ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11614")
|
||||
private Integer id;
|
||||
|
||||
@Schema(description = "基座模型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||
@NotEmpty(message = "基座模型名称不能为空")
|
||||
private String modelName;
|
||||
|
||||
@Schema(description = "介绍", example = "你说的对")
|
||||
private String description;
|
||||
|
||||
@Schema(description = "训练轮次", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "训练轮次不能为空")
|
||||
private Integer trainingEpochs;
|
||||
|
||||
@Schema(description = "启用Lora", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "启用Lora不能为空")
|
||||
private Boolean useLora;
|
||||
|
||||
@Schema(description = "训练批次", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "训练批次不能为空")
|
||||
private Integer trainingBatchSize;
|
||||
|
||||
@Schema(description = "评估批次", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "评估批次不能为空")
|
||||
private Integer evaluationBatchSize;
|
||||
|
||||
@Schema(description = "梯度累加步数", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "梯度累加步数不能为空")
|
||||
private Integer gradientAccumulationSteps;
|
||||
|
||||
@Schema(description = "使用GPU数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "22492")
|
||||
@NotNull(message = "使用GPU数量不能为空")
|
||||
private Integer gpuCount;
|
||||
|
||||
@Schema(description = "学习率", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "学习率不能为空")
|
||||
private BigDecimal learningRate;
|
||||
|
||||
@Schema(description = "最大长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "最大长度不能为空")
|
||||
private Integer maxLength;
|
||||
|
||||
@Schema(description = "记录创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "记录创建时间不能为空")
|
||||
private LocalDateTime createdAt;
|
||||
|
||||
@Schema(description = "记录更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "记录更新时间不能为空")
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
@ -61,14 +61,10 @@ public class ApplicationDO extends BaseDO {
|
||||
* 单次回复限制
|
||||
*/
|
||||
private Integer maxTokens;
|
||||
/**
|
||||
* 系统Prompt
|
||||
*/
|
||||
private String prompt;
|
||||
/**
|
||||
* 向量知识库,知识库ID
|
||||
*/
|
||||
private Long retrievalAugmentedGeneration;
|
||||
private Long modelServiceId;
|
||||
/**
|
||||
* 应用API地址
|
||||
*/
|
||||
@ -81,5 +77,13 @@ public class ApplicationDO extends BaseDO {
|
||||
* 聊天人次
|
||||
*/
|
||||
private Long chatCount;
|
||||
/**
|
||||
* 大模型服务的推理参数,以JSON格式存储
|
||||
*/
|
||||
private String modelParams;
|
||||
/**
|
||||
* 系统Prompt
|
||||
*/
|
||||
private String prompt;
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,59 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.basemodel;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 基座模型 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_base_model")
|
||||
@KeySequence("llm_base_model_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class BaseModelDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 基座模型唯一标识
|
||||
*/
|
||||
@TableId
|
||||
private Integer id;
|
||||
/**
|
||||
* 基座模型名称
|
||||
*/
|
||||
private String modelName;
|
||||
/**
|
||||
* 参数量
|
||||
*/
|
||||
private Integer parameterCount;
|
||||
/**
|
||||
* 最大上下文长度
|
||||
*/
|
||||
private Integer maxContextLength;
|
||||
/**
|
||||
* 模型类型
|
||||
*/
|
||||
private String modelType;
|
||||
/**
|
||||
* 是否启动
|
||||
*/
|
||||
private Boolean isActive;
|
||||
/**
|
||||
* 是否微调
|
||||
*/
|
||||
private Boolean isFinetuned;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String notes;
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.conversation;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 大模型对话记录 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_conversation")
|
||||
@KeySequence("llm_conversation_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ConversationDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 对话记录的唯一标识
|
||||
*/
|
||||
@TableId
|
||||
private Integer id;
|
||||
/**
|
||||
* 对话中的角色: user, assistant, system
|
||||
*/
|
||||
private String role;
|
||||
/**
|
||||
* 对话的内容
|
||||
*/
|
||||
private String content;
|
||||
/**
|
||||
* 推理参数,采用 JSON 格式
|
||||
*/
|
||||
private String modelParams;
|
||||
/**
|
||||
* 提示词
|
||||
*/
|
||||
private String prompt;
|
||||
/**
|
||||
* 知识库相关信息
|
||||
*/
|
||||
private String knowledgeBaseId;
|
||||
/**
|
||||
* 应用ID
|
||||
*/
|
||||
private Long applicationId;
|
||||
/**
|
||||
* 模型服务ID
|
||||
*/
|
||||
private Long modelServiceId;
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 数据处理任务 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_data_process_task")
|
||||
@KeySequence("llm_data_process_task_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DataProcessTaskDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 数据处理任务ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String taskName;
|
||||
/**
|
||||
* 处理前数据集ID
|
||||
*/
|
||||
private Long datasetId;
|
||||
/**
|
||||
* 状态,使用字典(llm_data_process_status)
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 处理后的数据集ID
|
||||
*/
|
||||
private Long datasetPostId;
|
||||
/**
|
||||
* 配置信息
|
||||
*/
|
||||
private String options;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 数据集数据问题标注内容 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_dataset_answer")
|
||||
@KeySequence("llm_dataset_answer_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DatasetAnswerDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 数据集问题ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 数据集ID
|
||||
*/
|
||||
private Long datasetId;
|
||||
/**
|
||||
* 数据文件ID
|
||||
*/
|
||||
private Long datasetFilesId;
|
||||
/**
|
||||
* 问题ID
|
||||
*/
|
||||
private Long questionId;
|
||||
/**
|
||||
* 标注内容
|
||||
*/
|
||||
private String answer;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 数据集数据文件 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_dataset_files")
|
||||
@KeySequence("llm_dataset_files_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DatasetFilesDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 数据集ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 数据集ID
|
||||
*/
|
||||
private Long datasetId;
|
||||
/**
|
||||
* 数据长度
|
||||
*/
|
||||
private Long dataLength;
|
||||
/**
|
||||
* 数据文件(文件表的ID)
|
||||
*/
|
||||
private Long datasetFile;
|
||||
/**
|
||||
* 文件URL地址
|
||||
*/
|
||||
private String datasetFileUrl;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 数据集数据问题 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_dataset_question")
|
||||
@KeySequence("llm_dataset_question_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DatasetQuestionDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 数据集问题ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 数据集ID
|
||||
*/
|
||||
private Long datasetId;
|
||||
/**
|
||||
* 数据文件ID
|
||||
*/
|
||||
private Long datasetFilesId;
|
||||
/**
|
||||
* 问题内容
|
||||
*/
|
||||
private String question;
|
||||
/**
|
||||
* 标注状态,使用字典(llm_dataset_mark_status)
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.finetuning;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 模型微调 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_fine_tuning")
|
||||
@KeySequence("llm_fine_tuning_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class FineTuningDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 微调记录唯一标识
|
||||
*/
|
||||
@TableId
|
||||
private Integer id;
|
||||
/**
|
||||
* 关联的基座模型ID
|
||||
*/
|
||||
private Integer baseModelId;
|
||||
/**
|
||||
* 训练数据量
|
||||
*/
|
||||
private Integer trainingDataSize;
|
||||
/**
|
||||
* 评估数据集
|
||||
*/
|
||||
private String evaluationDataset;
|
||||
/**
|
||||
* 平均分
|
||||
*/
|
||||
private BigDecimal averageScore;
|
||||
/**
|
||||
* 评估状态
|
||||
*/
|
||||
private String evaluationStatus;
|
||||
/**
|
||||
* lora路径
|
||||
*/
|
||||
private String loraPath;
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 损失记录表,用于记录每次训练的损失值 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_fine_tuning_loss")
|
||||
@KeySequence("llm_fine_tuning_loss_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class FineTuningLossDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 微调任务ID
|
||||
*/
|
||||
private Long taskId;
|
||||
/**
|
||||
* 训练轮数
|
||||
*/
|
||||
private Integer epoch;
|
||||
/**
|
||||
* 损失值
|
||||
*/
|
||||
private Double lossValue;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocuments;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 知识库文档 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_knowledge_documents")
|
||||
@KeySequence("llm_knowledge_documents_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class KnowledgeDocumentsDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 知识库文档ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 知识库ID
|
||||
*/
|
||||
private Long knowledgeBaseId;
|
||||
/**
|
||||
* 文档名称
|
||||
*/
|
||||
private String documentName;
|
||||
/**
|
||||
* 文件URL地址
|
||||
*/
|
||||
private String fileUrl;
|
||||
/**
|
||||
* 文件状态,使用字典(llm_file_status)
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocumentschunks;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 知识库文档块 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_knowledge_documents_chunks")
|
||||
@KeySequence("llm_knowledge_documents_chunks_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class KnowledgeDocumentsChunksDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 知识库文档ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 知识库ID
|
||||
*/
|
||||
private Long knowledgeBaseId;
|
||||
/**
|
||||
* 文档ID
|
||||
*/
|
||||
private Long documentId;
|
||||
/**
|
||||
* 块ID
|
||||
*/
|
||||
private Long chunkId;
|
||||
/**
|
||||
* 向量数据
|
||||
*/
|
||||
private byte[] vector;
|
||||
/**
|
||||
* 文本块内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocumentschunksvectorized;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 向量化存储 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_knowledge_documents_chunks_vectorized")
|
||||
@KeySequence("llm_knowledge_documents_chunks_vectorized_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class KnowledgeDocumentsChunksVectorizedDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 知识库文档ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 知识库ID
|
||||
*/
|
||||
private Long knowledgeBaseId;
|
||||
/**
|
||||
* 文档ID
|
||||
*/
|
||||
private Long documentId;
|
||||
/**
|
||||
* 块在文档中的索引
|
||||
*/
|
||||
private Integer indexInDocument;
|
||||
/**
|
||||
* 文档块内容
|
||||
*/
|
||||
private String chunkText;
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* Prompt 模板表,用于记录每个模板的信息 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_prompt_templates")
|
||||
@KeySequence("llm_prompt_templates_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PromptTemplatesDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* Prompt 模板ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* Prompt 模板名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 模板分类,使用字典(llm_prompt_template_category)
|
||||
*/
|
||||
private Integer templateCategory;
|
||||
/**
|
||||
* 模板框架,使用字典(llm_prompt_template_framework)
|
||||
*/
|
||||
private Integer templateFramework;
|
||||
/**
|
||||
* 模板内容
|
||||
*/
|
||||
private String templateText;
|
||||
/**
|
||||
* 变量标识符,使用字典(llm_variable_identifier)
|
||||
*/
|
||||
private Integer variableIdentifier;
|
||||
/**
|
||||
* 模板类型(1 - 预制模板、2 - 自定义模板)
|
||||
*/
|
||||
private Integer templateType;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_prompt_templates_applications")
|
||||
@KeySequence("llm_prompt_templates_applications_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PromptTemplatesApplicationsDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* Prompt 模板ID
|
||||
*/
|
||||
private Long promptTemplateId;
|
||||
/**
|
||||
* 应用ID
|
||||
*/
|
||||
private Long applicationId;
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* Prompt 模板标签关系表,记录模板和标签之间的多对多关系 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_prompt_templates_tags")
|
||||
@KeySequence("llm_prompt_templates_tags_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class PromptTemplatesTagsDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* Prompt 模板ID
|
||||
*/
|
||||
private Long promptTemplateId;
|
||||
/**
|
||||
* 标签ID
|
||||
*/
|
||||
private Long tagId;
|
||||
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.dataobject.training;
|
||||
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 训练 DO
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@TableName("llm_training")
|
||||
@KeySequence("llm_training_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class TrainingDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 自增ID
|
||||
*/
|
||||
@TableId
|
||||
private Integer id;
|
||||
/**
|
||||
* 基座模型名称
|
||||
*/
|
||||
private String modelName;
|
||||
/**
|
||||
* 介绍
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* 训练轮次
|
||||
*/
|
||||
private Integer trainingEpochs;
|
||||
/**
|
||||
* 启用Lora
|
||||
*/
|
||||
private Boolean useLora;
|
||||
/**
|
||||
* 训练批次
|
||||
*/
|
||||
private Integer trainingBatchSize;
|
||||
/**
|
||||
* 评估批次
|
||||
*/
|
||||
private Integer evaluationBatchSize;
|
||||
/**
|
||||
* 梯度累加步数
|
||||
*/
|
||||
private Integer gradientAccumulationSteps;
|
||||
/**
|
||||
* 使用GPU数量
|
||||
*/
|
||||
private Integer gpuCount;
|
||||
/**
|
||||
* 学习率
|
||||
*/
|
||||
private BigDecimal learningRate;
|
||||
/**
|
||||
* 最大长度
|
||||
*/
|
||||
private Integer maxLength;
|
||||
/**
|
||||
* 记录创建时间
|
||||
*/
|
||||
private LocalDateTime createdAt;
|
||||
/**
|
||||
* 记录更新时间
|
||||
*/
|
||||
private LocalDateTime updatedAt;
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.basemodel;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*;
|
||||
|
||||
/**
|
||||
* 基座模型 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface BaseModelMapper extends BaseMapperX<BaseModelDO> {
|
||||
|
||||
default PageResult<BaseModelDO> selectPage(BaseModelPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<BaseModelDO>()
|
||||
.likeIfPresent(BaseModelDO::getModelName, reqVO.getModelName())
|
||||
.eqIfPresent(BaseModelDO::getParameterCount, reqVO.getParameterCount())
|
||||
.eqIfPresent(BaseModelDO::getMaxContextLength, reqVO.getMaxContextLength())
|
||||
.eqIfPresent(BaseModelDO::getModelType, reqVO.getModelType())
|
||||
.eqIfPresent(BaseModelDO::getIsActive, reqVO.getIsActive())
|
||||
.eqIfPresent(BaseModelDO::getIsFinetuned, reqVO.getIsFinetuned())
|
||||
.eqIfPresent(BaseModelDO::getNotes, reqVO.getNotes())
|
||||
.betweenIfPresent(BaseModelDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(BaseModelDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.conversation;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.conversation.ConversationDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.*;
|
||||
|
||||
/**
|
||||
* 大模型对话记录 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface ConversationMapper extends BaseMapperX<ConversationDO> {
|
||||
|
||||
default PageResult<ConversationDO> selectPage(ConversationPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ConversationDO>()
|
||||
.eqIfPresent(ConversationDO::getRole, reqVO.getRole())
|
||||
.eqIfPresent(ConversationDO::getContent, reqVO.getContent())
|
||||
.eqIfPresent(ConversationDO::getModelParams, reqVO.getModelParams())
|
||||
.eqIfPresent(ConversationDO::getPrompt, reqVO.getPrompt())
|
||||
.eqIfPresent(ConversationDO::getKnowledgeBaseId, reqVO.getKnowledgeBaseId())
|
||||
.eqIfPresent(ConversationDO::getApplicationId, reqVO.getApplicationId())
|
||||
.eqIfPresent(ConversationDO::getModelServiceId, reqVO.getModelServiceId())
|
||||
.betweenIfPresent(ConversationDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ConversationDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.dataprocesstask;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.dataprocesstask.DataProcessTaskDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.dataprocesstask.vo.*;
|
||||
|
||||
/**
|
||||
* 数据处理任务 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface DataProcessTaskMapper extends BaseMapperX<DataProcessTaskDO> {
|
||||
|
||||
default PageResult<DataProcessTaskDO> selectPage(DataProcessTaskPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<DataProcessTaskDO>()
|
||||
.likeIfPresent(DataProcessTaskDO::getTaskName, reqVO.getTaskName())
|
||||
.eqIfPresent(DataProcessTaskDO::getDatasetId, reqVO.getDatasetId())
|
||||
.betweenIfPresent(DataProcessTaskDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(DataProcessTaskDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(DataProcessTaskDO::getDatasetPostId, reqVO.getDatasetPostId())
|
||||
.eqIfPresent(DataProcessTaskDO::getOptions, reqVO.getOptions())
|
||||
.orderByDesc(DataProcessTaskDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.datasetanswer;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.datasetanswer.DatasetAnswerDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.datasetanswer.vo.*;
|
||||
|
||||
/**
|
||||
* 数据集数据问题标注内容 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface DatasetAnswerMapper extends BaseMapperX<DatasetAnswerDO> {
|
||||
|
||||
default PageResult<DatasetAnswerDO> selectPage(DatasetAnswerPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<DatasetAnswerDO>()
|
||||
.eqIfPresent(DatasetAnswerDO::getDatasetId, reqVO.getDatasetId())
|
||||
.eqIfPresent(DatasetAnswerDO::getDatasetFilesId, reqVO.getDatasetFilesId())
|
||||
.eqIfPresent(DatasetAnswerDO::getQuestionId, reqVO.getQuestionId())
|
||||
.eqIfPresent(DatasetAnswerDO::getAnswer, reqVO.getAnswer())
|
||||
.betweenIfPresent(DatasetAnswerDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(DatasetAnswerDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.datasetfiles;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.datasetfiles.DatasetFilesDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.datasetfiles.vo.*;
|
||||
|
||||
/**
|
||||
* 数据集数据文件 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface DatasetFilesMapper extends BaseMapperX<DatasetFilesDO> {
|
||||
|
||||
default PageResult<DatasetFilesDO> selectPage(DatasetFilesPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<DatasetFilesDO>()
|
||||
.eqIfPresent(DatasetFilesDO::getDatasetId, reqVO.getDatasetId())
|
||||
.eqIfPresent(DatasetFilesDO::getDataLength, reqVO.getDataLength())
|
||||
.eqIfPresent(DatasetFilesDO::getDatasetFile, reqVO.getDatasetFile())
|
||||
.eqIfPresent(DatasetFilesDO::getDatasetFileUrl, reqVO.getDatasetFileUrl())
|
||||
.betweenIfPresent(DatasetFilesDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(DatasetFilesDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.datasetquestion;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.datasetquestion.DatasetQuestionDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.datasetquestion.vo.*;
|
||||
|
||||
/**
|
||||
* 数据集数据问题 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface DatasetQuestionMapper extends BaseMapperX<DatasetQuestionDO> {
|
||||
|
||||
default PageResult<DatasetQuestionDO> selectPage(DatasetQuestionPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<DatasetQuestionDO>()
|
||||
.eqIfPresent(DatasetQuestionDO::getDatasetId, reqVO.getDatasetId())
|
||||
.eqIfPresent(DatasetQuestionDO::getDatasetFilesId, reqVO.getDatasetFilesId())
|
||||
.eqIfPresent(DatasetQuestionDO::getQuestion, reqVO.getQuestion())
|
||||
.eqIfPresent(DatasetQuestionDO::getStatus, reqVO.getStatus())
|
||||
.betweenIfPresent(DatasetQuestionDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(DatasetQuestionDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.finetuning;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuning.FineTuningDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.finetuning.vo.*;
|
||||
|
||||
/**
|
||||
* 模型微调 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface FineTuningMapper extends BaseMapperX<FineTuningDO> {
|
||||
|
||||
default PageResult<FineTuningDO> selectPage(FineTuningPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<FineTuningDO>()
|
||||
.eqIfPresent(FineTuningDO::getBaseModelId, reqVO.getBaseModelId())
|
||||
.eqIfPresent(FineTuningDO::getTrainingDataSize, reqVO.getTrainingDataSize())
|
||||
.eqIfPresent(FineTuningDO::getEvaluationDataset, reqVO.getEvaluationDataset())
|
||||
.eqIfPresent(FineTuningDO::getAverageScore, reqVO.getAverageScore())
|
||||
.eqIfPresent(FineTuningDO::getEvaluationStatus, reqVO.getEvaluationStatus())
|
||||
.eqIfPresent(FineTuningDO::getLoraPath, reqVO.getLoraPath())
|
||||
.betweenIfPresent(FineTuningDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(FineTuningDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.finetuningloss;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningloss.FineTuningLossDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.finetuningloss.vo.*;
|
||||
|
||||
/**
|
||||
* 损失记录表,用于记录每次训练的损失值 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface FineTuningLossMapper extends BaseMapperX<FineTuningLossDO> {
|
||||
|
||||
default PageResult<FineTuningLossDO> selectPage(FineTuningLossPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<FineTuningLossDO>()
|
||||
.betweenIfPresent(FineTuningLossDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(FineTuningLossDO::getTaskId, reqVO.getTaskId())
|
||||
.eqIfPresent(FineTuningLossDO::getEpoch, reqVO.getEpoch())
|
||||
.eqIfPresent(FineTuningLossDO::getLossValue, reqVO.getLossValue())
|
||||
.orderByDesc(FineTuningLossDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.knowledgedocuments;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocuments.KnowledgeDocumentsDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocuments.vo.*;
|
||||
|
||||
/**
|
||||
* 知识库文档 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface KnowledgeDocumentsMapper extends BaseMapperX<KnowledgeDocumentsDO> {
|
||||
|
||||
default PageResult<KnowledgeDocumentsDO> selectPage(KnowledgeDocumentsPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<KnowledgeDocumentsDO>()
|
||||
.eqIfPresent(KnowledgeDocumentsDO::getKnowledgeBaseId, reqVO.getKnowledgeBaseId())
|
||||
.likeIfPresent(KnowledgeDocumentsDO::getDocumentName, reqVO.getDocumentName())
|
||||
.eqIfPresent(KnowledgeDocumentsDO::getFileUrl, reqVO.getFileUrl())
|
||||
.betweenIfPresent(KnowledgeDocumentsDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(KnowledgeDocumentsDO::getStatus, reqVO.getStatus())
|
||||
.orderByDesc(KnowledgeDocumentsDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.knowledgedocumentschunks;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocumentschunks.KnowledgeDocumentsChunksDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunks.vo.*;
|
||||
|
||||
/**
|
||||
* 知识库文档块 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface KnowledgeDocumentsChunksMapper extends BaseMapperX<KnowledgeDocumentsChunksDO> {
|
||||
|
||||
default PageResult<KnowledgeDocumentsChunksDO> selectPage(KnowledgeDocumentsChunksPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<KnowledgeDocumentsChunksDO>()
|
||||
.eqIfPresent(KnowledgeDocumentsChunksDO::getKnowledgeBaseId, reqVO.getKnowledgeBaseId())
|
||||
.eqIfPresent(KnowledgeDocumentsChunksDO::getDocumentId, reqVO.getDocumentId())
|
||||
.eqIfPresent(KnowledgeDocumentsChunksDO::getChunkId, reqVO.getChunkId())
|
||||
.betweenIfPresent(KnowledgeDocumentsChunksDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(KnowledgeDocumentsChunksDO::getVector, reqVO.getVector())
|
||||
.eqIfPresent(KnowledgeDocumentsChunksDO::getContent, reqVO.getContent())
|
||||
.orderByDesc(KnowledgeDocumentsChunksDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.knowledgedocumentschunksvectorized;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.knowledgedocumentschunksvectorized.KnowledgeDocumentsChunksVectorizedDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.knowledgedocumentschunksvectorized.vo.*;
|
||||
|
||||
/**
|
||||
* 向量化存储 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface KnowledgeDocumentsChunksVectorizedMapper extends BaseMapperX<KnowledgeDocumentsChunksVectorizedDO> {
|
||||
|
||||
default PageResult<KnowledgeDocumentsChunksVectorizedDO> selectPage(KnowledgeDocumentsChunksVectorizedPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<KnowledgeDocumentsChunksVectorizedDO>()
|
||||
.eqIfPresent(KnowledgeDocumentsChunksVectorizedDO::getKnowledgeBaseId, reqVO.getKnowledgeBaseId())
|
||||
.eqIfPresent(KnowledgeDocumentsChunksVectorizedDO::getDocumentId, reqVO.getDocumentId())
|
||||
.eqIfPresent(KnowledgeDocumentsChunksVectorizedDO::getIndexInDocument, reqVO.getIndexInDocument())
|
||||
.betweenIfPresent(KnowledgeDocumentsChunksVectorizedDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(KnowledgeDocumentsChunksVectorizedDO::getChunkText, reqVO.getChunkText())
|
||||
.orderByDesc(KnowledgeDocumentsChunksVectorizedDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplates;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.*;
|
||||
|
||||
/**
|
||||
* Prompt 模板表,用于记录每个模板的信息 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface PromptTemplatesMapper extends BaseMapperX<PromptTemplatesDO> {
|
||||
|
||||
default PageResult<PromptTemplatesDO> selectPage(PromptTemplatesPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<PromptTemplatesDO>()
|
||||
.likeIfPresent(PromptTemplatesDO::getName, reqVO.getName())
|
||||
.eqIfPresent(PromptTemplatesDO::getTemplateCategory, reqVO.getTemplateCategory())
|
||||
.eqIfPresent(PromptTemplatesDO::getTemplateFramework, reqVO.getTemplateFramework())
|
||||
.eqIfPresent(PromptTemplatesDO::getTemplateText, reqVO.getTemplateText())
|
||||
.eqIfPresent(PromptTemplatesDO::getVariableIdentifier, reqVO.getVariableIdentifier())
|
||||
.eqIfPresent(PromptTemplatesDO::getTemplateType, reqVO.getTemplateType())
|
||||
.betweenIfPresent(PromptTemplatesDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(PromptTemplatesDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplications;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplications.vo.*;
|
||||
|
||||
/**
|
||||
* Prompt 模板 应用关系表,记录模板和应用之间的多对多关系 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface PromptTemplatesApplicationsMapper extends BaseMapperX<PromptTemplatesApplicationsDO> {
|
||||
|
||||
default PageResult<PromptTemplatesApplicationsDO> selectPage(PromptTemplatesApplicationsPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<PromptTemplatesApplicationsDO>()
|
||||
.eqIfPresent(PromptTemplatesApplicationsDO::getPromptTemplateId, reqVO.getPromptTemplateId())
|
||||
.eqIfPresent(PromptTemplatesApplicationsDO::getApplicationId, reqVO.getApplicationId())
|
||||
.betweenIfPresent(PromptTemplatesApplicationsDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(PromptTemplatesApplicationsDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestags;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags.PromptTemplatesTagsDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestags.vo.*;
|
||||
|
||||
/**
|
||||
* Prompt 模板标签关系表,记录模板和标签之间的多对多关系 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface PromptTemplatesTagsMapper extends BaseMapperX<PromptTemplatesTagsDO> {
|
||||
|
||||
default PageResult<PromptTemplatesTagsDO> selectPage(PromptTemplatesTagsPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<PromptTemplatesTagsDO>()
|
||||
.eqIfPresent(PromptTemplatesTagsDO::getPromptTemplateId, reqVO.getPromptTemplateId())
|
||||
.eqIfPresent(PromptTemplatesTagsDO::getTagId, reqVO.getTagId())
|
||||
.betweenIfPresent(PromptTemplatesTagsDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(PromptTemplatesTagsDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package cn.iocoder.yudao.module.llm.dal.mysql.training;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.training.TrainingDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.training.vo.*;
|
||||
|
||||
/**
|
||||
* 训练 Mapper
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Mapper
|
||||
public interface TrainingMapper extends BaseMapperX<TrainingDO> {
|
||||
|
||||
default PageResult<TrainingDO> selectPage(TrainingPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<TrainingDO>()
|
||||
.likeIfPresent(TrainingDO::getModelName, reqVO.getModelName())
|
||||
.eqIfPresent(TrainingDO::getDescription, reqVO.getDescription())
|
||||
.eqIfPresent(TrainingDO::getTrainingEpochs, reqVO.getTrainingEpochs())
|
||||
.eqIfPresent(TrainingDO::getUseLora, reqVO.getUseLora())
|
||||
.eqIfPresent(TrainingDO::getTrainingBatchSize, reqVO.getTrainingBatchSize())
|
||||
.eqIfPresent(TrainingDO::getEvaluationBatchSize, reqVO.getEvaluationBatchSize())
|
||||
.eqIfPresent(TrainingDO::getGradientAccumulationSteps, reqVO.getGradientAccumulationSteps())
|
||||
.eqIfPresent(TrainingDO::getGpuCount, reqVO.getGpuCount())
|
||||
.eqIfPresent(TrainingDO::getLearningRate, reqVO.getLearningRate())
|
||||
.eqIfPresent(TrainingDO::getMaxLength, reqVO.getMaxLength())
|
||||
.eqIfPresent(TrainingDO::getCreatedAt, reqVO.getCreatedAt())
|
||||
.eqIfPresent(TrainingDO::getUpdatedAt, reqVO.getUpdatedAt())
|
||||
.orderByDesc(TrainingDO::getId));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package cn.iocoder.yudao.module.llm.framework.backend.config;
|
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* 短信配置类,包括短信客户端、短信验证码两部分
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@EnableConfigurationProperties(LLMBackendProperties.class)
|
||||
public class LLMBackendConfiguration {
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package cn.iocoder.yudao.module.llm.framework.backend.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@ConfigurationProperties(prefix = "llm.backend")
|
||||
@Validated
|
||||
@Data
|
||||
public class LLMBackendProperties {
|
||||
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
@NotNull(message = "RAG健康检查API")
|
||||
private String ragHealth;
|
||||
|
||||
@NotNull(message = "上传并向量化")
|
||||
private String ragEmbed;
|
||||
|
||||
@NotNull(message = "获取所有向量id")
|
||||
private String ragIds;
|
||||
|
||||
@NotNull(message = "根据id获取文档")
|
||||
private String ragDocuments;
|
||||
|
||||
@NotNull(message = "根据id删除文档")
|
||||
private String ragDocumentsDel;
|
||||
|
||||
@NotNull(message = "根据file_id检索向量")
|
||||
private String ragQuery;
|
||||
|
||||
@NotNull(message = "支持多个文件id查询向量")
|
||||
private String ragQueryMultiple;
|
||||
|
||||
@NotNull(message = "训练集列表 GET")
|
||||
private String datasetList;
|
||||
|
||||
@NotNull(message = "上传训练集 POST")
|
||||
private String datasetCreate;
|
||||
|
||||
@NotNull(message = "删除训练集 DELETE")
|
||||
private String datasetDelete;
|
||||
|
||||
@NotNull(message = "训练集标注 GET")
|
||||
private String annotationTaskList;
|
||||
|
||||
@NotNull(message = "标注信息 GET")
|
||||
private String annotationTask;
|
||||
|
||||
@NotNull(message = "保存标注 POST")
|
||||
private String annotationTaskSave;
|
||||
|
||||
@NotNull(message = "大模型列表 GET")
|
||||
private String modelsList;
|
||||
|
||||
@NotNull(message = "登录 POST")
|
||||
private String login;
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.llm.service.basemodel;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 基座模型 Service 接口
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
public interface BaseModelService {
|
||||
|
||||
/**
|
||||
* 创建基座模型
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Integer createBaseModel(@Valid BaseModelSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新基座模型
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateBaseModel(@Valid BaseModelSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除基座模型
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteBaseModel(Integer id);
|
||||
|
||||
/**
|
||||
* 获得基座模型
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 基座模型
|
||||
*/
|
||||
BaseModelDO getBaseModel(Integer id);
|
||||
|
||||
/**
|
||||
* 获得基座模型分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 基座模型分页
|
||||
*/
|
||||
PageResult<BaseModelDO> getBaseModelPage(BaseModelPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package cn.iocoder.yudao.module.llm.service.basemodel;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.*;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 基座模型 Service 实现类
|
||||
*
|
||||
* @author 华大大模型
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class BaseModelServiceImpl implements BaseModelService {
|
||||
|
||||
@Resource
|
||||
private BaseModelMapper baseModelMapper;
|
||||
|
||||
@Override
|
||||
public Integer createBaseModel(BaseModelSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
BaseModelDO baseModel = BeanUtils.toBean(createReqVO, BaseModelDO.class);
|
||||
baseModelMapper.insert(baseModel);
|
||||
// 返回
|
||||
return baseModel.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateBaseModel(BaseModelSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateBaseModelExists(updateReqVO.getId());
|
||||
// 更新
|
||||
BaseModelDO updateObj = BeanUtils.toBean(updateReqVO, BaseModelDO.class);
|
||||
baseModelMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteBaseModel(Integer id) {
|
||||
// 校验存在
|
||||
validateBaseModelExists(id);
|
||||
// 删除
|
||||
baseModelMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateBaseModelExists(Integer id) {
|
||||
if (baseModelMapper.selectById(id) == null) {
|
||||
throw exception(BASE_MODEL_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseModelDO getBaseModel(Integer id) {
|
||||
return baseModelMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<BaseModelDO> getBaseModelPage(BaseModelPageReqVO pageReqVO) {
|
||||
return baseModelMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user