mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-06 05:09:40 +00:00
State the context window where a vendor documents one
This commit is contained in:
20 files changed
+562
-314
No files matched your search
@@ -16,16 +16,18 @@ public sealed class Gpt4Family : ModelFamily
|
||||
public override ModelVendor Vendor => ModelVendor.OPEN_AI;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://platform.openai.com/docs/models", new DateOnly(2026, 9, 11), "Ported unchanged from the rules in ProviderExtensions.OpenAI.cs: GPT-4 is text only, Turbo adds images and tool calling.");
|
||||
public override ModelSource Source => new("https://developers.openai.com/api/docs/models/gpt-4-turbo", new DateOnly(2026, 9, 12), "Capabilities ported unchanged from ProviderExtensions.OpenAI.cs: GPT-4 is text only, Turbo adds images and tool calling. The windows are the documented 8,192 tokens of GPT-4 and the 128,000 Turbo raised it to.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder)
|
||||
{
|
||||
builder.Rule("gpt-4").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | TEXT_OUTPUT)
|
||||
.Apis(RESPONSES_API);
|
||||
.Apis(RESPONSES_API)
|
||||
.ContextWindow(8_192);
|
||||
|
||||
builder.Rule("gpt-4-turbo").AsPrefix().Inherits()
|
||||
.Capabilities(MULTIPLE_IMAGE_INPUT | FUNCTION_CALLING);
|
||||
.Capabilities(MULTIPLE_IMAGE_INPUT | FUNCTION_CALLING)
|
||||
.ContextWindow(128_000);
|
||||
}
|
||||
}
|
||||
@@ -18,14 +18,15 @@ public sealed class Gpt4oFamily : ModelFamily
|
||||
public override ModelVendor Vendor => ModelVendor.OPEN_AI;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://platform.openai.com/docs/models/gpt-4o", new DateOnly(2026, 9, 11), "The answer the previous rules gave these models through their fallback: images, tool calling, and web search on the Responses API.");
|
||||
public override ModelSource Source => new("https://developers.openai.com/api/docs/models/gpt-4o", new DateOnly(2026, 9, 12), "The answer the previous rules gave these models through their fallback: images, tool calling, and web search on the Responses API. The model page states a 128,000 token window, which the minis and the search previews share.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder)
|
||||
{
|
||||
builder.Rule("gpt-4o").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT | FUNCTION_CALLING | WEB_SEARCH)
|
||||
.Apis(RESPONSES_API);
|
||||
.Apis(RESPONSES_API)
|
||||
.ContextWindow(128_000);
|
||||
|
||||
//
|
||||
// The search previews are the same generation and almost nothing like it: they search the
|
||||
@@ -35,10 +36,12 @@ public sealed class Gpt4oFamily : ModelFamily
|
||||
//
|
||||
builder.Rule("gpt-4o-search-preview").AsExact()
|
||||
.Capabilities(TEXT_INPUT | TEXT_OUTPUT | WEB_SEARCH)
|
||||
.Apis(CHAT_COMPLETION_API);
|
||||
.Apis(CHAT_COMPLETION_API)
|
||||
.ContextWindow(128_000);
|
||||
|
||||
builder.Rule("gpt-4o-mini-search-preview").AsExact()
|
||||
.Capabilities(TEXT_INPUT | TEXT_OUTPUT | WEB_SEARCH)
|
||||
.Apis(CHAT_COMPLETION_API);
|
||||
.Apis(CHAT_COMPLETION_API)
|
||||
.ContextWindow(128_000);
|
||||
}
|
||||
}
|
||||
@@ -24,15 +24,21 @@ public sealed class Gpt5Family : ModelFamily
|
||||
public override ModelVendor Vendor => ModelVendor.OPEN_AI;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://platform.openai.com/docs/models", new DateOnly(2026, 9, 11), "Ported unchanged from the rules in ProviderExtensions.OpenAI.cs, one rule per generation, except that the chat alias no longer inherits the reasoning it is named for not having.");
|
||||
public override ModelSource Source => new("https://developers.openai.com/api/docs/models", new DateOnly(2026, 9, 12), "Capabilities ported unchanged from ProviderExtensions.OpenAI.cs, one rule per generation, except that the chat alias no longer inherits the reasoning it is named for not having. Context windows read per generation from the model pages below that URL.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder)
|
||||
{
|
||||
//
|
||||
// The window grows once in this line, between 5.3 and 5.4: everything up to 5.2 is
|
||||
// documented at 400,000 tokens and everything from 5.4 on at 1,050,000. Both numbers are
|
||||
// the whole window, input and output together, which is how OpenAI states them.
|
||||
//
|
||||
builder.Rule("gpt-5").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT | FUNCTION_CALLING | WEB_SEARCH)
|
||||
.Apis(RESPONSES_API)
|
||||
.Reasoning(ReasoningSupport.ALWAYS);
|
||||
.Reasoning(ReasoningSupport.ALWAYS)
|
||||
.ContextWindow(400_000);
|
||||
|
||||
//
|
||||
// The alias for the model of this generation which does not reason. The previous rules had
|
||||
@@ -47,10 +53,19 @@ public sealed class Gpt5Family : ModelFamily
|
||||
.Reasoning(ReasoningSupport.OPTIONAL);
|
||||
|
||||
builder.Rule("gpt-5.2").AsPrefix().InheritsFrom("gpt-5.1");
|
||||
builder.Rule("gpt-5.3").AsPrefix().InheritsFrom("gpt-5.1");
|
||||
builder.Rule("gpt-5.4").AsPrefix().InheritsFrom("gpt-5.1");
|
||||
|
||||
builder.Rule("gpt-5.5").AsPrefix().InheritsFrom("gpt-5.1")
|
||||
//
|
||||
// The one generation OpenAI documents nothing about: there is no model page for it, so the
|
||||
// rule exists to keep a 5.3 answering like the rest of the line if one ever appears. What it
|
||||
// must not do is carry 5.1's window as if somebody had looked it up.
|
||||
//
|
||||
builder.Rule("gpt-5.3").AsPrefix().InheritsFrom("gpt-5.1")
|
||||
.WithoutContextWindow();
|
||||
|
||||
builder.Rule("gpt-5.4").AsPrefix().InheritsFrom("gpt-5.1")
|
||||
.ContextWindow(1_050_000);
|
||||
|
||||
builder.Rule("gpt-5.5").AsPrefix().InheritsFrom("gpt-5.4")
|
||||
.Reasoning(ReasoningSupport.ON_BY_DEFAULT);
|
||||
|
||||
builder.Rule("gpt-5.6").AsPrefix().InheritsFrom("gpt-5.5");
|
||||
|
||||
@@ -15,12 +15,13 @@ public sealed class Gpt6AstraFamily : ModelFamily
|
||||
public override ModelVendor Vendor => ModelVendor.OPEN_AI;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://platform.openai.com/docs/models", new DateOnly(2026, 9, 11), "Ported unchanged from the rules in ProviderExtensions.OpenAI.cs: reasons on every request, both APIs.");
|
||||
public override ModelSource Source => new("https://developers.openai.com/api/docs/models", new DateOnly(2026, 9, 12), "Capabilities ported unchanged from ProviderExtensions.OpenAI.cs: reasons on every request, both APIs. The models page states the window as 1.05M tokens.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder) =>
|
||||
builder.Rule("gpt-6-astra").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT | FUNCTION_CALLING | WEB_SEARCH)
|
||||
.Apis(RESPONSES_API | CHAT_COMPLETION_API)
|
||||
.Reasoning(ReasoningSupport.ALWAYS);
|
||||
.Reasoning(ReasoningSupport.ALWAYS)
|
||||
.ContextWindow(1_050_000);
|
||||
}
|
||||
@@ -20,11 +20,12 @@ public sealed class GptOssFamily : ModelFamily
|
||||
public override ModelVendor Vendor => ModelVendor.OPEN_AI;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://huggingface.co/openai/gpt-oss-120b", new DateOnly(2026, 9, 11), "Ported unchanged from the gpt-oss check of ProviderExtensions.OpenSource.cs.");
|
||||
public override ModelSource Source => new("https://huggingface.co/openai/gpt-oss-120b", new DateOnly(2026, 9, 12), "Capabilities ported unchanged from the gpt-oss check of ProviderExtensions.OpenSource.cs. The model card states a 128k token window, which both sizes share.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder) =>
|
||||
builder.Rule("gpt-oss").AsSegment()
|
||||
.Capabilities(TEXT_INPUT | TEXT_OUTPUT | FUNCTION_CALLING | WEB_SEARCH)
|
||||
.Apis(CHAT_COMPLETION_API);
|
||||
.Apis(CHAT_COMPLETION_API)
|
||||
.ContextWindow(131_072);
|
||||
}
|
||||
@@ -20,7 +20,7 @@ public sealed class OSeriesFamily : ModelFamily
|
||||
public override ModelVendor Vendor => ModelVendor.OPEN_AI;
|
||||
|
||||
/// <inheritdoc />
|
||||
public override ModelSource Source => new("https://platform.openai.com/docs/models", new DateOnly(2026, 9, 11), "Ported unchanged from the rules in ProviderExtensions.OpenAI.cs, one rule per generation and one per mini.");
|
||||
public override ModelSource Source => new("https://developers.openai.com/api/docs/models", new DateOnly(2026, 9, 12), "Capabilities ported unchanged from ProviderExtensions.OpenAI.cs, one rule per generation and one per mini. The o1 and o3 pages state 200,000 tokens; the two cut-down minis have no page of their own, so no window is stated for them.");
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Declare(ModelFamilyBuilder builder)
|
||||
@@ -28,7 +28,8 @@ public sealed class OSeriesFamily : ModelFamily
|
||||
builder.Rule("o1").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT | FUNCTION_CALLING)
|
||||
.Apis(RESPONSES_API)
|
||||
.Reasoning(ReasoningSupport.ALWAYS);
|
||||
.Reasoning(ReasoningSupport.ALWAYS)
|
||||
.ContextWindow(200_000);
|
||||
|
||||
builder.Rule("o1-mini").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | TEXT_OUTPUT)
|
||||
@@ -38,7 +39,8 @@ public sealed class OSeriesFamily : ModelFamily
|
||||
builder.Rule("o3").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT | FUNCTION_CALLING | WEB_SEARCH)
|
||||
.Apis(RESPONSES_API)
|
||||
.Reasoning(ReasoningSupport.ALWAYS);
|
||||
.Reasoning(ReasoningSupport.ALWAYS)
|
||||
.ContextWindow(200_000);
|
||||
|
||||
builder.Rule("o3-mini").AsPrefix()
|
||||
.Capabilities(TEXT_INPUT | TEXT_OUTPUT | FUNCTION_CALLING)
|
||||
|
||||
Reference in new issue
Block a user