2026-09-12 09:41:39 +02:00
using static AIStudio . Provider . Capability ;
namespace AIStudio.Models.OpenAI ;
/// <summary>
/// gpt-oss, the weights OpenAI published.
/// </summary>
/// <remarks>
/// The only OpenAI model anybody else may serve, and the reason the rest of this folder does not
/// have to worry about being confused with it: "gpt-oss" is a name part of its own, while every
/// cloud model of theirs carries a version behind the "gpt". The previous rules needed a function
/// to tell the two apart, and it is the specificity which does it here.
///
/// It browses through the harmony format it was trained on, which is why web search is stated even
/// though nothing else among the open weights has it.
/// </remarks>
public sealed class GptOssFamily : ModelFamily
{
/// <inheritdoc />
public override ModelVendor Vendor => ModelVendor . OPEN_AI ;
/// <inheritdoc />
2026-09-12 15:53:03 +02:00
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." );
2026-09-12 09:41:39 +02:00
/// <inheritdoc />
protected override void Declare ( ModelFamilyBuilder builder ) =>
builder . Rule ( "gpt-oss" ). AsSegment ()
. Capabilities ( TEXT_INPUT | TEXT_OUTPUT | FUNCTION_CALLING | WEB_SEARCH )
2026-09-12 15:53:03 +02:00
. Apis ( CHAT_COMPLETION_API )
. ContextWindow ( 131_072 );
2026-09-12 09:41:39 +02:00
}