modelsettings

package
v0.17.19 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2026 License: MIT Imports: 5 Imported by: 0

README

Model Settings Registry

This package applies model tuning settings independent of serving provider.

Goal

Use a bounded model list (OpenRouter catalog), then resolve parameter defaults by precedence:

  1. explicit request override
  2. creator recommendation (exact model)
  3. creator recommendation (model family)
  4. third-party fallback (OpenRouter model defaults)
  5. provider config fallback

If a parameter is undefined by creator docs, it remains unset (null / omitted).

Files

  • openrouter_model_settings.json: bounded model catalog snapshot from OpenRouter.
  • creator_recommendations.json: curated creator-sourced recommendations and family rules.
  • settings.go: resolver, normalization, and precedence merge.

Priority open-model families

Current creator-priority profiles focus on:

  • DeepSeek (deepseek-*, plus deepseek-r1* overrides)
  • MiniMax (minimax-m2*)
  • Qwen (qwen3*, qwen3.5*, qwen3.6*, qwen3.8*, qwen2.5*, qwen2.5-coder*)
  • ZAI GLM (exact creator-backed rules currently for glm-4.6 and glm-4-9b-chat)

Gemma currently has no accessible creator-published sampling defaults in this environment; values remain unset unless explicit overrides are provided.

Mode-aware parameters

Some models (Qwen3.6, Qwen3.8) publish different creator-recommended sampling for thinking vs. non-thinking (instruct) mode. A profile can declare an optional instruct_parameters block. ResolveModelSettingsForMode(model, instruct) returns instruct_parameters when instruct is true and the profile defines the block, otherwise the default parameters. The request builder passes disableThinking as instruct, so non-thinking requests get the instruct recommendation. ResolveModelSettings(model) is unchanged and resolves the default (thinking) mode.

Normalization

Model names are normalized to base model IDs:

  • strips provider prefix (openai/gpt-oss-20b -> gpt-oss-20b)
  • strips OpenRouter variants (:free, :nitro, etc.)
  • strips common quant suffixes (_Q4, -int8, -gguf, etc.)

This makes variants like gpt-oss-20b_Q4 resolve to the same recommendation profile as openai/gpt-oss-20b.

Refresh OpenRouter catalog

curl -s https://openrouter.ai/api/v1/models > /tmp/openrouter_models.json
jq -c '{
  generated_at: (now|todate),
  source: "https://openrouter.ai/api/v1/models",
  model_count: (.data|length),
  models: [.data[] | {
    id: .id,
    slug: (.id|split("/")[1]),
    supported_parameters: .supported_parameters,
    default_parameters: {
      temperature: .default_parameters.temperature,
      top_p: .default_parameters.top_p,
      frequency_penalty: .default_parameters.frequency_penalty
    }
  }]
}' /tmp/openrouter_models.json > pkg/model_settings/openrouter_model_settings.json

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ModelSettings

type ModelSettings struct {
	Known       bool
	Parameters  map[string]interface{}
	Supported   map[string]bool
	Unsupported map[string]bool
	Source      string
	SourceType  string
}

ModelSettings resolves model-specific parameters independent of serving provider.

func ResolveModelSettings

func ResolveModelSettings(model string) ModelSettings

ResolveModelSettings applies precedence: model exact rule > model family rule > openrouter fallback defaults. It resolves the model's default (thinking) mode parameters.

func ResolveModelSettingsForMode added in v0.17.17

func ResolveModelSettingsForMode(model string, instruct bool) ModelSettings

ResolveModelSettingsForMode applies precedence and selects the creator recommendation for the given generation mode. When instruct is true, a profile's instruct_parameters override its parameters (used for models such as Qwen3.8 that recommend different sampling for non-thinking mode).

Jump to

Keyboard shortcuts

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