推論モデルへのリクエストから、temperature と top_p、さらに logprobs と top_logprobs も削除してください。OpenAI のモデルガイダンスでは、GPT-5.1、5.2、5.4、および GPT-6 Sol と Luna で、reasoning effort が none の場合に限りサンプリングが許可されています。gpt-5、gpt-5-mini、gpt-5-nano はどの設定でも拒否し、GPT-6 Astra には使用できる none 設定がありません。代わりに reasoning effort、verbosity、プロンプトで出力を調整します。
エラー
{
"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")原因と対処法の概要
| 原因 | 対処法 |
|---|---|
| none を超える reasoning effort で実行される推論モデル | リクエストから temperature、top_p、logprobs、top_logprobs を削除してください。 |
| none 設定がないモデル — gpt-5、gpt-5-mini、gpt-5-nano、GPT-6 Astra | サンプリングパラメーターは決して送信せず、effort と verbosity で調整してください。 |
| 設定した覚えのないスタック内のデフォルト値 (LangChain では 0.7、Cline では 0) | リクエスト送信前に、モデルごとにデフォルト値を上書きまたは削除してください。 |
| 安全策としてデフォルト値 1 を送信する | 代わりにフィールドを省略してください。モデルによっては、どの値でもパラメーターを拒否します。 |
サンプリングパラメーターを削除する
これは新しい値を設定するのではなく、削除する操作です。推論モデルの呼び出しでは temperature と top_p を完全に省略し、同じ規則が適用される logprobs と top_logprobs も省略してください。モデルの処理量を変えたい場合、残された調整項目は reasoning effort です。
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)サンプリングを受け付けるモデルを確認する
OpenAI はモデルファミリーごとに規則を示しており、reasoning effort によって変わります。これは2026年9月23日時点で読んだモデルガイダンスです。GPT-5.5 と GPT-5.6 のページではこの規則が再記載されていないため、その沈黙を許可ではなくテストすべき理由として扱ってください。o-series の行はドキュメントではなくエラーレポートに基づいています。
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)置き換えられた制御項目で調整する
OpenAI のガイダンスは、推論が有効な場合の代替として3つを挙げています。推論の深さ (reasoning.effort。値はモデル依存で、none と minimal から xhigh と max まで)、出力の詳細度 (text.verbosity: low、medium、high。デフォルトは medium)、出力長 (max_output_tokens。推論トークンと表示トークンの両方を数える) です。Chat Completions では最初の2つを reasoning_effort と verbosity と表記します。temperature 0 に相当するサンプリングレベルの代替はガイダンスにありません。出力を再現可能にするために使っていた場合は、Structured Outputs でスキーマを、残りをプロンプトで指定して形式を固定してください。
# 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)規則を1つのヘルパーにまとめる
すべての呼び出し箇所で分岐すると、次のモデルファミリーが登場するたびに再編集することになります。送信しようとしているモデルと effort に基づいて、サンプリングパラメーターを一度だけフィルタリングしてください。effort none をサポートするモデルで none を指定した場合は、パラメーターがそのまま通過します。
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),
)Kunavo経由で呼び出している場合
Kunavo は、どちらのエンドポイントでも GPT モデルの temperature や top_p を削除または書き換えません。/v1/chat/completions では Responses の上流向けにリクエストを再構築します。temperature と top_p は変更せずコピーされ、reasoning_effort は reasoning.effort に、どちらのトークン上限表記も max_output_tokens になります。一方、この対応表にないフィールド(verbosity、logprobs、top_logprobs、seed、stop など)は一切転送されないため、verbosity は /v1/responses で設定してください。そこでは text.verbosity を含め、サンプリングと text のフィールドが送信どおりに完全に通過します。モデルが値を拒否した場合、400 レスポンスには Kunavo のエンベロープ内にメッセージが一字一句含まれます (type upstream_error、code upstream_400)。そのため code "unsupported_value" ではなく、ステータスまたはメッセージで照合してください。失敗した呼び出しは課金されません。temperature を設定した呼び出しが成功しても、その値が適用されたことの証明にはなりません。Kunavo が temperature、top_p、top_k を自ら削除するのは、Anthropic が削除した6つの Claude モデル(claude-fable-5-1、claude-fable-5、claude-opus-5、claude-opus-4-8、claude-opus-4-7、claude-sonnet-5)の場合だけで、すべてのエンドポイントで行われます。 同じ移行のもう一方、max_tokens と max_completion_tokens の違いについては、 max_tokens ガイド.
よくある質問
GPT-5 で temperature を設定できますか?
gpt-5、gpt-5-mini、gpt-5-nano では設定できません。OpenAI によると、これを含むリクエストはエラーになります。GPT-5.1、5.2、5.4 は reasoning effort が none の場合に限り temperature、top_p、logprobs を受け付けます。GPT-6 のガイダンスでは、reasoning effort が none でない場合は常にこれらを削除するよう示されています。
推論モデルでは temperature の代わりに何を使いますか?
モデルがどれだけ考えるかには reasoning effort、どれだけ話すかには text.verbosity(Chat Completions では verbosity)、ハード上限には max_output_tokens を使います。Kunavo 経由では /v1/responses で verbosity を設定してください。chat エンドポイントは GPT モデルへ転送しません。再現可能な構造には Structured Outputs と、プロンプト内の明示的な形式規則を使用してください。
temperature=1 を送ればよいですか?
省略してください。Unsupported value メッセージは、それを生成したモデルではデフォルトの 1 が受け入れられることを示しますが、他のモデルはどの値でもパラメーターを拒否します("Unsupported parameter: 'temperature' is not supported with this model")。OpenAI のガイダンスもフィールドを削除するよう求めています。
コードで temperature を設定していないのに、なぜこのエラーが出ますか?
スタック内の何かが設定しています。jupyter-ai ユーザーの o1-preview 呼び出しには、jupyter-ai の下で使われる LangChain の ChatOpenAI クラスのデフォルト値である 0.7 が含まれていました。また、Cline の貢献者は、GPT-5 ユーザーが遭遇した 0 はハードコードされたデフォルト値だと説明しています。SDK やフレームワークが実際にネットワーク経由で送信している内容を確認し、モデルごとに上書きまたは削除してください。
Kunavo が temperature を削除してくれますか?
GPT モデルでは削除しません。Kunavo は /v1/chat/completions と /v1/responses の両方で、temperature と top_p を送信どおりに転送します。Anthropic が削除した6つの Claude モデルでは、temperature、top_p、top_k を削除します。