package com.yushu.system.domain;

import com.yushu.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * AI模型对象 ai_model
 * 
 * @author yushu
 * @date 2024-11-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AiModel extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 模型ID */
    private Long modelId;

    /** 厂商ID */
    private Long providerId;

    /** 厂商名称（关联查询） */
    private String providerName;

    /** 模型代码 */
    private String modelCode;

    /** 模型名称 */
    private String modelName;

    /** 模型类型：chat/completion/embedding/image */
    private String modelType;

    /** 模型版本 */
    private String modelVersion;

    /** 最大输出Token数 */
    private Integer maxTokens;

    /** 上下文窗口大小 */
    private Integer contextWindow;

    /** 支持函数调用：0=否 1=是 */
    private String supportFunctions;

    /** 支持视觉输入：0=否 1=是 */
    private String supportVision;

    /** 支持流式输出：0=否 1=是 */
    private String supportStream;

    /** 支持联网搜索：0=否 1=是 */
    private String supportWebSearch;

    /** 默认API地址 */
    private String defaultApiUrl;

    /** API版本 */
    private String apiVersion;

    /** 输入价格（元/1K tokens） */
    private BigDecimal inputPrice;

    /** 输出价格（元/1K tokens） */
    private BigDecimal outputPrice;

    /** 货币单位 */
    private String currency;

    /** 每分钟请求数限制 */
    private Integer rateLimitRpm;

    /** 每天请求数限制 */
    private Integer rateLimitRpd;

    /** 每分钟Token数限制 */
    private Integer rateLimitTpm;

    /** 是否推荐：0=否 1=是 */
    private String isRecommended;

    /** 状态：0=启用 1=停用 2=维护中 */
    private String status;

    /** 排序 */
    private Integer sortOrder;
}

