package com.pavis.admin.aigc.model.entity;

import lombok.Data;

import com.baomidou.mybatisplus.annotation.TableName;

import com.pavis.admin.common.model.entity.BaseDO;

import java.io.Serial;

/**
 * AIGC模型配置实体
 *
 * @author semi
 * @since 2025/05/26 17:28
 */
@Data
@TableName("aigc_model")
public class ModelDO extends BaseDO {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 模型类型:Chat/Embedding/Image/Video/Audio
     */
    private String type;

    /**
     * 官方模型名称
     */
    private String model;

    /**
     * 模型版本号
     */
    private String version;

    /**
     * 服务商
     */
    private String provider;

    /**
     * 自定义模型别名
     */
    private String name;

    /**
     * 模型描述
     */
    private String description;

    /**
     * 状态:0停用 1启用
     */
    private Boolean status;

    /**
     * 最大响应长度
     */
    private Integer responseLimit;

    /**
     * 上下文最大token数
     */
    private Integer maxTokens;

    /**
     * 随机性控制
     */
    private Double temperature;

    /**
     * 核心采样概率
     */
    private Double topP;

    /**
     * Azure部署名称
     */
    private String azureDeploymentName;

    /**
     * Google Cloud项目ID
     */
    private String geminiProject;

    /**
     * Google Cloud服务区域
     */
    private String geminiLocation;

    /**
     * 图片尺寸(支持1024x1024/1792x1024等)
     */
    private String imageSize;

    /**
     * 图片质量:standard/hd
     */
    private String imageQuality;

    /**
     * 图片风格:vivid/natural
     */
    private String imageStyle;

    /**
     * API超时时间(秒)
     */
    private Integer timeout;

    /**
     * 重试策略
     */
    private String retryStrategy;

    /**
     * 每分钟最大请求数
     */
    private Integer rateLimit;
}
