Zurück zu den Leitfäden
Fehlerbehebung·23. September 2026·6 Min. Lesezeit

„Unsupported value: 'temperature' does not support … with this model“ — Reasoning-Modelle verwenden stattdessen effort und verbosity

Entfernen Sie temperature und top_p — ebenso logprobs und top_logprobs — aus Anfragen an Reasoning-Modelle. OpenAIs Modellleitfaden erlaubt Sampling bei GPT-5.1, 5.2 und 5.4 sowie bei GPT-6 Sol und Luna nur mit reasoning effort none; gpt-5, gpt-5-mini und gpt-5-nano weisen sie bei jeder Einstellung zurück, und GPT-6 Astra verfügt über keine none-Einstellung. Die Ausgabe wird stattdessen mit reasoning effort, verbosity und dem Prompt gesteuert.

Zuletzt überprüft am .

Entfernen Sie temperature und top_p — ebenso logprobs und top_logprobs — aus Anfragen an Reasoning-Modelle. OpenAIs Modellleitfaden erlaubt Sampling bei GPT-5.1, 5.2 und 5.4 sowie bei GPT-6 Sol und Luna nur mit reasoning effort none; gpt-5, gpt-5-mini und gpt-5-nano weisen sie bei jeder Einstellung zurück, und GPT-6 Astra verfügt über keine none-Einstellung. Die Ausgabe wird stattdessen mit reasoning effort, verbosity und dem Prompt gesteuert.

Der Fehler

Antwort (HTTP 400)
{
  "error": {
    "message": "Unsupported value: 'temperature' does not support 0.2 with this model. Only the default (1) value is supported.",
    "type": "invalid_request_error",
    "param": "temperature",
    "code": "unsupported_value"
  }
}

# 0.2 is whatever your code sent; reports show 0 and 0.7 too.
# Some models reject the field at any value instead:
#   "Unsupported parameter: 'temperature' is not supported with this model."
#   "Unsupported parameter: 'top_p' is not supported with this model."
#   (code "unsupported_parameter")

Ursachen und Lösungen im Überblick

UrsacheLösung
Ein Reasoning-Modell mit reasoning effort über noneEntfernen Sie temperature, top_p, logprobs und top_logprobs aus der Anfrage.
Ein Modell ohne none-Einstellung — gpt-5, gpt-5-mini, gpt-5-nano, GPT-6 AstraSenden Sie niemals Sampling-Parameter; steuern Sie es mit effort und verbosity.
Ein Standardwert in Ihrem Stack, den Sie nie gesetzt haben (0.7 aus LangChain, 0 aus Cline)Überschreiben oder entfernen Sie den Standardwert pro Modell, bevor die Anfrage den Prozess verlässt.
Den Standardwert 1 senden, um sicherzugehenLassen Sie das Feld stattdessen weg — einige Modelle weisen den Parameter bei jedem Wert zurück.

Sampling-Parameter entfernen

Es handelt sich um eine Löschung, nicht um einen neuen Wert. Lassen Sie temperature und top_p bei Aufrufen von Reasoning-Modellen vollständig weg, zusammen mit logprobs und top_logprobs, für die dieselbe Regel gilt. Wenn Sie ändern möchten, wie viel das Modell arbeitet, ist reasoning effort der verbleibende Regler.

fix.py
from openai import OpenAI

client = OpenAI(base_url="https://api.kunavo.com/v1", api_key="sk-kn-...")
msgs = [{"role": "user", "content": "Summarize this diff as three changelog bullets."}]

# Before — sampling parameters on a reasoning model
resp = client.chat.completions.create(
    model="gpt-6-astra", temperature=0.2, top_p=0.9, messages=msgs)

# After — removed; reasoning effort is the control that remains
resp = client.chat.completions.create(
    model="gpt-6-astra", reasoning_effort="low", messages=msgs)

Prüfen, welche Modelle Sampling überhaupt akzeptieren

OpenAI formuliert die Regel pro Modellfamilie, und sie hängt von reasoning effort ab. Dies ist der Modellleitfaden, wie er am 23. September 2026 gelesen wurde. Die Seiten zu GPT-5.5 und GPT-5.6 wiederholen die Regel nicht; betrachten Sie das Schweigen daher als Grund zum Testen, nicht als Erlaubnis. Die Zeilen zu den o-Modellen stammen aus Fehlerberichten und nicht aus der Dokumentation.

sampling parameters by model
gpt-5, gpt-5-mini, gpt-5-nano   error, whatever the reasoning setting
GPT-5.1, GPT-5.2, GPT-5.4       accepted only with reasoning effort "none"
GPT-6 Sol, GPT-6 Luna           remove them unless reasoning effort is "none"
GPT-6 Astra                     remove them: Astra has no "none" effort
GPT-5.5, GPT-5.6                not stated on their guidance pages
o1-preview, o3-mini             rejected (reported errors, not docs)

Mit den Reglern steuern, die es ersetzt haben

OpenAIs Leitfaden nennt drei Ersatzmöglichkeiten, wenn reasoning aktiviert ist: reasoning depth (reasoning.effort, dessen Werte modellabhängig sind und von none und minimal bis xhigh und max reichen), output verbosity (text.verbosity: low, medium oder high, standardmäßig medium) und output length (max_output_tokens, das sowohl Reasoning-Tokens als auch sichtbare Tokens zählt). Chat Completions schreibt die ersten beiden als reasoning_effort und verbosity. Der Leitfaden bietet keinen Sampling-Ersatz auf Ebene von temperature 0; wenn Sie dies für wiederholbare Ausgaben verwendet haben, legen Sie stattdessen die Struktur fest, mit Structured Outputs für ein Schema und dem Prompt für den Rest.

steer.py
# client as in fix.py above
resp = client.responses.create(
    model="gpt-5-6-sol",
    input="Summarize this diff as three changelog bullets.",
    reasoning={"effort": "low"},   # how much it thinks
    text={"verbosity": "low"},     # how much it says
    max_output_tokens=2000,        # hard cap, reasoning tokens included
)
print(resp.output_text)

Die Regel in eine Hilfsfunktion auslagern

Verzweigungen an jeder Aufrufstelle führen dazu, dass die nächste Modellfamilie eine weitere Bearbeitungsrunde erfordert. Filtern Sie die Sampling-Parameter einmal, abhängig vom Modell und dem effort, den Sie senden möchten; bei einem Modell, das effort none unterstützt, werden sie weitergegeben, wenn Sie none anfordern.

sampling.py
SAMPLING = ("temperature", "top_p", "logprobs", "top_logprobs")
REASONING = ("gpt-5", "gpt-6", "o1", "o3", "o4")  # extend as you adopt models

def sampling_params(model: str, effort: str | None, **params) -> dict:
    """Keep sampling parameters only where they are accepted: effort "none"."""
    if model.startswith(REASONING) and effort != "none":
        return {k: v for k, v in params.items() if k not in SAMPLING}
    return params

effort = "low"  # client and msgs as in fix.py above
resp = client.chat.completions.create(
    model="gpt-5-6-terra",
    messages=msgs,
    reasoning_effort=effort,
    **sampling_params("gpt-5-6-terra", effort, temperature=0.2, top_p=0.9),
)

Wenn Sie Kunavo verwenden

Kunavo entfernt oder verändert temperature oder top_p bei GPT-Modellen an keinem der beiden Endpunkte. Unter /v1/chat/completions erstellt es die Anfrage für den Responses-Upstream neu: temperature und top_p werden unverändert übernommen, reasoning_effort wird zu reasoning.effort und beide Schreibweisen für die Tokenbegrenzung werden zu max_output_tokens, während Felder außerhalb dieser Zuordnung — darunter verbosity, logprobs, top_logprobs, seed und stop — überhaupt nicht weitergegeben werden; setzen Sie verbosity daher über /v1/responses. Dort werden Ihre Sampling- und Textfelder genau wie gesendet weitergegeben, einschließlich text.verbosity. Wenn das Modell einen Wert zurückweist, enthält die 400-Meldung dessen Text wortgetreu innerhalb von Kunavos Envelope (type upstream_error, code upstream_400). Vergleichen Sie daher den Status oder die Meldung und nicht den Code "unsupported_value"; der fehlgeschlagene Aufruf wird nicht abgerechnet. Ein erfolgreicher Aufruf mit gesetztem temperature beweist nicht, dass der Wert angewendet wurde. Kunavo entfernt temperature, top_p und top_k selbst nur bei den sechs Claude-Modellen, von denen Anthropic diese Parameter entfernt hat — claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7 und claude-sonnet-5 — und zwar an jedem Endpunkt. Die andere Hälfte derselben Migration, max_tokens gegenüber max_completion_tokens, wird behandelt in dem max_tokens-Leitfaden.

Häufig gestellte Fragen

Kann ich die Temperatur bei GPT-5 festlegen?

Nicht bei gpt-5, gpt-5-mini oder gpt-5-nano: OpenAI zufolge führen Anfragen, die den Parameter enthalten, zu einem Fehler. GPT-5.1, 5.2 und 5.4 akzeptieren temperature, top_p und logprobs nur, wenn der Reasoning-Aufwand auf none gesetzt ist. OpenAIs Anleitung für GPT-6 besagt außerdem, dass diese Parameter immer entfernt werden sollen, wenn der Reasoning-Aufwand nicht none ist.

Was ersetzt temperature bei Reasoning-Modellen?

reasoning effort für die Denkintensität des Modells, text.verbosity (verbosity in Chat Completions) für die Ausführlichkeit der Antwort und max_output_tokens als harte Obergrenze. Setzen Sie verbosity über Kunavo auf /v1/responses: Der Chat-Endpunkt leitet den Parameter nicht an GPT-Modelle weiter. Für eine wiederholbare Struktur verwenden Sie Structured Outputs und explizite Formatregeln im Prompt.

Soll ich einfach temperature=1 senden?

Lassen Sie den Parameter weg. Die Meldung „Unsupported value“ besagt, dass der Standardwert 1 bei dem Modell akzeptiert wird, das den Fehler erzeugt hat, andere Modelle den Parameter jedoch bei jedem Wert ablehnen („Unsupported parameter: 'temperature' is not supported with this model“). OpenAIs Empfehlung lautet, die Felder zu entfernen.

Warum erhalte ich diesen Fehler, wenn mein Code temperature nie festlegt?

Etwas in Ihrer Stack-Konfiguration hat den Parameter gesetzt. Die Aufrufe eines jupyter-ai-Nutzers mit o1-preview enthielten 0.7, den Standardwert der darunterliegenden LangChain-Klasse ChatOpenAI in jupyter-ai. Ein Cline-Mitwirkender führte den Wert 0, auf den ein GPT-5-Nutzer stieß, ebenfalls auf einen fest codierten Standardwert zurück. Prüfen Sie, was Ihr SDK oder Framework tatsächlich überträgt, und überschreiben oder entfernen Sie den Parameter je nach Modell.

Entfernt Kunavo temperature für mich?

Nicht für GPT-Modelle: Kunavo leitet temperature und top_p auf /v1/chat/completions und /v1/responses genau so weiter, wie Sie sie senden. Bei den sechs Claude-Modellen, aus denen Anthropic diese Parameter entfernt hat, entfernt Kunavo temperature, top_p und top_k.

Verwandte Anleitungen

Weitere Informationen zur Fehlersemantik finden Sie unter Fehlerreferenz; einen Schlüssel erhalten Sie in einer Minute über Registrierung und die Authentifizierungsanleitung.