mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-13 02:13:48 +00:00
Say what Google's music, research and answering models are made for
This commit is contained in:
6 files changed
+198
-3
No files matched your search
@@ -0,0 +1,32 @@
|
||||
using AIStudio.Provider;
|
||||
|
||||
using static AIStudio.Provider.Capability;
|
||||
|
||||
namespace AIStudio.Models.Google;
|
||||
|
||||
/// <summary>
|
||||
/// AQA, which answers a question out of the passages it was handed.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 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.
|
||||
/// </remarks>
|
||||
public sealed class AqaFamily : ModelFamily
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override ModelVendor Vendor => ModelVendor.GOOGLE;
|
||||
|
||||
/// <inheritdoc />
|
||||
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.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder) =>
|
||||
builder.Rule("aqa").AsExact().OnlyOn(LLMProviders.GOOGLE)
|
||||
.Capabilities(TEXT_INPUT | TEXT_OUTPUT)
|
||||
.Kind(ModelKind.GROUNDED_ANSWERING);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using AIStudio.Provider;
|
||||
|
||||
using static AIStudio.Provider.Capability;
|
||||
|
||||
namespace AIStudio.Models.Google;
|
||||
|
||||
/// <summary>
|
||||
/// The Google models which are handed a job rather than a message.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Both of these answer on the Interactions API alone, never on generateContent: one request starts
|
||||
/// an autonomous loop which plans, runs code, manages files and searches the web, and a research
|
||||
/// run takes minutes rather than seconds. A chat request does not time out against them -- it never
|
||||
/// arrives.
|
||||
///
|
||||
/// Deep Research is the reason these rules are bound to Google instead of standing among the kinds.
|
||||
/// Perplexity sells something under that name too, and sonar-deep-research is an ordinary chat
|
||||
/// model with web search bolted on, stated in its own family. The same two words, two different
|
||||
/// things, and only the provider tells them apart. Antigravity needs no such guard -- nobody else
|
||||
/// names a model that -- but it is a statement about Google's catalog all the same, so it stands
|
||||
/// where the other one stands.
|
||||
/// </remarks>
|
||||
public sealed class GoogleAgentFamily : ModelFamily
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override ModelVendor Vendor => ModelVendor.GOOGLE;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://ai.google.dev/gemini-api/docs/deep-research", new DateOnly(2026, 9, 19), "Deep Research runs only through the Interactions API and only in the background, because a single run takes five to twenty minutes. The Antigravity agent is documented at https://ai.google.dev/gemini-api/docs/antigravity-agent and works the same way, on a sandbox Google hosts.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder)
|
||||
{
|
||||
builder.Rule("deep-research").AsPrefix().OnlyOn(LLMProviders.GOOGLE)
|
||||
.Capabilities(TEXT_INPUT)
|
||||
.Kind(ModelKind.AGENT);
|
||||
|
||||
builder.Rule("antigravity").AsSegment().OnlyOn(LLMProviders.GOOGLE)
|
||||
.Capabilities(TEXT_INPUT)
|
||||
.Kind(ModelKind.AGENT);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
using AIStudio.Provider;
|
||||
|
||||
using static AIStudio.Provider.Capability;
|
||||
|
||||
namespace AIStudio.Models.Google;
|
||||
|
||||
/// <summary>
|
||||
/// Lyria, which writes music from a description.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Nothing knew the name, so the catalog answered for it the way it answers for everything nobody
|
||||
/// wrote a rule for: a chat model which reads text, writes text and calls tools. What comes back is
|
||||
/// a stereo recording with instruments and, from 3.5 on, sung lyrics.
|
||||
///
|
||||
/// Nobody ran into it because the Google provider showed only names beginning with "gemini", which
|
||||
/// kept four Lyria models out of sight along with the two Gemma models somebody actually wants. The
|
||||
/// prefix is gone now, so the rule has to carry what the prefix carried by accident.
|
||||
///
|
||||
/// Whole name parts rather than a substring, for the reason Imagen gives next door. The rule is not
|
||||
/// bound to Google, unlike the agent ones: wherever a model called Lyria turns up, it is this.
|
||||
/// </remarks>
|
||||
public sealed class LyriaFamily : ModelFamily
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public override ModelVendor Vendor => ModelVendor.GOOGLE;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://ai.google.dev/gemini-api/docs/music-generation", new DateOnly(2026, 9, 19), "A description goes in and 44.1 kHz stereo music comes out, with vocals and timed lyrics from Lyria 3.5 on. The realtime variant holds a connection open instead, which the realtime rule states and outranks this with.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder) =>
|
||||
builder.Rule("lyria").AsSegment()
|
||||
.Capabilities(TEXT_INPUT)
|
||||
.Kind(ModelKind.MUSIC_GENERATION);
|
||||
}
|
||||
Reference in new issue
Block a user