From b42a37f376cd074b5da4e859e4895a04adeeeaf8 Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期三, 04 六月 2025 15:03:00 +0800 Subject: [PATCH] 问题模版配置 --- iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/AiModelDto.java | 46 +++++++++++ iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionTemplateDto.java | 52 +++++++++++++ iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/api/QuestionTemplateApiImpl.java | 40 ++++++++++ iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionParamSettingDO.java | 35 ++++++++ iailab-module-ai/iailab-module-ai-biz/db/增量sql/2025.sql | 9 ++ iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/QuestiontemplateApi.java | 27 ++++++ 6 files changed, 209 insertions(+), 0 deletions(-) diff --git a/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/QuestiontemplateApi.java b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/QuestiontemplateApi.java new file mode 100644 index 0000000..e81851d --- /dev/null +++ b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/QuestiontemplateApi.java @@ -0,0 +1,27 @@ +package com.iailab.module.ai.api.questionTemplate; + +import com.iailab.framework.common.enums.RpcConstants; +import com.iailab.module.ai.api.questionTemplate.dto.AiModelDto; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; + +import java.util.List; + +/** + * @author DongYukun + * @Description + * @createTime 2025年06月04日 + */ +@FeignClient(name = "ai-server") +@Tag(name = "计划数据") +public interface QuestiontemplateApi { + String PREFIX = RpcConstants.RPC_API_PREFIX + "/ai/questiontemplate"; + + @PostMapping(PREFIX + "/modelList") + @Operation(summary = "Ai大模型级联问题模版") + List<AiModelDto> queryModelList(); +} \ No newline at end of file diff --git a/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/AiModelDto.java b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/AiModelDto.java new file mode 100644 index 0000000..60a9e9b --- /dev/null +++ b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/AiModelDto.java @@ -0,0 +1,46 @@ +package com.iailab.module.ai.api.questionTemplate.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import java.io.Serializable; +import java.util.List; + +@Data +public class AiModelDto implements Serializable { + + @Schema(description = "编号", example = "2630") + private Long id; + + @Schema(description = "API 秘钥编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22042") + private Long keyId; + + @Schema(description = "模型名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + private String name; + + @Schema(description = "模型标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "gpt-3.5-turbo-0125") + private String model; + + @Schema(description = "模型平台", requiredMode = Schema.RequiredMode.REQUIRED, example = "OpenAI") + private String platform; + + @Schema(description = "模型类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer type; + + @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer sort; + + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer status; + + @Schema(description = "温度参数", example = "1") + private Double temperature; + + @Schema(description = "单条回复的最大 Token 数量", example = "4096") + private Integer maxTokens; + + @Schema(description = "上下文的最大 Message 数量", example = "8192") + private Integer maxContexts; + + private List<QuestionTemplateDto> children; + +} \ No newline at end of file diff --git a/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionParamSettingDO.java b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionParamSettingDO.java new file mode 100644 index 0000000..1a2deab --- /dev/null +++ b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionParamSettingDO.java @@ -0,0 +1,35 @@ +package com.iailab.module.ai.api.questionTemplate.dto; + +import lombok.*; + +import java.io.Serializable; + +@Data +public class QuestionParamSettingDO implements Serializable { + + /** + * id + */ + private String id; + /** + * 问题模板id + */ + private String templateId; + /** + * key + */ + private String settingKey; + /** + * 参数名称 + */ + private String settingName; + /** + * 参数默认值 + */ + private String settingValue; + /** + * 排序 + */ + private Integer sort; + +} \ No newline at end of file diff --git a/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionTemplateDto.java b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionTemplateDto.java new file mode 100644 index 0000000..c575289 --- /dev/null +++ b/iailab-module-ai/iailab-module-ai-api/src/main/java/com/iailab/module/ai/api/questionTemplate/dto/QuestionTemplateDto.java @@ -0,0 +1,52 @@ +package com.iailab.module.ai.api.questionTemplate.dto; + +import lombok.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 大模型问题模板 DO + * + * @author 超级管理员 + */ +@Data +public class QuestionTemplateDto implements Serializable { + + /** + * id + */ + private String id; + /** + * 模型id + */ + private String modelId; + /** + * 问题编号 + */ + private String questionCode; + /** + * 问题名称 + */ + private String questionName; + /** + * 问题内容 + */ + private String questionContent; + /** + * 输入个数 + */ + private Integer dataLength; + /** + * 是否启用(0禁用 1启用) + */ + private Integer isEnable; + /** + * 备注 + */ + private String remark; + + private List<QuestionParamSettingDO> settingList; + + public String modelName; +} \ No newline at end of file diff --git "a/iailab-module-ai/iailab-module-ai-biz/db/\345\242\236\351\207\217sql/2025.sql" "b/iailab-module-ai/iailab-module-ai-biz/db/\345\242\236\351\207\217sql/2025.sql" new file mode 100644 index 0000000..cb15477 --- /dev/null +++ "b/iailab-module-ai/iailab-module-ai-biz/db/\345\242\236\351\207\217sql/2025.sql" @@ -0,0 +1,9 @@ +ALTER TABLE ai_question_template + ADD COLUMN deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除'; +ALTER TABLE ai_question_param_setting + ADD COLUMN deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除'; +ALTER TABLE ai_question_param_setting + ADD COLUMN `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + ADD COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间', + ADD COLUMN `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间'; \ No newline at end of file diff --git a/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/api/QuestionTemplateApiImpl.java b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/api/QuestionTemplateApiImpl.java new file mode 100644 index 0000000..8a72421 --- /dev/null +++ b/iailab-module-ai/iailab-module-ai-biz/src/main/java/com/iailab/module/ai/api/QuestionTemplateApiImpl.java @@ -0,0 +1,40 @@ +package com.iailab.module.ai.api; + +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.ai.api.questionTemplate.QuestiontemplateApi; +import com.iailab.module.ai.api.questionTemplate.dto.AiModelDto; +import com.iailab.module.ai.api.questionTemplate.dto.QuestionTemplateDto; +import com.iailab.module.ai.controller.admin.questiontemplate.vo.QuestionTemplateRespVO; +import com.iailab.module.ai.service.model.AiModelService; +import com.iailab.module.ai.service.questiontemplate.QuestionTemplateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @description: + * @author: dongyukun + * @date: 2025/6/4 14:50 + **/ +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class QuestionTemplateApiImpl implements QuestiontemplateApi { + + @Autowired + private QuestionTemplateService questionTemplateService; + + @Autowired + private AiModelService aiModelService; + + @Override + public List<AiModelDto> queryModelList() { + List<AiModelDto> list = BeanUtils.toBean(aiModelService.getModelListByStatusAndType(0, 1, null), AiModelDto.class); + list.forEach(item->{ + item.setChildren( + BeanUtils.toBean(questionTemplateService.getQuestionTemplateList(item.getId()), QuestionTemplateDto.class)); + }); + return list; + } +} -- Gitblit v1.9.3