Voltar aos guias
Solução de problemas·23 de setembro de 2026·6 min de leitura

“Unsupported value: 'temperature' does not support … with this model” — modelos de raciocínio usam effort e verbosity

Remova temperature e top_p — e também logprobs e top_logprobs — das solicitações para modelos de raciocínio. As orientações de modelos da OpenAI permitem amostragem no GPT-5.1, 5.2 e 5.4, e no GPT-6 Sol e Luna, apenas com reasoning effort none; gpt-5, gpt-5-mini e gpt-5-nano os rejeitam em qualquer configuração, e o GPT-6 Astra não tem uma configuração none para usar. Em vez disso, a saída é orientada por reasoning effort, verbosity e pelo prompt.

Última revisão em .

Remova temperature e top_p — e também logprobs e top_logprobs — das solicitações para modelos de raciocínio. As orientações de modelos da OpenAI permitem amostragem no GPT-5.1, 5.2 e 5.4, e no GPT-6 Sol e Luna, apenas com reasoning effort none; gpt-5, gpt-5-mini e gpt-5-nano os rejeitam em qualquer configuração, e o GPT-6 Astra não tem uma configuração none para usar. Em vez disso, a saída é orientada por reasoning effort, verbosity e pelo prompt.

O erro

response (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")

Causas e soluções em resumo

CausaSolução
Um modelo de raciocínio executado com reasoning effort acima de noneRemova temperature, top_p, logprobs e top_logprobs da solicitação.
Um modelo sem configuração none — gpt-5, gpt-5-mini, gpt-5-nano, GPT-6 AstraNunca envie parâmetros de amostragem; oriente-o com effort e verbosity.
Um padrão na sua stack que você nunca definiu (0.7 no LangChain, 0 no Cline)Substitua ou remova o padrão por modelo antes que a solicitação saia.
Enviar o valor padrão 1 por segurançaOmita o campo; alguns modelos rejeitam o parâmetro com qualquer valor.

Remova os parâmetros de amostragem

É uma exclusão, não um novo valor. Deixe temperature e top_p fora das chamadas para modelos de raciocínio, juntamente com logprobs e top_logprobs, que são abrangidos pela mesma regra. Se quiser alterar quanto o modelo trabalha, reasoning effort é o controle que resta.

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)

Verifique quais modelos aceitam amostragem

A OpenAI declara a regra por família de modelos, e ela depende de reasoning effort. Estas são as orientações de modelos conforme lidas em 23 de setembro de 2026. As páginas do GPT-5.5 e do GPT-5.6 não repetem a regra, portanto trate o silêncio como motivo para testar, não como permissão; as linhas da série o vêm de relatos de erro, não da documentação.

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)

Oriente com os controles que o substituíram

As orientações da OpenAI nomeiam três substitutos quando o raciocínio está ativado: profundidade de raciocínio (reasoning.effort, cujos valores dependem do modelo e vão de none e minimal até xhigh e max), verbosidade da saída (text.verbosity: low, medium ou high, com medium como padrão) e comprimento da saída (max_output_tokens, que também conta os tokens de raciocínio). O Chat Completions chama os dois primeiros de reasoning_effort e verbosity. As orientações não oferecem um substituto no nível de amostragem para temperature 0; se você o usava para manter a saída repetível, fixe a estrutura, usando Structured Outputs para um esquema e o prompt para o restante.

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)

Coloque a regra em um único helper

Criar uma ramificação em cada ponto de chamada é como a próxima família de modelos se transforma em outra rodada de edições. Filtre os parâmetros de amostragem uma vez, com base no modelo e no effort que você está prestes a enviar; em um modelo compatível com effort none, eles passam quando você solicita none.

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),
)

Se você estiver chamando pela Kunavo

O Kunavo não remove nem reescreve temperature ou top_p para modelos GPT, em nenhum dos dois endpoints. Em /v1/chat/completions, ele reconstrói a solicitação para o upstream Responses: temperature e top_p são copiados sem alterações, reasoning_effort torna-se reasoning.effort e qualquer uma das grafias de limite de tokens torna-se max_output_tokens, enquanto os campos fora desse mapeamento — incluindo verbosity, logprobs, top_logprobs, seed e stop — não são encaminhados; portanto, defina verbosity por meio de /v1/responses. Lá, seus campos de amostragem e texto passam exatamente como enviados, incluindo text.verbosity. Se o modelo rejeitar um valor, o 400 transporta a mensagem literalmente dentro do envelope do Kunavo (type upstream_error, code upstream_400); portanto, faça a correspondência pelo status ou pela mensagem, não pelo código "unsupported_value"; a chamada com falha não é cobrada. Uma chamada bem-sucedida com temperature definido não prova que o valor foi aplicado. O Kunavo remove temperature, top_p e top_k por conta própria apenas nos seis modelos Claude dos quais a Anthropic os removeu — claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7 e claude-sonnet-5 — e faz isso em todos os endpoints. A outra metade da mesma migração, max_tokens versus max_completion_tokens, é abordada em no guia de max_tokens.

Perguntas frequentes

Posso definir temperature no GPT-5?

Não em gpt-5, gpt-5-mini ou gpt-5-nano: a OpenAI informa que solicitações que incluem esse parâmetro geram um erro. GPT-5.1, 5.2 e 5.4 aceitam temperature, top_p e logprobs somente com o esforço de raciocínio definido como none, e as orientações da OpenAI para o GPT-6 dizem para removê-los sempre que o esforço de raciocínio não for none.

O que substitui temperature nos modelos de raciocínio?

Reasoning effort para definir quanto o modelo pensa, text.verbosity (verbosity no Chat Completions) para definir quanto ele diz, e max_output_tokens como limite rígido. Por meio do Kunavo, defina verbosity em /v1/responses: o endpoint de chat não o encaminha aos modelos GPT. Para obter uma estrutura repetível, use Structured Outputs e regras explícitas de formato no prompt.

Devo simplesmente enviar temperature=1?

Omita-o. A mensagem Unsupported value informa que o valor padrão 1 é aceito no modelo que a produziu, mas outros modelos rejeitam o parâmetro em qualquer valor ("Unsupported parameter: 'temperature' is not supported with this model"), e as orientações da OpenAI são remover os campos.

Por que recebo esse erro quando meu código nunca define temperature?

Algo na sua stack o definiu. As chamadas de um usuário do jupyter-ai para o o1-preview carregavam 0.7, o padrão da classe ChatOpenAI do LangChain usada pelo jupyter-ai, e um colaborador do Cline atribuiu o 0 atingido por um usuário do GPT-5 a um padrão codificado diretamente. Verifique o que seu SDK ou framework realmente coloca na requisição, depois substitua ou remova-o conforme o modelo.

O Kunavo remove temperature para mim?

Não para modelos GPT: o Kunavo encaminha temperature e top_p exatamente como você os envia, tanto em /v1/chat/completions quanto em /v1/responses. Ele remove temperature, top_p e top_k nos seis modelos Claude dos quais a Anthropic os removeu.

Guias relacionados

Mais detalhes sobre o significado dos erros estão em referência de erros; obter uma chave leva um minuto por meio de cadastro e da guia de autenticação.