package cn.iocoder.yudao.module.ai.enums.model;
|
|
import cn.iocoder.yudao.framework.common.core.ArrayValuable;
|
import lombok.Getter;
|
import lombok.RequiredArgsConstructor;
|
|
import java.util.Arrays;
|
|
/**
|
* AI 模型能力枚举
|
*
|
* 与 {@link AiModelTypeEnum} 组合使用:同一「类型 + 能力」下只允许一个模型处于启用状态。
|
* 例如对话类型下,纯文本模型与视觉模型各可启用一个,互不覆盖。
|
*/
|
@Getter
|
@RequiredArgsConstructor
|
public enum AiModelCapabilityEnum implements ArrayValuable<String> {
|
|
TEXT("text", "文本"),
|
VISION("vision", "视觉");
|
|
private final String capability;
|
private final String name;
|
|
public static final String[] ARRAYS = Arrays.stream(values()).map(AiModelCapabilityEnum::getCapability).toArray(String[]::new);
|
|
@Override
|
public String[] array() {
|
return ARRAYS;
|
}
|
|
public static AiModelCapabilityEnum validateCapability(String capability) {
|
for (AiModelCapabilityEnum e : values()) {
|
if (e.getCapability().equals(capability)) return e;
|
}
|
throw new IllegalArgumentException("非法模型能力:" + capability);
|
}
|
|
public static String defaultCapability() {
|
return TEXT.getCapability();
|
}
|
|
public static String getName(String capability) {
|
for (AiModelCapabilityEnum e : values()) {
|
if (e.getCapability().equals(capability)) return e.getName();
|
}
|
return capability;
|
}
|
|
}
|