AI工作流优化

This commit is contained in:
zhang
2026-02-13 18:14:39 +08:00
parent afa3c78180
commit 885d46a4aa
59 changed files with 863 additions and 287 deletions

View File

@@ -1,89 +0,0 @@
package org.ruoyi.domain.bo.chat;
import org.ruoyi.common.core.validate.EditGroup;
import org.ruoyi.domain.entity.chat.ChatModel;
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 模型管理业务对象 chat_model
*
* @author ageerle
* @date 2025-12-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ChatModel.class, reverseConvertGenerate = false)
public class ChatModelBo extends BaseEntity {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 模型分类
*/
private String category;
/**
* 模型名称
*/
private String modelName;
/**
* 模型供应商
*/
private String providerCode;
/**
* 模型描述
*/
private String modelDescribe;
/**
* 模型价格
*/
private Long modelPrice;
/**
* 计费类型
*/
private String modelType;
/**
* 是否显示
*/
private String modelShow;
/**
* 是否免费
*/
private String modelFree;
/**
* 模型优先级(值越大优先级越高)
*/
private Long priority;
/**
* 请求地址
*/
private String apiHost;
/**
* 密钥
*/
private String apiKey;
/**
* 备注
*/
private String remark;
}

View File

@@ -1,45 +0,0 @@
package org.ruoyi.domain.dto;
import lombok.Data;
/**
* 聊天消息DTO - 用于上下文传递
*
* @author ageerle@163.com
* @date 2025/12/13
*/
@Data
public class ChatMessageDTO {
/**
* 消息角色: system/user/assistant
*/
private String role;
/**
* 消息内容
*/
private String content;
public static ChatMessageDTO system(String content) {
ChatMessageDTO msg = new ChatMessageDTO();
msg.role = "system";
msg.content = content;
return msg;
}
public static ChatMessageDTO user(String content) {
ChatMessageDTO msg = new ChatMessageDTO();
msg.role = "user";
msg.content = content;
return msg;
}
public static ChatMessageDTO assistant(String content) {
ChatMessageDTO msg = new ChatMessageDTO();
msg.role = "assistant";
msg.content = content;
return msg;
}
}

View File

@@ -1,63 +0,0 @@
package org.ruoyi.domain.dto.request;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import org.ruoyi.domain.dto.ChatMessageDTO;
import java.util.List;
/**
* 对话请求对象
*
* @author ageerle
* @date 2023-04-08
*/
@Data
public class ChatRequest {
@NotEmpty(message = "对话消息不能为空")
private List<ChatMessageDTO> messages;
@NotEmpty(message = "传入的模型不能为空")
private String model;
/**
* 会话id
*/
private Long sessionId;
/**
* 应用ID
*/
private String appId;
/**
* 知识库id
*/
private String knowledgeId;
/**
* 对话id(每个聊天窗口都不一样)
*/
private Long uuid;
/**
* 是否启用深度思考
*/
private Boolean enableThinking;
/**
* 是否自动切换模型
*/
private Boolean autoSelectModel;
/**
* 是否支持联网
*/
private Boolean enableInternet;
/**
* 会话令牌为避免在非Web线程中获取Request入口处注入
*/
private String token;
}

View File

@@ -1,92 +0,0 @@
package org.ruoyi.domain.entity.chat;
import cn.idev.excel.annotation.ExcelProperty;
import org.ruoyi.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 模型管理对象 chat_model
*
* @author ageerle
* @date 2025-12-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("chat_model")
public class ChatModel extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
/**
* 模型分类
*/
private String category;
/**
* 模型名称
*/
private String modelName;
/**
* 模型供应商
*/
private String providerCode;
/**
* 模型描述
*/
private String modelDescribe;
/**
* 模型价格
*/
private Long modelPrice;
/**
* 计费类型
*/
private String modelType;
/**
* 是否显示
*/
private String modelShow;
/**
* 是否免费
*/
private String modelFree;
/**
* 模型优先级(值越大优先级越高)
*/
private Long priority;
/**
* 请求地址
*/
private String apiHost;
/**
* 密钥
*/
private String apiKey;
/**
* 备注
*/
private String remark;
}

View File

@@ -1,112 +0,0 @@
package org.ruoyi.domain.vo.chat;
import org.ruoyi.domain.entity.chat.ChatModel;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 模型管理视图对象 chat_model
*
* @author ageerle
* @date 2025-12-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ChatModel.class)
public class ChatModelVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ExcelProperty(value = "主键")
private Long id;
/**
* 模型分类
*/
@ExcelProperty(value = "模型分类")
private String category;
/**
* 模型名称
*/
@ExcelProperty(value = "模型名称")
private String modelName;
/**
* 模型供应商
*/
@ExcelProperty(value = "模型供应商")
private String providerCode;
/**
* 模型描述
*/
@ExcelProperty(value = "模型描述")
private String modelDescribe;
/**
* 模型价格
*/
@ExcelProperty(value = "模型价格")
private Long modelPrice;
/**
* 计费类型
*/
@ExcelProperty(value = "计费类型")
private String modelType;
/**
* 是否显示
*/
@ExcelProperty(value = "是否显示")
private String modelShow;
/**
* 是否免费
*/
@ExcelProperty(value = "是否免费")
private String modelFree;
/**
* 模型优先级(值越大优先级越高)
*/
@ExcelProperty(value = "模型优先级(值越大优先级越高)")
private Long priority;
/**
* 请求地址
*/
@ExcelProperty(value = "请求地址")
private String apiHost;
/**
* 密钥
*/
@ExcelProperty(value = "密钥")
private String apiKey;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
/**
* 模型维度
*/
private Integer dimension;
}