using AIStudio.Provider;
using static AIStudio.Provider.Capability;
namespace AIStudio.Models.Google;
///
/// Google's embedding models, which turn text into a vector and answer nothing.
///
///
/// The previous rules answered for these with the Google default: images in, text out, tool
/// calling. None of it is true, and the app already knows better -- it asks every provider for its
/// embedding models through a method of its own.
///
/// The Gemini one needs a rule of its own for another reason: its name begins with "gemini", so
/// without one it would be read as a chat model of the family.
///
public sealed class GoogleEmbeddingFamily : ModelFamily
{
///
public override ModelVendor Vendor => ModelVendor.GOOGLE;
///
public override ModelSource Source => new("https://ai.google.dev/gemini-api/docs/embeddings", new DateOnly(2026, 9, 11), "The app lists these under IProvider.GetEmbeddingModels, which is where the statement that they embed comes from.");
///
protected override void Declare(ModelFamilyBuilder builder)
{
builder.Rule("text-embedding-004").AsExact()
.Capabilities(TEXT_INPUT | EMBEDDING)
.Kind(ModelKind.EMBEDDING);
builder.Rule("gemini-embedding").AsPrefix().Inherits();
}
}