using AIStudio.Provider;
using static AIStudio.Provider.Capability;
namespace AIStudio.Models.Alibaba;
///
/// Alibaba's embedding models, which turn text into a vector and answer nothing.
///
///
/// The previous rules answered for these with the Model Studio default and told them they call
/// functions. The prefix is Alibaba's own, and the rule may be written that broadly because it is
/// bound to this provider: it can only ever meet the models Alibaba names that way. The provider
/// carried the same prefix as a filter of its own until it started asking here, so this is now the
/// only place which says what those names mean.
///
public sealed class ModelStudioEmbeddingFamily : ModelFamily
{
///
public override ModelVendor Vendor => ModelVendor.ALIBABA;
///
public override ModelSource Source => new("https://www.alibabacloud.com/help/en/model-studio/embedding", new DateOnly(2026, 9, 11), "Provider/AlibabaCloud/ProviderAlibabaCloud.cs used to add these in GetEmbeddingModels and to filter the catalog by the prefix \"text-embedding-\"; it asks this rule instead.");
///
protected override void Declare(ModelFamilyBuilder builder) =>
builder.Rule("text-embedding").AsPrefix().OnlyOn(LLMProviders.ALIBABA_CLOUD)
.Capabilities(TEXT_INPUT | EMBEDDING)
.Kind(ModelKind.EMBEDDING);
}