using AIStudio.Provider;
using static AIStudio.Provider.Capability;
namespace AIStudio.Models.Google;
///
/// AQA, which answers a question out of the passages it was handed.
///
///
/// Attributed Question Answering, and the one entry in Google's catalog whose whole name is three
/// letters. It answers on generateAnswer rather than on generateContent, together with the semantic
/// retriever, and what comes back is the answer, the passages it rests on, and an estimate of
/// whether the question could be answered from them at all.
///
/// Bound to Google, and it has to be: three letters are three letters, and a rule that short has no
/// business meeting a name from somewhere else. The catalog holds exactly one model it can match.
///
public sealed class AqaFamily : ModelFamily
{
///
public override ModelVendor Vendor => ModelVendor.GOOGLE;
///
public override ModelSource Source => new("https://ai.google.dev/gemini-api/docs/semantic_retrieval", new DateOnly(2026, 9, 19), "Reads 7,168 tokens and writes 1,024, which is a size for an answer rather than for a conversation. The route it answers on is generateAnswer, so nothing the app sends over the chat completion API reaches it.");
///
protected override void Declare(ModelFamilyBuilder builder) =>
builder.Rule("aqa").AsExact().OnlyOn(LLMProviders.GOOGLE)
.Capabilities(TEXT_INPUT | TEXT_OUTPUT)
.Kind(ModelKind.GROUNDED_ANSWERING);
}