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 { 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; } }