89 lines
3.2 KiB
Java
89 lines
3.2 KiB
Java
package com.bruce.modelprovider.entity;
|
||
|
||
import com.baomidou.mybatisplus.annotation.TableField;
|
||
import com.baomidou.mybatisplus.annotation.TableName;
|
||
import com.bruce.common.domain.model.BaseEntity;
|
||
import com.bruce.rag.typehandler.PgJsonbStringTypeHandler;
|
||
import lombok.Data;
|
||
import lombok.EqualsAndHashCode;
|
||
|
||
import java.math.BigDecimal;
|
||
|
||
/**
|
||
* 模型配置实体。
|
||
* <p>
|
||
* 每条记录描述某个服务商下的一个具体模型,包含模型类型、能力、价格和默认参数。
|
||
*/
|
||
@Data
|
||
@EqualsAndHashCode(callSuper = true)
|
||
@TableName(value = "model_config", autoResultMap = true)
|
||
/**
|
||
* ModelConfig,负责模型平台对应层的职责。
|
||
*/
|
||
public class ModelConfig extends BaseEntity {
|
||
|
||
/** 数据库字段:provider_id(关联的服务商ID)。 */
|
||
@TableField(value = "provider_id")
|
||
private Long providerId;
|
||
|
||
/** 数据库字段:model_code(模型编码,在同一服务商下唯一)。 */
|
||
@TableField(value = "model_code")
|
||
private String modelCode;
|
||
|
||
/** 数据库字段:model_name(模型展示名称)。 */
|
||
@TableField(value = "model_name")
|
||
private String modelName;
|
||
|
||
/** 数据库字段:upstream_model(上游真实模型名,例如 Qwen/Qwen3-Embedding-0.6B)。 */
|
||
@TableField(value = "upstream_model")
|
||
private String upstreamModel;
|
||
|
||
/** 数据库字段:model_type(模型类型,例如 CHAT / EMBEDDING / RERANK / MULTIMODAL)。 */
|
||
@TableField(value = "model_type")
|
||
private String modelType;
|
||
|
||
/** 数据库字段:context_window(上下文窗口大小)。 */
|
||
@TableField(value = "context_window")
|
||
private Integer contextWindow;
|
||
|
||
/** 数据库字段:max_output_tokens(单次输出 token 上限)。 */
|
||
@TableField(value = "max_output_tokens")
|
||
private Integer maxOutputTokens;
|
||
|
||
/** 数据库字段:embedding_dimension(向量维度,仅 EMBEDDING 模型使用)。 */
|
||
@TableField(value = "embedding_dimension")
|
||
private Integer embeddingDimension;
|
||
|
||
/** 数据库字段:input_price_per_1k(输入单价,每 1k token)。 */
|
||
@TableField(value = "input_price_per_1k")
|
||
private BigDecimal inputPricePer1k;
|
||
|
||
/** 数据库字段:output_price_per_1k(输出单价,每 1k token)。 */
|
||
@TableField(value = "output_price_per_1k")
|
||
private BigDecimal outputPricePer1k;
|
||
|
||
/** 数据库字段:local_model(是否本地模型,如自建 Ollama)。 */
|
||
@TableField(value = "local_model")
|
||
private Boolean localModel;
|
||
|
||
/** 数据库字段:default_model(是否该类型默认模型)。 */
|
||
@TableField(value = "default_model")
|
||
private Boolean defaultModel;
|
||
|
||
/** 数据库字段:capabilities_json(能力标签JSON,例如是否支持工具调用、视觉能力等)。 */
|
||
@TableField(value = "capabilities_json", typeHandler = PgJsonbStringTypeHandler.class)
|
||
private String capabilitiesJson;
|
||
|
||
/** 数据库字段:options_json(默认调用参数JSON,例如 temperature、dimensions)。 */
|
||
@TableField(value = "options_json", typeHandler = PgJsonbStringTypeHandler.class)
|
||
private String optionsJson;
|
||
|
||
/** 是否启用该模型。 */
|
||
private Boolean enabled;
|
||
|
||
/** 备注信息。 */
|
||
private String remark;
|
||
}
|
||
|
||
|