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_config
 * 
 * @author yushu
 * @date 2024-11-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AiModelConfig extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 配置ID */
    private Long configId;

    /** 配置名称 */
    private String configName;

    /** 用户ID（NULL表示系统配置） */
    private Long userId;

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

    /** 模型名称（关联查询） */
    private String modelName;

    /** 模型代码（关联查询） */
    private String modelCode;

    /** API密钥（加密存储） */
    private String apiKey;

    /** API Secret（加密存储） */
    private String apiSecret;

    /** 自定义API地址 */
    private String apiUrl;

    /** 代理地址 */
    private String proxyUrl;

    /** 温度参数(0-2) */
    private BigDecimal temperature;

    /** Top P参数(0-1) */
    private BigDecimal topP;

    /** Top K参数 */
    private Integer topK;

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

    /** 频率惩罚(-2到2) */
    private BigDecimal frequencyPenalty;

    /** 存在惩罚(-2到2) */
    private BigDecimal presencePenalty;

    /** 默认系统提示词 */
    private String systemPrompt;

    /** 启用流式输出：0=否 1=是 */
    private String enableStream;

    /** 启用历史记录：0=否 1=是 */
    private String enableHistory;

    /** 历史记录条数 */
    private Integer historyLength;

    /** 启用联网搜索：0=否 1=是 */
    private String enableWebSearch;

    /** 深度思考模式：enabled=启用动态思考 disabled=禁用深度思考 */
    private String thinkingType;

    /** 是否默认配置：0=否 1=是 */
    private String isDefault;

    /** 是否公开配置：0=私有 1=公开 */
    private String isPublic;

    /** 状态：0=启用 1=停用 */
    private String status;
}

