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