content: package org.ruoyi.common.chat.request;
  
  import jakarta.validation.constraints.NotEmpty;
  import lombok.Data;
  import org.ruoyi.common.chat.entity.chat.Message;
  
  import java.util.List;
  
  /**
   *  对话请求对象
   *
   * @author ageerle
   * @sine 2023-04-08
   */
  @Data
  public class ChatRequest {
  
      @NotEmpty(message = "对话消息不能为空")
      List<Message> messages;
  
      @NotEmpty(message = "传入的模型不能为空")
      private String model;
  
      /**
       * 提示词
       */
      private String prompt;
  
      /**
       * 系统提示词
       */
      private String sysPrompt;
  
      /**
       * 是否开启流式对话
       */
      private Boolean stream = Boolean.TRUE;
  
      /**
       * 知识库id
       */
      private String kid;
  
      /**
       * 用户id
       */
      private Long userId;
  
      /**
       * 会话id
       */
      private Long sessionId;
  
      /**
       * 应用ID
       */
      private String appId;
  
      /**
       * 对话角色
       */
      private String role;
  
  
      /**
       * 对话id(每个聊天窗口都不一样)
       */
      private Long uuid;
  
      /**
       * 是否有附件
       */
      private Boolean hasAttachment;
  
      /**
       * 是否自动切换模型
       */
      private Boolean autoSelectModel;
  
      /**
       * 会话令牌（为避免在非Web线程中获取Request，入口处注入）
       */
      private String token;
  
      /**
       * 消息ID（保存消息成功后设置，用于后续扣费更新）
       */
      private Long messageId;
  
  }
  