package admin.modules.chatgpt.domain; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; import lombok.*; import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.sql.Timestamp; /** * @author wk * @date 2023-11-27 */ @Data @Builder @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @TableName("chatgpt_role") public class ChatgptRole implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "唯一标识,自动递增") @TableId(type= IdType.AUTO) private Integer id; @ApiModelProperty(value = "角色名称") private String roleName; @ApiModelProperty(value = "角色prompt") private String roleMessage; @ApiModelProperty(value = "模型") @NotBlank private String model; @ApiModelProperty(value = "创建时间") @NotNull @TableField(fill= FieldFill.INSERT) private Timestamp createTime; @ApiModelProperty(value = "内容创意 该值越大,输出内容更加随机,推荐值:1") @NotNull private Double temperature; @ApiModelProperty(value = "最大token") @NotNull private Integer maxTokens; @ApiModelProperty(value = "质量概率 核心采样,指选用前多少概率质量的内容,推荐值:1") @NotNull private Double topP; @ApiModelProperty(value = "重复词汇 输出文本同一个词汇出现情况,默认为0,值越大,重复性越小,推荐值:0") @NotNull private Double presencePenalty; @ApiModelProperty(value = "罕见词汇 输出文本罕见词汇出现情况,默认为0,值越大,罕见词汇越多,推荐值:0") @NotNull private Double frequencyPenalty; @ApiModelProperty(value = "回答数量 为每个问题回答的内容数量,当多个时,会消耗大量Token,推荐值:1") @NotNull private Integer n; public void copyFrom(ChatgptRole source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } }