package com.yushu.system.domain;

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

import java.math.BigDecimal;

/**
 * AI服务对象 ai_service
 * 
 * 简化设计：合并厂商+模型+配置为统一的服务注册表
 * 新增AI只需插入一行数据
 * 
 * @author yushu
 * @date 2024-12-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AiService extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 服务ID */
    private Long serviceId;

    /** 服务名称（显示用） */
    private String serviceName;

    /** 服务代码（唯一标识，如 openai-gpt4） */
    private String serviceCode;

    /** 厂商标识: openai/zhipu/alibaba/baidu/moonshot/ollama */
    private String provider;

    /** 厂商名称 */
    private String providerName;

    /** 模型代码: gpt-4/glm-4/qwen-max */
    private String modelCode;

    /** API地址 */
    private String apiUrl;

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

    /** API Secret（部分厂商需要） */
    private String apiSecret;

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

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

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

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

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

    /** 支持流式: 0=否 1=是 */
    private String supportsStream;

    /** 支持视觉: 0=否 1=是 */
    private String supportsVision;

    /** 支持工具调用: 0=否 1=是 */
    private String supportsTools;

    /** 支持深度思考: 0=否 1=是 */
    private String supportsThinking;

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

    /** 支持文件解析: 0=否 1=是 */
    private String supportsFiles;

    /** 额外参数(JSON格式) */
    private String extraParams;

    /** 是否启用: 0=否 1=是 */
    private String enabled;

    /** 是否默认: 0=否 1=是 */
    private String isDefault;

    /** 排序 */
    private Integer sortOrder;

    /** 速率限制(次/分钟) */
    private Integer rateLimit;

    /** 每日限制(次) */
    private Integer dailyLimit;
}
