unsloth/studio/backend/assets
Daniel Han 70021b1f6a Studio: family-default chat_template_kwargs for gpt-oss + Nemotron
The per-family inference defaults registry (inference_defaults.json)
exposes scalar sampling fields only (temperature, top_p, top_k, min_p,
presence_penalty). Modern reasoning models also want template-level
kwargs: gpt-oss takes reasoning_effort (low|medium|high); Nemotron-3
takes enable_thinking. Today those reach llama-server only when an
OpenAI SDK client sets extra_body.chat_template_kwargs explicitly, so
external clients hitting /v1/chat/completions never benefit from the
recommended defaults.

This patch:

* Adds an optional ``chat_template_kwargs`` block per family in
  inference_defaults.json. Bootstrap rows:
    gpt-oss   -> reasoning_effort: medium
    nemotron  -> enable_thinking: true
* Extends load_inference_config to surface chat_template_kwargs in
  the returned dict (None when unset).
* Extends _build_openai_passthrough_body to merge family defaults
  (lookup via load_inference_config(model_identifier)) with per-request
  overrides. Priority order, base to top:
    family_defaults -> payload.enable_thinking -> payload.reasoning_effort
                    -> extra_body.chat_template_kwargs
* Bumps two family temperatures to match upstream HF model cards:
    devstral  0.7  -> 0.15  (Devstral-Small-2-Instruct card)
    ministral 0.15 -> 0.05  (Ministral-3 card: "below 0.1 for production")
2026-05-22 14:35:37 +00:00
..
configs Studio: family-default chat_template_kwargs for gpt-oss + Nemotron 2026-05-22 14:35:37 +00:00
datasets root studio folder 2026-02-02 09:13:49 +00:00
__init__.py Final cleanup 2026-03-12 18:28:04 +00:00