modelpreset

package
v0.24.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2026 License: MIT Imports: 12 Imported by: 0

README

Model Presets

modelpreset is the built-in provider and model catalog for inference-go.

Use it when you want reviewed defaults for provider connection settings, model identifiers, model limits, and model-specific capabilities.

The catalog is especially useful for:

  • Providers with multiple model families
  • Hosted routers
  • Local runtimes
  • OpenAI-compatible services
  • Models with different reasoning or tool support
  • Models that require provider-specific parameter behavior

For general provider usage, see ../docs/using-providers.md.

What a preset gives you

A provider preset gives you:

  • Provider identity and display name
  • Adapter family
  • Default origin and endpoint path
  • API-key header behavior
  • Default request headers
  • Provider-wide capability restrictions
  • The provider's model preset collection

A model preset gives you:

  • Provider-specific model name
  • Stable preset ID
  • Display name
  • Default context and output limits
  • Temperature or reasoning default
  • Optional cache, output, and stop defaults
  • Model-specific capability restrictions

A preset is not a promise that an external provider will never change. It is a reviewed default that is validated by the catalog test suite.

Supported provider presets

Provider Constant Adapter family Model families represented
Anthropic ProviderAnthropic Anthropic Messages Claude
DeepSeek ProviderDeepSeek OpenAI Responses DeepSeek V4
Google Gemini ProviderGoogleGemini Google Generate Content Gemini and related Google models
Hugging Face Router ProviderHuggingFace OpenAI Chat Completions Routed open models and backend variants
LocalAI ProviderLocalAI OpenAI Responses Local model presets
LM Studio ProviderLMStudio OpenAI Responses Local model presets
llama.cpp ProviderLlamaCPP OpenAI Chat Completions Llama and Qwen local models
Meta ProviderMeta OpenAI Responses Muse Spark
MiniMax ProviderMiniMax OpenAI Responses MiniMax M2 and M3
Mistral ProviderMistral OpenAI Chat Completions Mistral and Devstral
Moonshot ProviderMoonshot Anthropic Messages Kimi
Ollama ProviderOllama Anthropic Messages Ollama-tagged local models
OpenAI Chat ProviderOpenAIChat OpenAI Chat Completions GPT 4.1 and GPT-4o
OpenAI Responses ProviderOpenAIResponses OpenAI Responses GPT-5 and GPT-OSS families
OpenRouter ProviderOpenRouter OpenAI Responses Routed DeepSeek, Qwen, MiniMax, Kimi, GLM, Xiaomi, and other models
QwenCloud ProviderQwen OpenAI Responses Qwen, Qwen Coder, and Qwen Character
SGLang ProviderSGLang OpenAI Responses Local model presets
vLLM ProviderVLLM OpenAI Responses Local model presets
xAI ProviderXAI OpenAI Responses Grok
Xiaomi ProviderXiaomi OpenAI Responses MiMo
Z.AI ProviderZAI OpenAI Chat Completions GLM
Z.AI Coding Plan ProviderZAICodingPlan OpenAI Responses GLM Coding Plan models

The exact available model IDs for a provider are available through ModelPresetIDs.

Why model-specific capability resolution matters

A provider may support a broad adapter surface while a model supports only part of it.

Examples:

  • One model can accept images while another is text-only.
  • One model can use reasoning while another cannot.
  • One model can use JSON Schema while another only supports text.
  • One model can call tools while another cannot.
  • One model can use a different reasoning budget or level range.
  • One router route can differ from another route for the same base model family.

For that reason, adding a provider preset is only half of the setup.

Applications should also create a model-specific resolver through NewPresetCapabilityResolver and pass it with each completion request.

Catalog safety

The catalog returns cloned values.

Applications can safely customize a returned provider or model preset for one request or one deployment without mutating the built-in catalog.

ValidateCatalog validates built-in or application-owned catalog data before it is used.

Validation covers high-level data integrity, including:

  • Provider identity and connection fields
  • Model identity consistency
  • Sampling defaults
  • Reasoning defaults
  • Cache/output/stop defaults
  • Capability override structure

Stable IDs and model identity

Preset IDs are intended to be stable within a release line.

Applications that persist preset IDs should still plan for migrations when:

  • A provider retires a model
  • A model name changes
  • A router backend becomes part of the required model identity
  • A provider splits one product into separate routes or credential types

Routed variants and backend suffixes are intentionally treated as separate model identities when they affect behavior.

Local and router presets

Local and router presets are useful defaults, not hardware or deployment guarantees.

Review and test the effective behavior when:

  • Running a different local server version
  • Loading a custom model
  • Using a gateway proxy
  • Selecting a specific router backend
  • Enabling tools, structured output, reasoning, or multimodal input

A caller capability override is appropriate when a deployment differs from the built-in catalog.

Adding a provider or model preset

When adding or changing catalog data:

  1. Add the provider/model declaration.
  2. Register the provider in the catalog.
  3. Ensure every model has a temperature or reasoning default.
  4. Declare known provider/model capability differences.
  5. Add or update catalog validation coverage.
  6. Update this provider table if provider support changes.
  7. Update application overlays that consume the built-in catalog.
  8. Add an integration example if the public setup workflow changes.

The catalog tests are intended to make missing registration, invalid defaults, and incomplete application integration fail early.

Documentation

Index

Constants

View Source
const (
	ModelNamePhi4Reasoning14BRepo  spec.ModelName = "microsoft/Phi-4-reasoning"
	ModelNamePhi4Reasoning14BLocal spec.ModelName = "phi-4-reasoning"

	ModelNamePhi4Reasoning14BOllama spec.ModelName = "phi4-reasoning:14b"

	DisplayNamePhi4Reasoning14B = "Phi-4 Reasoning 14B"

	PresetPhi4Reasoning14B ModelPresetID = "phi4reasoning14b"
)
View Source
const (
	ModelNameOrnith1035BFP8DeepInfra spec.ModelName = "deepreinforce-ai/Ornith-1.0-35B-FP8:deepinfra"

	DisplayNameOrnith1035BFP8          = "Ornith 1.0 35B FP8"
	DisplayNameOrnith1035BFP8DeepInfra = "Ornith 1.0 35B FP8 (DeepInfra)"

	PresetOrnith1035BFP8          ModelPresetID = "ornith1035bfp8"
	PresetOrnith1035BFP8DeepInfra ModelPresetID = "ornith1035bfp8DeepInfra"
)
View Source
const (
	ModelNameStep35FlashFeatherlessAI spec.ModelName = "stepfun-ai/Step-3.5-Flash:featherless-ai"
	ModelNameOpenRouterStep37Flash    spec.ModelName = "stepfun/step-3.7-flash"

	DisplayNameStep35Flash              = "Step 3.5 Flash"
	DisplayNameStep37Flash              = "Step 3.7 Flash"
	DisplayNameStep35FlashFeatherlessAI = "Step 3.5 Flash (Featherless AI)"

	PresetStep35Flash              ModelPresetID = "step35flash"
	PresetStep37Flash              ModelPresetID = "step37Flash"
	PresetStep35FlashFeatherlessAI ModelPresetID = "step35flashFeatherlessAI"
)
View Source
const (
	ModelNameOpenRouterTencentHy3Preview spec.ModelName = "tencent/hy3-preview"

	DisplayNameTencentHy3Preview = "Tencent Hy3 Preview"

	PresetTencentHy3Preview ModelPresetID = "tencentHy3Preview"
)
View Source
const (
	ModelNameOpenRouterPoolsideLagunaM1Free spec.ModelName = "poolside/laguna-m.1:free"

	DisplayNamePoolsideLagunaM1Free = "Poolside Laguna M.1 Free"

	PresetPoolsideLagunaM1Free ModelPresetID = "poolsideLagunaM1Free"
)
View Source
const (
	ModelNameNemotron3UltraNVFP4FireworksAI  spec.ModelName = "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4:fireworks-ai"
	ModelNameNemotron3UltraBF16DeepInfra     spec.ModelName = "nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16:deepinfra"
	ModelNameNemotron3SuperBF16FeatherlessAI spec.ModelName = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16:featherless-ai"
	ModelNameOpenRouterNemotron3SuperFree    spec.ModelName = "nvidia/nemotron-3-super-120b-a12b:free"
	ModelNameOpenRouterNemotron3UltraFree    spec.ModelName = "nvidia/nemotron-3-ultra-550b-a55b:free"

	DisplayNameNemotron3UltraNVFP4             = "NVIDIA Nemotron 3 Ultra 550B A55B NVFP4"
	DisplayNameNemotron3UltraBF16              = "NVIDIA Nemotron 3 Ultra 550B A55B BF16"
	DisplayNameNemotron3SuperBF16              = "NVIDIA Nemotron 3 Super 120B A12B BF16"
	DisplayNameNemotron3UltraFree              = "NVIDIA Nemotron 3 Ultra Free"
	DisplayNameNemotron3SuperFree              = "NVIDIA Nemotron 3 Super Free"
	DisplayNameNemotron3SuperBF16FeatherlessAI = "NVIDIA Nemotron 3 Super 120B A12B BF16 (Featherless AI)"
	DisplayNameNemotron3UltraBF16DeepInfra     = "NVIDIA Nemotron 3 Ultra 550B A55B BF16 (DeepInfra)"
	DisplayNameNemotron3UltraNVFP4FireworksAI  = "NVIDIA Nemotron 3 Ultra 550B A55B NVFP4 (Fireworks AI)"

	PresetNemotron3UltraNVFP4             ModelPresetID = "nemotron3ultraNVFP4"
	PresetNemotron3UltraBF16              ModelPresetID = "nemotron3ultraBF16"
	PresetNemotron3SuperBF16              ModelPresetID = "nemotron3superBF16"
	PresetNemotron3UltraFree              ModelPresetID = "nvidiaNemotron3UltraFree"
	PresetNemotron3SuperFree              ModelPresetID = "nvidiaNemotron3SuperFree"
	PresetNemotron3UltraNVFP4FireworksAI  ModelPresetID = "nemotron3ultraNVFP4FireworksAI"
	PresetNemotron3UltraBF16DeepInfra     ModelPresetID = "nemotron3ultraBF16DeepInfra"
	PresetNemotron3SuperBF16FeatherlessAI ModelPresetID = "nemotron3superBF16FeatherlessAI"
)
View Source
const (
	ProviderAnthropic spec.ProviderName = "anthropic"

	DisplayNameProviderAnthropic = "Anthropic"
)
View Source
const (
	ModelNameClaudeFable51  spec.ModelName = "claude-fable-5-1"
	ModelNameClaudeFable5   spec.ModelName = "claude-fable-5"
	ModelNameClaudeOpus5    spec.ModelName = "claude-opus-5"
	ModelNameClaudeOpus48   spec.ModelName = "claude-opus-4-8"
	ModelNameClaudeOpus47   spec.ModelName = "claude-opus-4-7"
	ModelNameClaudeOpus46   spec.ModelName = "claude-opus-4-6"
	ModelNameClaudeOpus45   spec.ModelName = "claude-opus-4-5-20251101"
	ModelNameClaudeOpus41   spec.ModelName = "claude-opus-4-1-20250805"
	ModelNameClaudeSonnet5  spec.ModelName = "claude-sonnet-5"
	ModelNameClaudeSonnet46 spec.ModelName = "claude-sonnet-4-6"
	ModelNameClaudeSonnet45 spec.ModelName = "claude-sonnet-4-5-20250929"
	ModelNameClaudeSonnet4  spec.ModelName = "claude-sonnet-4-20250514"
	ModelNameClaudeHaiku45  spec.ModelName = "claude-haiku-4-5-20251001"
)
View Source
const (
	DisplayNameClaudeFable51  = "Claude Fable 5.1"
	DisplayNameClaudeFable5   = "Claude Fable 5"
	DisplayNameClaudeOpus5    = "Claude Opus 5"
	DisplayNameClaudeOpus48   = "Claude Opus 4.8"
	DisplayNameClaudeOpus47   = "Claude Opus 4.7"
	DisplayNameClaudeOpus46   = "Claude Opus 4.6"
	DisplayNameClaudeOpus45   = "Claude Opus 4.5"
	DisplayNameClaudeOpus41   = "Claude Opus 4.1"
	DisplayNameClaudeSonnet5  = "Claude Sonnet 5"
	DisplayNameClaudeSonnet46 = "Claude Sonnet 4.6"
	DisplayNameClaudeSonnet45 = "Claude Sonnet 4.5"
	DisplayNameClaudeSonnet4  = "Claude Sonnet 4"
	DisplayNameClaudeHaiku45  = "Claude Haiku 4.5"
)
View Source
const (
	ProviderDeepSeek spec.ProviderName = "deepseek"

	DisplayNameProviderDeepSeek = "DeepSeek"
)
View Source
const (
	ModelNameDeepSeekV4Flash spec.ModelName = "deepseek-v4-flash"
	ModelNameDeepSeekV4Pro   spec.ModelName = "deepseek-v4-pro"

	ModelNameDeepSeekR18BRepo  spec.ModelName = "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B"
	ModelNameDeepSeekR18BLocal spec.ModelName = "deepseek-r1-8b"

	ModelNameDeepSeekV4FlashFireworksAI spec.ModelName = "deepseek-ai/DeepSeek-V4-Flash:fireworks-ai"
	ModelNameDeepSeekV4ProFireworksAI   spec.ModelName = "deepseek-ai/DeepSeek-V4-Pro:fireworks-ai"

	ModelNameDeepSeekR18BOllama spec.ModelName = "deepseek-r1:8b"

	ModelNameOpenRouterDeepSeekV4Flash spec.ModelName = "deepseek/deepseek-v4-flash"
	ModelNameOpenRouterDeepSeekV4Pro   spec.ModelName = "deepseek/deepseek-v4-pro"
)
View Source
const (
	DisplayNameDeepSeekR18B    = "DeepSeek-R1 8B"
	DisplayNameDeepSeekV4Flash = "DeepSeek V4 Flash"
	DisplayNameDeepSeekV4Pro   = "DeepSeek V4 Pro"

	DisplayNameDeepSeekV4FlashFireworksAI = "DeepSeek V4 Flash (Fireworks AI)"
	DisplayNameDeepSeekV4ProFireworksAI   = "DeepSeek V4 Pro (Fireworks AI)"
)
View Source
const (
	ProviderGoogleGemini spec.ProviderName = "googlegemini"

	DisplayNameProviderGoogleGemini = "Google Gemini API"
)
View Source
const (
	ModelNameGemini37Flash     spec.ModelName = "gemini-3.7-flash"
	ModelNameGemini36Flash     spec.ModelName = "gemini-3.6-flash"
	ModelNameGemini35Flash     spec.ModelName = "gemini-3.5-flash"
	ModelNameGemini35FlashLite spec.ModelName = "gemini-3.5-flash-lite"
	ModelNameGemini31Pro       spec.ModelName = "gemini-3.1-pro-preview"
	ModelNameGemini31FlashLite spec.ModelName = "gemini-3.1-flash-lite"
	ModelNameGemini3Flash      spec.ModelName = "gemini-3-flash-preview"
	ModelNameGemini25Flash     spec.ModelName = "gemini-2.5-flash"
	ModelNameGemini25FlashLite spec.ModelName = "gemini-2.5-flash-lite-preview-06-17"

	ModelNameGemma426BA4BRepo  spec.ModelName = "google/gemma-4-26b-a4b"
	ModelNameGemma426BA4BLocal spec.ModelName = "gemma4-26b-a4b"

	ModelNameGemma426BOllama spec.ModelName = "gemma4:26b"
	ModelNameGemma4E4BOllama spec.ModelName = "gemma4:e4b"
)
View Source
const (
	DisplayNameGemini37Flash     = "Gemini 3.7 Flash"
	DisplayNameGemini36Flash     = "Gemini 3.6 Flash"
	DisplayNameGemini35Flash     = "Gemini 3.5 Flash"
	DisplayNameGemini35FlashLite = "Gemini 3.5 Flash Lite"
	DisplayNameGemini31Pro       = "Gemini 3.1 Pro"
	DisplayNameGemini31FlashLite = "Gemini 3.1 Flash Lite"
	DisplayNameGemini3Flash      = "Gemini 3 Flash"
	DisplayNameGemini25Flash     = "Gemini 2.5 Flash"
	DisplayNameGemini25FlashLite = "Gemini 2.5 Flash Lite"

	DisplayNameGemma426BA4B = "Gemma 4 26B A4B"
	DisplayNameGemma426B    = "Gemma 4 26B"
	DisplayNameGemma4E4B    = "Gemma 4 E4B"
)
View Source
const (
	ProviderHuggingFace spec.ProviderName = "huggingface"

	DisplayNameProviderHuggingFace = "Hugging Face"
)
View Source
const (
	ProviderLlamaCPP spec.ProviderName = "llamacpp"

	DisplayNameProviderLlamaCPP = "llama.cpp"
)
View Source
const (
	ProviderLMStudio spec.ProviderName = "lmstudio"

	DisplayNameProviderLMStudio = "LM Studio"
)
View Source
const (
	ProviderLocalAI spec.ProviderName = "localai"

	DisplayNameProviderLocalAI = "LocalAI"
)
View Source
const (
	ProviderMeta spec.ProviderName = "meta"

	DisplayNameProviderMeta = "Meta"
)
View Source
const (
	ModelNameMuseSpark11            spec.ModelName = "muse-spark-1.1"
	ModelNameMuseSpark12            spec.ModelName = "muse-spark-1.2"
	ModelNameMuseSpark12Contributor spec.ModelName = "muse-spark-1.2-contributor"

	ModelNameLlama4BehemothLocal spec.ModelName = "llama4-behemoth"
	ModelNameLlama4MaverickLocal spec.ModelName = "llama4-maverick"
	ModelNameLlama4ScoutLocal    spec.ModelName = "llama4-scout"
)
View Source
const (
	DisplayNameMuseSpark11            = "Muse Spark 1.1"
	DisplayNameMuseSpark12            = "Muse Spark 1.2"
	DisplayNameMuseSpark12Contributor = "Muse Spark 1.2 Contributor"

	DisplayNameLlama4Behemoth = "Llama 4 Behemoth"
	DisplayNameLlama4Maverick = "Llama 4 Maverick"
	DisplayNameLlama4Scout    = "Llama 4 Scout"
)
View Source
const (
	ProviderMiniMax spec.ProviderName = "minimax"

	DisplayNameProviderMiniMax = "MiniMax"
)
View Source
const (
	ModelNameMiniMaxM3                spec.ModelName = "MiniMax-M3"
	ModelNameMiniMaxM27               spec.ModelName = "MiniMax-M2.7"
	ModelNameMiniMaxM27Highspeed      spec.ModelName = "MiniMax-M2.7-highspeed"
	ModelNameMiniMaxM25               spec.ModelName = "MiniMax-M2.5"
	ModelNameMiniMaxM25Highspeed      spec.ModelName = "MiniMax-M2.5-highspeed"
	ModelNameMiniMaxM21               spec.ModelName = "MiniMax-M2.1"
	ModelNameMiniMaxM21Highspeed      spec.ModelName = "MiniMax-M2.1-highspeed"
	ModelNameMiniMaxM2                spec.ModelName = "MiniMax-M2"
	ModelNameOpenRouterMiniMaxM3      spec.ModelName = "minimax/minimax-m3"
	ModelNameOpenRouterMiniMaxM27     spec.ModelName = "minimax/minimax-m2.7"
	ModelNameOpenRouterMiniMaxM25Free spec.ModelName = "minimax/minimax-m2.5:free"

	ModelNameMiniMaxM27FireworksAI spec.ModelName = "MiniMaxAI/MiniMax-M2.7:fireworks-ai"
	ModelNameMiniMaxM25Novita      spec.ModelName = "MiniMaxAI/MiniMax-M2.5:novita"
)
View Source
const (
	DisplayNameMiniMaxM2             = "MiniMax M2"
	DisplayNameMiniMaxM21            = "MiniMax M2.1"
	DisplayNameMiniMaxM21Highspeed   = "MiniMax M2.1 Highspeed"
	DisplayNameMiniMaxM25            = "MiniMax M2.5"
	DisplayNameMiniMaxM25Highspeed   = "MiniMax M2.5 Highspeed"
	DisplayNameMiniMaxM25Free        = "MiniMax M2.5 Free"
	DisplayNameMiniMaxM27            = "MiniMax M2.7"
	DisplayNameMiniMaxM27Highspeed   = "MiniMax M2.7 Highspeed"
	DisplayNameMiniMaxM3             = "MiniMax M3"
	DisplayNameMiniMaxM25Novita      = "MiniMax M2.5 (Novita)"
	DisplayNameMiniMaxM27FireworksAI = "MiniMax M2.7 (Fireworks AI)"
)
View Source
const (
	ProviderMistral spec.ProviderName = "mistral"

	DisplayNameProviderMistral = "Mistral AI"
)
View Source
const (
	ModelNameMistralMedium35 spec.ModelName = "mistral-medium-3-5"
	ModelNameMistralSmall4   spec.ModelName = "mistral-small-2603"
	ModelNameMistralLarge3   spec.ModelName = "mistral-large-2512"
	ModelNameDevstral2       spec.ModelName = "devstral-2512"

	ModelNameMinistral314BRepo  spec.ModelName = "mistralai/Ministral-3-14B-Instruct-2512"
	ModelNameMinistral314BLocal spec.ModelName = "ministral-3-14b"

	ModelNameDevstral224BRepo  spec.ModelName = "mistralai/Devstral-Small-2-24B-Instruct-2512"
	ModelNameDevstral224BLocal spec.ModelName = "devstral-small-2-24b"

	ModelNameMinistral314BOllama spec.ModelName = "ministral-3:14b"
)
View Source
const (
	DisplayNameMistralMedium35 = "Mistral Medium 3.5"
	DisplayNameMistralSmall4   = "Mistral Small 4"
	DisplayNameMistralLarge3   = "Mistral Large 3"
	DisplayNameDevstral2       = "Devstral 2"

	DisplayNameMinistral314B = "Ministral 3 14B"
	DisplayNameDevstral224B  = "Devstral Small 2 24B"
)
View Source
const (
	ProviderMoonshot spec.ProviderName = "moonshot"

	DisplayNameProviderMoonshot = "Moonshot AI"
)
View Source
const (
	ModelNameMoonshotKimiK3               spec.ModelName = "kimi-k3"
	ModelNameMoonshotKimiK27Code          spec.ModelName = "kimi-k2.7-code"
	ModelNameMoonshotKimiK27CodeHighspeed spec.ModelName = "kimi-k2.7-code-highspeed"
	ModelNameMoonshotKimiK26              spec.ModelName = "kimi-k2.6"

	ModelNameOpenRouterMoonshotKimiK26     spec.ModelName = "moonshotai/kimi-k2.6"
	ModelNameOpenRouterMoonshotKimiK27Code spec.ModelName = "moonshotai/kimi-k2.7-code"

	ModelNameKimiK2InstructNovita        spec.ModelName = "moonshotai/Kimi-K2-Instruct:novita"
	ModelNameKimiK2Instruct0905Novita    spec.ModelName = "moonshotai/Kimi-K2-Instruct-0905:novita"
	ModelNameKimiK2ThinkingFeatherlessAI spec.ModelName = "moonshotai/Kimi-K2-Thinking:featherless-ai"
)
View Source
const (
	DisplayNameMoonshotKimiK3               = "Kimi K3"
	DisplayNameMoonshotKimiK27Code          = "Kimi K2.7 Code"
	DisplayNameMoonshotKimiK27CodeHighspeed = "Kimi K2.7 Code Highspeed"
	DisplayNameMoonshotKimiK26              = "Kimi K2.6"

	DisplayNameKimiK2Thinking     = "Kimi K2 Thinking"
	DisplayNameKimiK2Instruct     = "Kimi K2 Instruct"
	DisplayNameKimiK2Instruct0905 = "Kimi K2 Instruct 0905"

	DisplayNameKimiK2InstructNovita        = "Kimi K2 Instruct (Novita)"
	DisplayNameKimiK2Instruct0905Novita    = "Kimi K2 Instruct 0905 (Novita)"
	DisplayNameKimiK2ThinkingFeatherlessAI = "Kimi K2 Thinking (Featherless AI)"
)
View Source
const (
	ProviderOllama spec.ProviderName = "ollama"

	DisplayNameProviderOllama = "Ollama"
)
View Source
const (
	ProviderOpenAIChat spec.ProviderName = "openai"

	DisplayNameProviderOpenAIChat = "OpenAI Chat Completions API"
)
View Source
const (
	ProviderOpenAIResponses spec.ProviderName = "openairesponses"

	DisplayNameProviderOpenAIResponses = "OpenAI Responses API"
)
View Source
const (
	ModelNameGPT56Sol      spec.ModelName = "gpt-5.6-sol"
	ModelNameGPT56Terra    spec.ModelName = "gpt-5.6-terra"
	ModelNameGPT56Luna     spec.ModelName = "gpt-5.6-luna"
	ModelNameGPT55         spec.ModelName = "gpt-5.5"
	ModelNameGPT54         spec.ModelName = "gpt-5.4"
	ModelNameGPT54Mini     spec.ModelName = "gpt-5.4-mini"
	ModelNameGPT54Nano     spec.ModelName = "gpt-5.4-nano"
	ModelNameGPT53Codex    spec.ModelName = "gpt-5.3-codex"
	ModelNameGPT52         spec.ModelName = "gpt-5.2"
	ModelNameGPT52Codex    spec.ModelName = "gpt-5.2-codex"
	ModelNameGPT51         spec.ModelName = "gpt-5.1"
	ModelNameGPT51Codex    spec.ModelName = "gpt-5.1-codex"
	ModelNameGPT51CodexMax spec.ModelName = "gpt-5.1-codex-max"
	ModelNameGPT5Mini      spec.ModelName = "gpt-5-mini"

	ModelNameGPT41     spec.ModelName = "gpt-4.1"
	ModelNameGPT41Mini spec.ModelName = "gpt-4.1-mini"
	ModelNameGPT4o     spec.ModelName = "gpt-4o"
	ModelNameGPT4oMini spec.ModelName = "gpt-4o-mini"

	ModelNameGPTOSS20BRepo  spec.ModelName = "openai/gpt-oss-20b"
	ModelNameGPTOSS20BLocal spec.ModelName = "gpt-oss-20b"

	ModelNameGPTOSS120BFireworksAI spec.ModelName = "openai/gpt-oss-120b:fireworks-ai"
	ModelNameGPTOSS20BFireworksAI  spec.ModelName = "openai/gpt-oss-20b:fireworks-ai"

	ModelNameGPTOSS20BOllama spec.ModelName = "gpt-oss:20b"
)
View Source
const (
	DisplayNameGPT56Sol      = "GPT 5.6 Sol"
	DisplayNameGPT56Terra    = "GPT 5.6 Terra"
	DisplayNameGPT56Luna     = "GPT 5.6 Luna"
	DisplayNameGPT55         = "GPT 5.5"
	DisplayNameGPT54         = "GPT 5.4"
	DisplayNameGPT54Mini     = "GPT 5.4 Mini"
	DisplayNameGPT54Nano     = "GPT 5.4 Nano"
	DisplayNameGPT53Codex    = "GPT 5.3 Codex"
	DisplayNameGPT52         = "GPT 5.2"
	DisplayNameGPT52Codex    = "GPT 5.2 Codex"
	DisplayNameGPT51         = "GPT 5.1"
	DisplayNameGPT51Codex    = "GPT 5.1 Codex"
	DisplayNameGPT51CodexMax = "GPT 5.1 Codex Max"
	DisplayNameGPT5Mini      = "GPT 5 Mini"

	DisplayNameGPT41     = "GPT 4.1"
	DisplayNameGPT41Mini = "GPT 4.1 Mini"
	DisplayNameGPT4o     = "GPT 4o"
	DisplayNameGPT4oMini = "GPT 4o Mini"

	DisplayNameGPTOSS120B = "gpt-oss 120B"
	DisplayNameGPTOSS20B  = "gpt-oss 20B"

	DisplayNameGPTOSS120BFireworksAI = "gpt-oss 120B (Fireworks AI)"
	DisplayNameGPTOSS20BFireworksAI  = "gpt-oss 20B (Fireworks AI)"
)
View Source
const (
	ProviderOpenRouter spec.ProviderName = "openrouter"

	DisplayNameProviderOpenRouter = "OpenRouter"
)
View Source
const (
	ProviderQwen spec.ProviderName = "qwen"

	DisplayNameProviderQwen = "QwenCloud"
)
View Source
const (
	ModelNameQwen38Max           spec.ModelName = "qwen3.8-max"
	ModelNameQwen3824TA95B       spec.ModelName = "qwen3.8-2.4t-a95b"
	ModelNameQwen3827B           spec.ModelName = "qwen3.8-27b"
	ModelNameQwen37Max           spec.ModelName = "qwen3.7-max"
	ModelNameQwen37Max20260608   spec.ModelName = "qwen3.7-max-2026-06-08"
	ModelNameQwen37Max20260520   spec.ModelName = "qwen3.7-max-2026-05-20"
	ModelNameQwen3Max            spec.ModelName = "qwen3-max"
	ModelNameQwen3Max20260123    spec.ModelName = "qwen3-max-2026-01-23"
	ModelNameQwen37Plus          spec.ModelName = "qwen3.7-plus"
	ModelNameQwen37Plus20260526  spec.ModelName = "qwen3.7-plus-2026-05-26"
	ModelNameQwen37Flash         spec.ModelName = "qwen3.7-flash"
	ModelNameQwen37Flash20260715 spec.ModelName = "qwen3.7-flash-2026-07-15"
	ModelNameQwen36Plus          spec.ModelName = "qwen3.6-plus"
	ModelNameQwen36Plus20260402  spec.ModelName = "qwen3.6-plus-2026-04-02"
	ModelNameQwen36Flash         spec.ModelName = "qwen3.6-flash"
	ModelNameQwen36Flash20260416 spec.ModelName = "qwen3.6-flash-2026-04-16"
	ModelNameQwen3635BA3B        spec.ModelName = "qwen3.6-35b-a3b"
	ModelNameQwen3627B           spec.ModelName = "qwen3.6-27b"
	ModelNameQwen35Plus          spec.ModelName = "qwen3.5-plus"
	ModelNameQwen35Plus20260420  spec.ModelName = "qwen3.5-plus-2026-04-20"
	ModelNameQwen35Plus20260215  spec.ModelName = "qwen3.5-plus-2026-02-15"
	ModelNameQwen35Flash         spec.ModelName = "qwen3.5-flash"
	ModelNameQwen35Flash20260223 spec.ModelName = "qwen3.5-flash-2026-02-23"
	ModelNameQwen35397BA17B      spec.ModelName = "qwen3.5-397b-a17b"
	ModelNameQwen35122BA10B      spec.ModelName = "qwen3.5-122b-a10b"
	ModelNameQwen3527B           spec.ModelName = "qwen3.5-27b"
	ModelNameQwen3535BA3B        spec.ModelName = "qwen3.5-35b-a3b"
	ModelNameQwenPlus            spec.ModelName = "qwen-plus"
	ModelNameQwenFlash           spec.ModelName = "qwen-flash"
	ModelNameQwen3CoderPlus      spec.ModelName = "qwen3-coder-plus"
	ModelNameQwen3CoderFlash     spec.ModelName = "qwen3-coder-flash"
	ModelNameQwenPlusCharacter   spec.ModelName = "qwen-plus-character"
	ModelNameQwenFlashCharacter  spec.ModelName = "qwen-flash-character"

	ModelNameQwen3Coder30BA3BFireworksAI spec.ModelName = "Qwen/Qwen3-Coder-30B-A3B-Instruct:fireworks-ai"
	ModelNameQwen3CoderNextNovita        spec.ModelName = "Qwen/Qwen3-Coder-Next:novita"
	ModelNameQwen3635BA3BRepo            spec.ModelName = "Qwen/Qwen3.6-35B-A3B"
	ModelNameQwen3627BRepo               spec.ModelName = "Qwen/Qwen3.6-27B"
	ModelNameQwen3VL30BRepo              spec.ModelName = "qwen/qwen3-vl-30b"
	ModelNameQwen3VL30BA3BRepo           spec.ModelName = "Qwen/Qwen3-VL-30B-A3B-Instruct"
	ModelNameQwen3Coder30BA3BRepo        spec.ModelName = "Qwen/Qwen3-Coder-30B-A3B-Instruct"
	ModelNameQwen3635BA3BLocal           spec.ModelName = "qwen3.6-35b-a3b"
	ModelNameQwen3VL30BA3BLocal          spec.ModelName = "qwen3-vl-30b-a3b"
	ModelNameQwen3Coder30BA3BLocal       spec.ModelName = "qwen3-coder-30b-a3b"

	ModelNameOpenRouterQwen37Max  spec.ModelName = "qwen/qwen3.7-max"
	ModelNameOpenRouterQwen37Plus spec.ModelName = "qwen/qwen3.7-plus"

	ModelNameQwen3635BOllama     spec.ModelName = "qwen3.6:35b"
	ModelNameQwen3627BOllama     spec.ModelName = "qwen3.6:27b"
	ModelNameQwen3VL30BOllama    spec.ModelName = "qwen3-vl:30b"
	ModelNameQwen3Coder30BOllama spec.ModelName = "qwen3-coder:30b"
)
View Source
const (
	DisplayNameQwen38Max           = "Qwen3.8 Max"
	DisplayNameQwen3824TA95B       = "Qwen3.8 2.4T A95B"
	DisplayNameQwen3827B           = "Qwen3.8 27B"
	DisplayNameQwen37Max20260608   = "Qwen3.7 Max 2026-06-08"
	DisplayNameQwen37Max20260520   = "Qwen3.7 Max 2026-05-20"
	DisplayNameQwen3Max            = "Qwen3 Max"
	DisplayNameQwen3Max20260123    = "Qwen3 Max 2026-01-23"
	DisplayNameQwen37Plus20260526  = "Qwen3.7 Plus 2026-05-26"
	DisplayNameQwen37Flash         = "Qwen3.7 Flash"
	DisplayNameQwen37Flash20260715 = "Qwen3.7 Flash 2026-07-15"
	DisplayNameQwen36Plus          = "Qwen3.6 Plus"
	DisplayNameQwen36Plus20260402  = "Qwen3.6 Plus 2026-04-02"
	DisplayNameQwen36Flash         = "Qwen3.6 Flash"
	DisplayNameQwen36Flash20260416 = "Qwen3.6 Flash 2026-04-16"
	DisplayNameQwen35Plus          = "Qwen3.5 Plus"
	DisplayNameQwen35Plus20260420  = "Qwen3.5 Plus 2026-04-20"
	DisplayNameQwen35Plus20260215  = "Qwen3.5 Plus 2026-02-15"
	DisplayNameQwen35Flash         = "Qwen3.5 Flash"
	DisplayNameQwen35Flash20260223 = "Qwen3.5 Flash 2026-02-23"
	DisplayNameQwen35397BA17B      = "Qwen3.5 397B A17B"
	DisplayNameQwen35122BA10B      = "Qwen3.5 122B A10B"
	DisplayNameQwen3527B           = "Qwen3.5 27B"
	DisplayNameQwen3535BA3B        = "Qwen3.5 35B A3B"
	DisplayNameQwenPlus            = "Qwen Plus"
	DisplayNameQwenFlash           = "Qwen Flash"
	DisplayNameQwen3CoderPlus      = "Qwen3 Coder Plus"
	DisplayNameQwen3CoderFlash     = "Qwen3 Coder Flash"
	DisplayNameQwenPlusCharacter   = "Qwen Plus Character"
	DisplayNameQwenFlashCharacter  = "Qwen Flash Character"

	DisplayNameQwen3635BA3B     = "Qwen3.6 35B A3B"
	DisplayNameQwen3635B        = "Qwen3.6 35B"
	DisplayNameQwen3627B        = "Qwen3.6 27B"
	DisplayNameQwen37Max        = "Qwen3.7 Max"
	DisplayNameQwen37Plus       = "Qwen3.7 Plus"
	DisplayNameQwen3VL30BA3B    = "Qwen3-VL 30B A3B"
	DisplayNameQwen3VL30B       = "Qwen3-VL 30B"
	DisplayNameQwen3Coder30B    = "Qwen3-Coder 30B"
	DisplayNameQwen3Coder30BA3B = "Qwen3-Coder 30B A3B"
	DisplayNameQwen3CoderNext   = "Qwen3-Coder Next"

	DisplayNameQwen3Coder30BA3BFireworksAI = "Qwen3-Coder 30B A3B (Fireworks AI)"
	DisplayNameQwen3CoderNextNovita        = "Qwen3-Coder Next (Novita)"
)
View Source
const (
	ProviderSGLang spec.ProviderName = "sglang"

	DisplayNameProviderSGLang = "SGLang"
)
View Source
const (
	ProviderVLLM spec.ProviderName = "vllm"

	DisplayNameProviderVLLM = "vLLM"
)
View Source
const (
	ProviderXAI spec.ProviderName = "xai"

	DisplayNameProviderXAI = "xAI"
)
View Source
const (
	ModelNameGrok46             spec.ModelName = "grok-4.6"
	ModelNameGrok45             spec.ModelName = "grok-4.5"
	ModelNameGrok43             spec.ModelName = "grok-4.3"
	ModelNameGrokBuild01        spec.ModelName = "grok-build-0.1"
	ModelNameGrok42Reasoning    spec.ModelName = "grok-4.20-0309-reasoning"
	ModelNameGrok42NonReasoning spec.ModelName = "grok-4.20-0309-non-reasoning"
)
View Source
const (
	DisplayNameGrok46             = "Grok 4.6"
	DisplayNameGrok45             = "Grok 4.5"
	DisplayNameGrok43             = "Grok 4.3"
	DisplayNameBuild01            = "Build 0.1"
	DisplayNameGrok42Reasoning    = "Grok 4.2 Reasoning"
	DisplayNameGrok42NonReasoning = "Grok 4.2 Non-Reasoning"
)
View Source
const (
	ProviderXiaomi spec.ProviderName = "xiaomi"

	DisplayNameProviderXiaomi = "Xiaomi"
)
View Source
const (
	ModelNameMiMoV25Pro spec.ModelName = "mimo-v2.5-pro"
	ModelNameMiMoV25    spec.ModelName = "mimo-v2.5"

	ModelNameOpenRouterXiaomiMiMoV25Pro spec.ModelName = "xiaomi/mimo-v2.5-pro"
	ModelNameOpenRouterXiaomiMiMoV25    spec.ModelName = "xiaomi/mimo-v2.5"

	ModelNameMiMoV25ProDeepInfra      spec.ModelName = "XiaomiMiMo/MiMo-V2.5-Pro:deepinfra"
	ModelNameMiMoV2FlashFeatherlessAI spec.ModelName = "XiaomiMiMo/MiMo-V2-Flash:featherless-ai"
)
View Source
const (
	DisplayNameMiMoV2Flash      = "MiMo V2 Flash"
	DisplayNameMiMoV25          = "MiMo V2.5"
	DisplayNameMiMoV25Pro       = "MiMo V2.5 Pro"
	DisplayNameXiaomiMiMoV25    = "Xiaomi MiMo V2.5"
	DisplayNameXiaomiMiMoV25Pro = "Xiaomi MiMo V2.5 Pro"

	DisplayNameMiMoV2FlashFeatherlessAI = "MiMo V2 Flash (Featherless AI)"
	DisplayNameMiMoV25ProDeepInfra      = "MiMo V2.5 Pro (DeepInfra)"
)
View Source
const (
	ProviderZAI spec.ProviderName = "zai"

	DisplayNameProviderZAI = "Z.AI"
)
View Source
const (
	ProviderZAICodingPlan spec.ProviderName = "zaiCodingPlan"

	DisplayNameProviderZAICodingPlan = "Z.AI Coding Plan"
)
View Source
const (
	ModelNameGLM53        spec.ModelName = "glm-5.3"
	ModelNameGLM52        spec.ModelName = "glm-5.2"
	ModelNameGLM51        spec.ModelName = "glm-5.1"
	ModelNameGLM5         spec.ModelName = "glm-5"
	ModelNameGLM5Turbo    spec.ModelName = "glm-5-turbo"
	ModelNameGLM47        spec.ModelName = "glm-4.7"
	ModelNameGLM47FlashX  spec.ModelName = "glm-4.7-flashx"
	ModelNameGLM47Flash   spec.ModelName = "glm-4.7-flash"
	ModelNameGLM46        spec.ModelName = "glm-4.6"
	ModelNameGLM45        spec.ModelName = "glm-4.5"
	ModelNameGLM45X       spec.ModelName = "glm-4.5-x"
	ModelNameGLM45Air     spec.ModelName = "glm-4.5-air"
	ModelNameGLM45AirX    spec.ModelName = "glm-4.5-airx"
	ModelNameGLM45Flash   spec.ModelName = "glm-4.5-flash"
	ModelNameGLM5VTurbo   spec.ModelName = "glm-5v-turbo"
	ModelNameGLM46V       spec.ModelName = "glm-4.6v"
	ModelNameGLM46VFlash  spec.ModelName = "glm-4.6v-flash"
	ModelNameGLM46VFlashX spec.ModelName = "glm-4.6v-flashx"
	ModelNameGLM45V       spec.ModelName = "glm-4.5v"

	ModelNameGLM47Flash30BA3BRepo  spec.ModelName = "zai-org/GLM-4.7-Flash"
	ModelNameGLM47Flash30BA3BLocal spec.ModelName = "glm-4.7-flash"

	ModelNameGLM52FireworksAI    spec.ModelName = "zai-org/GLM-5.2:fireworks-ai"
	ModelNameGLM51FireworksAI    spec.ModelName = "zai-org/GLM-5.1:fireworks-ai"
	ModelNameGLM51FP8FireworksAI spec.ModelName = "zai-org/GLM-5.1-FP8:fireworks-ai"

	ModelNameGLM52FP8ZAI spec.ModelName = "zai-org/GLM-5.2-FP8:zai-org"

	ModelNameGLM5Novita    spec.ModelName = "zai-org/GLM-5:novita"
	ModelNameGLM47Cerebras spec.ModelName = "zai-org/GLM-4.7:cerebras"

	ModelNameOpenRouterZAIGLM51 spec.ModelName = "z-ai/glm-5.1"
	ModelNameOpenRouterZAIGLM52 spec.ModelName = "z-ai/glm-5.2"
)
View Source
const (
	DisplayNameGLM53        = "GLM 5.3"
	DisplayNameGLM5Turbo    = "GLM 5 Turbo"
	DisplayNameGLM47FlashX  = "GLM 4.7 FlashX"
	DisplayNameGLM47Flash   = "GLM 4.7 Flash"
	DisplayNameGLM46        = "GLM 4.6"
	DisplayNameGLM45        = "GLM 4.5"
	DisplayNameGLM45X       = "GLM 4.5 X"
	DisplayNameGLM45Air     = "GLM 4.5 Air"
	DisplayNameGLM45AirX    = "GLM 4.5 AirX"
	DisplayNameGLM45Flash   = "GLM 4.5 Flash"
	DisplayNameGLM5VTurbo   = "GLM 5V Turbo"
	DisplayNameGLM46V       = "GLM 4.6V"
	DisplayNameGLM46VFlash  = "GLM 4.6V Flash"
	DisplayNameGLM46VFlashX = "GLM 4.6V FlashX"
	DisplayNameGLM45V       = "GLM 4.5V"

	DisplayNameGLM47Flash30BA3B = "GLM-4.7 Flash 30B A3B"
	DisplayNameGLM47            = "GLM 4.7"
	DisplayNameGLM5             = "GLM 5"
	DisplayNameGLM51            = "GLM 5.1"
	DisplayNameGLM51FP8         = "GLM 5.1 FP8"
	DisplayNameGLM52            = "GLM 5.2"
	DisplayNameGLM52FP8         = "GLM 5.2 FP8"

	DisplayNameZAIGLM51    = "Z.AI GLM 5.1"
	DisplayNameZAIGLM52    = "Z.AI GLM 5.2"
	DisplayNameGLM52FP8ZAI = "GLM 5.2 FP8 (Z.AI)"

	DisplayNameGLM51FireworksAI    = "GLM 5.1 (Fireworks AI)"
	DisplayNameGLM51FP8FireworksAI = "GLM 5.1 FP8 (Fireworks AI)"
	DisplayNameGLM52FireworksAI    = "GLM 5.2 (Fireworks AI)"

	DisplayNameGLM47Cerebras = "GLM 4.7 (Cerebras)"
	DisplayNameGLM5Novita    = "GLM 5 (Novita)"
)

Variables

View Source
var (
	ErrProviderNotFound = errors.New("provider preset not found")
	ErrModelNotFound    = errors.New("model preset not found")
)

Functions

func ProviderNames

func ProviderNames() []spec.ProviderName

func ValidateCatalog added in v0.24.1

func ValidateCatalog(c Catalog) error

ValidateCatalog validates the complete preset catalog without requiring API keys, network access, or adapter initialization.

It intentionally validates catalog data rather than remote-provider behavior. Remote provider compatibility remains covered by integration tests and normal request normalization.

Types

type Catalog

type Catalog struct {
	Providers map[spec.ProviderName]ProviderPreset `json:"providers"`
}

func CloneCatalog

func CloneCatalog(in Catalog) Catalog

func DefaultCatalog

func DefaultCatalog() Catalog

type ModelPreset

type ModelPreset struct {
	ID          ModelPresetID  `json:"id"`
	Name        spec.ModelName `json:"name"`
	DisplayName string         `json:"displayName"`

	// ModelParam is the default runtime request model configuration.
	// Callers should treat values returned by this package as immutable.
	ModelParam spec.ModelParam `json:"modelParam"`

	// CapabilitiesOverride is a runtime capability patch applied over provider/base SDK capabilities.
	// It is not the derived/effective capability profile.
	CapabilitiesOverride *capabilityoverride.ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`
}

func CloneModelPreset

func CloneModelPreset(in ModelPreset) ModelPreset

func Model

func Model(provider spec.ProviderName, modelPresetID ModelPresetID) (ModelPreset, error)

type ModelPresetID

type ModelPresetID string
const (
	PresetClaudeFable51  ModelPresetID = "fable51"
	PresetClaudeFable5   ModelPresetID = "fable5"
	PresetClaudeOpus5    ModelPresetID = "opus5"
	PresetClaudeOpus48   ModelPresetID = "opus48"
	PresetClaudeOpus47   ModelPresetID = "opus47"
	PresetClaudeOpus46   ModelPresetID = "opus46"
	PresetClaudeOpus45   ModelPresetID = "opus45"
	PresetClaudeOpus41   ModelPresetID = "opus41"
	PresetClaudeSonnet5  ModelPresetID = "sonnet5"
	PresetClaudeSonnet46 ModelPresetID = "sonnet46"
	PresetClaudeSonnet45 ModelPresetID = "sonnet45"
	PresetClaudeSonnet4  ModelPresetID = "sonnet4"
	PresetClaudeHaiku45  ModelPresetID = "haiku45"
)
const (
	PresetDeepSeekR18B    ModelPresetID = "deepseekr18b"
	PresetDeepSeekV4Flash ModelPresetID = "deepseekv4flash"
	PresetDeepSeekV4Pro   ModelPresetID = "deepseekv4pro"

	PresetDeepSeekV4FlashFireworksAI ModelPresetID = "deepseekv4flashFireworksAI"
	PresetDeepSeekV4ProFireworksAI   ModelPresetID = "deepseekv4proFireworksAI"
)
const (
	PresetGemini37Flash     ModelPresetID = "gemini37Flash"
	PresetGemini36Flash     ModelPresetID = "gemini36Flash"
	PresetGemini35Flash     ModelPresetID = "gemini35Flash"
	PresetGemini35FlashLite ModelPresetID = "gemini35FlashLite"
	PresetGemini31Pro       ModelPresetID = "gemini31Pro"
	PresetGemini31FlashLite ModelPresetID = "gemini31FlashLite"
	PresetGemini3Flash      ModelPresetID = "gemini3Flash"
	PresetGemini25Flash     ModelPresetID = "gemini25Flash"
	PresetGemini25FlashLite ModelPresetID = "gemini25FlashLite"

	PresetGemma426BA4B ModelPresetID = "gemma426ba4b"
	PresetGemma426B    ModelPresetID = "gemma426b"
	PresetGemma4E4B    ModelPresetID = "gemma4e4b"
)
const (
	PresetMuseSpark11            ModelPresetID = "museSpark11"
	PresetMuseSpark12            ModelPresetID = "museSpark12"
	PresetMuseSpark12Contributor ModelPresetID = "museSpark12Contributor"

	PresetLlama4Behemoth ModelPresetID = "llama4Behemoth"
	PresetLlama4Maverick ModelPresetID = "llama4Maverick"
	PresetLlama4Scout    ModelPresetID = "llama4Scout"
)
const (
	PresetMiniMaxM2           ModelPresetID = "minimaxm2"
	PresetMiniMaxM21          ModelPresetID = "minimaxm21"
	PresetMiniMaxM21Highspeed ModelPresetID = "minimaxm21Highspeed"
	PresetMiniMaxM25          ModelPresetID = "minimaxm25"
	PresetMiniMaxM25Highspeed ModelPresetID = "minimaxm25Highspeed"
	PresetMiniMaxM25Free      ModelPresetID = "minimaxm25free"
	PresetMiniMaxM27          ModelPresetID = "minimaxm27"
	PresetMiniMaxM27Highspeed ModelPresetID = "minimaxm27Highspeed"
	PresetMiniMaxM3           ModelPresetID = "minimaxM3"

	PresetMiniMaxM27FireworksAI ModelPresetID = "minimaxm27FireworksAI"
	PresetMiniMaxM25Novita      ModelPresetID = "minimaxm25Novita"
)
const (
	PresetMistralMedium35 ModelPresetID = "mistralMedium35"
	PresetMistralSmall4   ModelPresetID = "mistralSmall4"
	PresetMistralLarge3   ModelPresetID = "mistralLarge3"
	PresetDevstral2       ModelPresetID = "devstral2"

	PresetMinistral314B ModelPresetID = "ministral314b"
	PresetDevstral224B  ModelPresetID = "devstral224b"
)
const (
	PresetMoonshotKimiK3               ModelPresetID = "kimiK3"
	PresetMoonshotKimiK27Code          ModelPresetID = "kimiK27Code"
	PresetMoonshotKimiK27CodeHighspeed ModelPresetID = "kimiK27CodeHighspeed"
	PresetMoonshotKimiK26              ModelPresetID = "kimiK26"

	PresetKimiK2Thinking     ModelPresetID = "kimik2thinking"
	PresetKimiK2Instruct     ModelPresetID = "kimik2instruct"
	PresetKimiK2Instruct0905 ModelPresetID = "kimik2instruct0905"

	PresetKimiK2InstructNovita        ModelPresetID = "kimik2instructNovita"
	PresetKimiK2Instruct0905Novita    ModelPresetID = "kimik2instruct0905Novita"
	PresetKimiK2ThinkingFeatherlessAI ModelPresetID = "kimik2thinkingFeatherlessAI"
)
const (
	PresetGPT56Sol      ModelPresetID = "gpt56sol"
	PresetGPT56Terra    ModelPresetID = "gpt56terra"
	PresetGPT56Luna     ModelPresetID = "gpt56luna"
	PresetGPT55         ModelPresetID = "gpt55"
	PresetGPT54         ModelPresetID = "gpt54"
	PresetGPT54Mini     ModelPresetID = "gpt54mini"
	PresetGPT54Nano     ModelPresetID = "gpt54nano"
	PresetGPT53Codex    ModelPresetID = "gpt53Codex"
	PresetGPT52         ModelPresetID = "gpt52"
	PresetGPT52Codex    ModelPresetID = "gpt52Codex"
	PresetGPT51         ModelPresetID = "gpt51"
	PresetGPT51Codex    ModelPresetID = "gpt51Codex"
	PresetGPT51CodexMax ModelPresetID = "gpt51CodexMax"
	PresetGPT5Mini      ModelPresetID = "gpt5Mini"

	PresetGPT41     ModelPresetID = "gpt41"
	PresetGPT41Mini ModelPresetID = "gpt41Mini"
	PresetGPT4o     ModelPresetID = "gpt4o"
	PresetGPT4oMini ModelPresetID = "gpt4oMini"

	PresetGPTOSS120B ModelPresetID = "gptoss120b"
	PresetGPTOSS20B  ModelPresetID = "gptoss20b"

	PresetGPTOSS120BFireworksAI ModelPresetID = "gptoss120bFireworksAI"
	PresetGPTOSS20BFireworksAI  ModelPresetID = "gptoss20bFireworksAI"
)
const (
	PresetQwen38Max           ModelPresetID = "qwen38Max"
	PresetQwen3824TA95B       ModelPresetID = "qwen3824tA95B"
	PresetQwen3827B           ModelPresetID = "qwen3827B"
	PresetQwen37Max20260608   ModelPresetID = "qwen37Max20260608"
	PresetQwen37Max20260520   ModelPresetID = "qwen37Max20260520"
	PresetQwen3Max            ModelPresetID = "qwen3Max"
	PresetQwen3Max20260123    ModelPresetID = "qwen3Max20260123"
	PresetQwen37Plus20260526  ModelPresetID = "qwen37Plus20260526"
	PresetQwen37Flash         ModelPresetID = "qwen37Flash"
	PresetQwen37Flash20260715 ModelPresetID = "qwen37Flash20260715"
	PresetQwen36Plus          ModelPresetID = "qwen36Plus"
	PresetQwen36Plus20260402  ModelPresetID = "qwen36Plus20260402"
	PresetQwen36Flash         ModelPresetID = "qwen36Flash"
	PresetQwen36Flash20260416 ModelPresetID = "qwen36Flash20260416"
	PresetQwen3635BA3BDirect  ModelPresetID = "qwen3635bA3B"
	PresetQwen3627BDirect     ModelPresetID = "qwen3627B"
	PresetQwen35Plus          ModelPresetID = "qwen35Plus"
	PresetQwen35Plus20260420  ModelPresetID = "qwen35Plus20260420"
	PresetQwen35Plus20260215  ModelPresetID = "qwen35Plus20260215"
	PresetQwen35Flash         ModelPresetID = "qwen35Flash"
	PresetQwen35Flash20260223 ModelPresetID = "qwen35Flash20260223"
	PresetQwen35397BA17B      ModelPresetID = "qwen35397bA17B"
	PresetQwen35122BA10B      ModelPresetID = "qwen35122bA10B"
	PresetQwen3527B           ModelPresetID = "qwen3527B"
	PresetQwen3535BA3B        ModelPresetID = "qwen3535bA3B"
	PresetQwenPlus            ModelPresetID = "qwenPlus"
	PresetQwenFlash           ModelPresetID = "qwenFlash"
	PresetQwen3CoderPlus      ModelPresetID = "qwen3CoderPlus"
	PresetQwen3CoderFlash     ModelPresetID = "qwen3CoderFlash"
	PresetQwenPlusCharacter   ModelPresetID = "qwenPlusCharacter"
	PresetQwenFlashCharacter  ModelPresetID = "qwenFlashCharacter"

	PresetQwen3635BA3B     ModelPresetID = "qwen3635ba3b"
	PresetQwen3635B        ModelPresetID = "qwen3635b"
	PresetQwen3627B        ModelPresetID = "qwen3627b"
	PresetQwen37Max        ModelPresetID = "qwen37Max"
	PresetQwen37Plus       ModelPresetID = "qwen37Plus"
	PresetQwen3VL30BA3B    ModelPresetID = "qwen3vl30ba3b"
	PresetQwen3VL30B       ModelPresetID = "qwen3vl30b"
	PresetQwen3Coder30B    ModelPresetID = "qwen3coder30b"
	PresetQwen3Coder30BA3B ModelPresetID = "qwen3coder30ba3b"
	PresetQwen3CoderNext   ModelPresetID = "qwen3codernext"

	PresetQwen3Coder30BA3BFireworksAI ModelPresetID = "qwen3coder30ba3bFireworksAI"
	PresetQwen3CoderNextNovita        ModelPresetID = "qwen3codernextNovita"
)
const (
	PresetGrok46             ModelPresetID = "grok46"
	PresetGrok45             ModelPresetID = "grok45"
	PresetGrok43             ModelPresetID = "grok43"
	PresetBuild01            ModelPresetID = "grokBuild01"
	PresetGrok42Reasoning    ModelPresetID = "grok42Reasoning"
	PresetGrok42NonReasoning ModelPresetID = "grok42NonReasoning"
)
const (
	PresetMiMoV2Flash      ModelPresetID = "mimov2flash"
	PresetMiMoV25          ModelPresetID = "mimov25"
	PresetMiMoV25Pro       ModelPresetID = "mimov25pro"
	PresetXiaomiMiMoV25    ModelPresetID = "xiaomiMiMoV25"
	PresetXiaomiMiMoV25Pro ModelPresetID = "xiaomiMiMoV25Pro"

	PresetMiMoV25ProDeepInfra      ModelPresetID = "mimov25proDeepInfra"
	PresetMiMoV2FlashFeatherlessAI ModelPresetID = "mimov2flashFeatherlessAI"
)
const (
	PresetGLM53        ModelPresetID = "glm53"
	PresetGLM5Turbo    ModelPresetID = "glm5Turbo"
	PresetGLM47FlashX  ModelPresetID = "glm47FlashX"
	PresetGLM47Flash   ModelPresetID = "glm47Flash"
	PresetGLM46        ModelPresetID = "glm46"
	PresetGLM45        ModelPresetID = "glm45"
	PresetGLM45X       ModelPresetID = "glm45X"
	PresetGLM45Air     ModelPresetID = "glm45Air"
	PresetGLM45AirX    ModelPresetID = "glm45AirX"
	PresetGLM45Flash   ModelPresetID = "glm45Flash"
	PresetGLM5VTurbo   ModelPresetID = "glm5VTurbo"
	PresetGLM46V       ModelPresetID = "glm46V"
	PresetGLM46VFlash  ModelPresetID = "glm46VFlash"
	PresetGLM46VFlashX ModelPresetID = "glm46VFlashX"
	PresetGLM45V       ModelPresetID = "glm45V"

	PresetGLM47Flash30BA3B ModelPresetID = "glm47flash30ba3b"
	PresetGLM47            ModelPresetID = "glm47"
	PresetGLM5             ModelPresetID = "glm5"
	PresetGLM51            ModelPresetID = "glm51"
	PresetGLM51FP8         ModelPresetID = "glm51fp8"
	PresetGLM52            ModelPresetID = "glm52"
	PresetGLM52FP8         ModelPresetID = "glm52fp8"

	PresetZAIGLM51    ModelPresetID = "zaiglm51"
	PresetZAIGLM52    ModelPresetID = "zaiglm52"
	PresetGLM52FP8ZAI ModelPresetID = "glm52fp8ZAI"

	PresetGLM52FireworksAI    ModelPresetID = "glm52FireworksAI"
	PresetGLM51FireworksAI    ModelPresetID = "glm51FireworksAI"
	PresetGLM51FP8FireworksAI ModelPresetID = "glm51fp8FireworksAI"

	PresetGLM5Novita    ModelPresetID = "glm5Novita"
	PresetGLM47Cerebras ModelPresetID = "glm47Cerebras"
)

func ModelPresetIDs

func ModelPresetIDs(provider spec.ProviderName) ([]ModelPresetID, error)

type ProviderPreset

type ProviderPreset struct {
	Name        spec.ProviderName    `json:"name"`
	DisplayName string               `json:"displayName"`
	SDKType     spec.ProviderSDKType `json:"sdkType"`

	Origin                   string            `json:"origin"`
	ChatCompletionPathPrefix string            `json:"chatCompletionPathPrefix"`
	APIKeyHeaderKey          string            `json:"apiKeyHeaderKey"`
	DefaultHeaders           map[string]string `json:"defaultHeaders,omitempty"`

	// CapabilitiesOverride is a provider-wide runtime capability patch.
	// Model preset overrides are applied after this.
	CapabilitiesOverride *capabilityoverride.ModelCapabilitiesOverride `json:"capabilitiesOverride,omitempty"`

	ModelPresets map[ModelPresetID]ModelPreset `json:"modelPresets"`
}

func CloneProviderPreset

func CloneProviderPreset(in ProviderPreset) ProviderPreset

func Provider

func Provider(name spec.ProviderName) (ProviderPreset, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL