AI-Studio/app/MindWork AI Studio/Models/OpenAI/Gpt6Family.cs
Thorsten Sommer 8dbe459a53
Some checks are pending
Build and Release / Determine run mode (push) Waiting to run
Build and Release / Read metadata (push) Blocked by required conditions
Build and Release / Sync Flatpak repo (push) Blocked by required conditions
Build and Release / Collect Flatpak artifacts (push) Blocked by required conditions
Build and Release / Verify (push) Waiting to run
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg,app,updater, dmg) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis,updater, nsis) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage,updater, appimage) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions
Fixed GPT-6 Sol and Luna, and the system prompt role of newer OpenAI models (#1010)
2026-09-27 19:13:54 +02:00

52 lines
2.7 KiB
C#

using static AIStudio.Provider.Capability;
namespace AIStudio.Models.OpenAI;
/// <summary>
/// The whole GPT-6 line: Astra, Sol, and Luna.
/// </summary>
/// <remarks>
/// One family for the generation rather than one per model, because the three differ in a single
/// sentence: Astra reasons on every request -- its effort reaches from low to max and nothing
/// switches thinking off -- while Sol and Luna reason unless the effort is set to none. Everything
/// else, the window included, they share.
///
/// The rule for the generation is also what answers for a GPT-6 model OpenAI releases after this
/// was written. That is on purpose: this family used to know Astra alone, and Sol and Luna went to
/// the global assumption, which sent them to the chat completion API without images, web search,
/// or reasoning.
///
/// Sol's page adds that calling functions through the chat completion API needs the effort set to
/// none. That concerns only the gateways which reach these models through that API; OpenAI itself
/// is asked through the Responses API.
/// </remarks>
public sealed class Gpt6Family : ModelFamily
{
/// <inheritdoc />
public override ModelVendor Vendor => ModelVendor.OPEN_AI;
/// <inheritdoc />
public override ModelSource Source => new("https://developers.openai.com/api/docs/models", new DateOnly(2026, 9, 27), "The models page lists gpt-6-astra, gpt-6-sol, and gpt-6-luna as the GPT-6 line.");
/// <inheritdoc />
public override IReadOnlyList<ModelSource> FurtherSources =>
[
new("https://developers.openai.com/api/docs/models/gpt-6-astra", new DateOnly(2026, 9, 27), "Text and image input, text output, both APIs, function calling, and web search. A window of 1,050,000 tokens. The effort reaches from low to max, with no way to turn reasoning off."),
new("https://developers.openai.com/api/docs/models/gpt-6-sol", new DateOnly(2026, 9, 27), "The same abilities and window as Astra. The effort reaches from none to max and defaults to medium."),
new("https://developers.openai.com/api/docs/models/gpt-6-luna", new DateOnly(2026, 9, 27), "The same abilities and window as Astra. The effort reaches from none to max and defaults to medium.")
];
/// <inheritdoc />
protected override void Declare(ModelFamilyBuilder builder)
{
builder.Rule("gpt-6").AsPrefix()
.Capabilities(TEXT_INPUT | MULTIPLE_IMAGE_INPUT | TEXT_OUTPUT | FUNCTION_CALLING | WEB_SEARCH)
.Apis(RESPONSES_API | CHAT_COMPLETION_API)
.Reasoning(ReasoningSupport.ON_BY_DEFAULT)
.ContextWindow(1_050_000)
.SystemPromptRole(SystemPromptRole.DEVELOPER);
builder.Rule("gpt-6-astra").AsPrefix().InheritsFrom("gpt-6")
.Reasoning(ReasoningSupport.ALWAYS);
}
}