Fixed GPT-6 Sol and Luna, and the system prompt role of newer OpenAI models (#1010)
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

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2026-09-27 19:13:54 +02:00
1 parent 1eaca9b12f
commit 8dbe459a53
27 files changed
+739 -355

No files matched your search

+22 -3
View File
@@ -57,6 +57,15 @@ public static class CapabilitySnapshot
/// </remarks>
private const string NO_TOKENIZER = "(unknown)";
/// <summary>
/// What a model no rule states a system prompt role for is written as.
/// </summary>
/// <remarks>
/// Which is nearly every model outside OpenAI's own line, and rightly so: the provider then
/// sends the system prompt the one way it knows.
/// </remarks>
private const string NO_SYSTEM_PROMPT_ROLE = "(unknown)";
private const string HEADER =
"""
# What the rules answer, for every model of the corpus.
@@ -66,8 +75,11 @@ public static class CapabilitySnapshot
#
# Columns are provider, model ID as the provider reports it, the capabilities sorted by
# name, what the model is made for, its context window in tokens, how many images it
# accepts, and which tokenizer it uses. The ID stands here unchanged, so a line may well
# carry leading or trailing spaces.
# accepts, which tokenizer it uses, and which role its system prompt is sent in. The ID
# stands here unchanged, so a line may well carry leading or trailing spaces.
#
# A system prompt role written as "(unknown)" leaves the choice to the provider. Only the
# rules of OpenAI's own line state one, because only OpenAI's cloud asks the question.
#
# A window or an image limit written as "(unknown)" is one nobody has stated a source for.
# That is a gap, not a claim: the app then shows a person how many tokens their conversation
@@ -137,9 +149,16 @@ public static class CapabilitySnapshot
private static string Line(CorpusEntry entry)
{
var profile = entry.Provider.GetModelProfile(new Model(entry.ModelId, null));
return $"{entry.Provider} | {entry.ModelId} | {Describe(RebuiltRules.AsCapabilities(profile))} | {profile.Kind} | {Describe(profile.Context)} | {Describe(profile.Images)} | {Describe(profile.Tokenizer)}";
return $"{entry.Provider} | {entry.ModelId} | {Describe(RebuiltRules.AsCapabilities(profile))} | {profile.Kind} | {Describe(profile.Context)} | {Describe(profile.Images)} | {Describe(profile.Tokenizer)} | {Describe(profile.SystemPromptRole)}";
}
/// <summary>
/// Writes a system prompt role the way a snapshot line does.
/// </summary>
/// <param name="role">The role to write.</param>
/// <returns>The role, or a marker when no rule stated one.</returns>
public static string Describe(SystemPromptRole role) => role is SystemPromptRole.UNKNOWN ? NO_SYSTEM_PROMPT_ROLE : role.ToString();
/// <summary>
/// Writes a tokenizer reference the way a snapshot line does.
/// </summary>