Hapus temperature dan top_p — serta logprobs dan top_logprobs — dari permintaan ke model penalaran. Panduan model OpenAI mengizinkan sampling pada GPT-5.1, 5.2, 5.4, serta GPT-6 Sol dan Luna, hanya dengan reasoning effort none; gpt-5, gpt-5-mini, dan gpt-5-nano menolaknya pada pengaturan apa pun, dan GPT-6 Astra tidak memiliki pengaturan none untuk digunakan. Output diarahkan dengan reasoning effort, verbosity, dan prompt.
Error
{
"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")Ringkasan penyebab dan perbaikan
| Penyebab | Perbaikan |
|---|---|
| Model penalaran yang berjalan dengan reasoning effort di atas none | Hapus temperature, top_p, logprobs, dan top_logprobs dari permintaan. |
| Model tanpa pengaturan none — gpt-5, gpt-5-mini, gpt-5-nano, GPT-6 Astra | Jangan pernah mengirim parameter sampling; arahkan dengan effort dan verbosity. |
| Default dalam stack Anda yang tidak pernah Anda tetapkan (0.7 dari LangChain, 0 dalam Cline) | Timpa atau hapus default tersebut per model sebelum permintaan dikirim. |
| Mengirim nilai default 1 agar aman | Hapus field tersebut — beberapa model menolak parameter pada nilai apa pun. |
Hapus parameter sampling
Ini adalah penghapusan, bukan nilai baru. Jangan sertakan temperature dan top_p sama sekali dalam pemanggilan model penalaran, bersama logprobs dan top_logprobs yang tercakup dalam aturan yang sama. Jika Anda ingin mengubah seberapa banyak model bekerja, reasoning effort adalah kenop yang tersisa.
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)Periksa model mana yang menerima sampling
OpenAI menyatakan aturan per keluarga model, dan aturan tersebut bergantung pada reasoning effort. Inilah panduan modelnya sebagaimana dibaca pada 23 September 2026. Halaman GPT-5.5 dan GPT-5.6 tidak menyatakan ulang aturan tersebut, jadi anggap keheningan sebagai alasan untuk menguji, bukan sebagai izin; baris o-series berasal dari laporan error, bukan dokumentasi.
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)Arahkan dengan kontrol yang menggantikannya
Panduan OpenAI menyebutkan tiga pengganti ketika penalaran aktif: kedalaman penalaran (reasoning.effort, yang nilainya bergantung pada model dan berkisar dari none dan minimal hingga xhigh dan max), verbosity output (text.verbosity: low, medium, atau high, dengan medium sebagai default), dan panjang output (max_output_tokens, yang menghitung token penalaran sekaligus token yang terlihat). Chat Completions menuliskan dua yang pertama sebagai reasoning_effort dan verbosity. Panduan tersebut tidak menawarkan pengganti tingkat sampling untuk temperature 0; jika Anda menggunakannya untuk menjaga output tetap dapat diulang, tetapkan strukturnya, dengan Structured Outputs untuk skema dan prompt untuk sisanya.
# 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)Letakkan aturan dalam satu helper
Percabangan di setiap call site adalah alasan keluarga model berikutnya berubah menjadi putaran edit lain. Saring parameter sampling sekali, berdasarkan model dan effort yang akan Anda kirim; pada model yang mendukung effort none, parameter tersebut diteruskan ketika Anda meminta 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),
)Jika Anda melakukan panggilan melalui Kunavo
Kunavo tidak menghapus atau menulis ulang temperature atau top_p untuk model GPT, pada endpoint mana pun. Pada /v1/chat/completions, Kunavo membangun ulang permintaan untuk upstream Responses: temperature dan top_p disalin tanpa perubahan, reasoning_effort menjadi reasoning.effort, dan kedua ejaan pembatas token menjadi max_output_tokens, sedangkan field di luar pemetaan tersebut — termasuk verbosity, logprobs, top_logprobs, seed, dan stop — sama sekali tidak diteruskan, jadi atur verbosity melalui /v1/responses. Di sana field sampling dan text Anda diteruskan persis seperti yang dikirim, termasuk text.verbosity. Jika model menolak suatu nilai, 400 membawa pesannya kata demi kata di dalam envelope Kunavo (type upstream_error, code upstream_400), jadi cocokkan berdasarkan status atau pesan, bukan code "unsupported_value"; pemanggilan yang gagal tidak ditagihkan. Pemanggilan yang berhasil dengan temperature yang ditetapkan tidak membuktikan bahwa nilai tersebut diterapkan. Kunavo hanya menghapus temperature, top_p, dan top_k sendiri pada enam model Claude yang dihapus oleh Anthropic — claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, dan claude-sonnet-5 — dan melakukannya pada setiap endpoint. Bagian lain dari migrasi yang sama, max_tokens versus max_completion_tokens, dibahas dalam panduan max_tokens.
Pertanyaan umum
Bisakah saya menetapkan temperature pada GPT-5?
Tidak pada gpt-5, gpt-5-mini, atau gpt-5-nano: OpenAI menyatakan bahwa permintaan yang menyertakannya akan menghasilkan error. GPT-5.1, 5.2, dan 5.4 menerima temperature, top_p, dan logprobs hanya jika reasoning effort ditetapkan ke none, dan panduan GPT-6 OpenAI menyatakan untuk menghapusnya setiap kali reasoning effort bukan none.
Apa yang menggantikan temperature pada model penalaran?
Reasoning effort untuk menentukan seberapa banyak model berpikir, text.verbosity (verbosity dalam Chat Completions) untuk menentukan seberapa banyak yang dikatakannya, dan max_output_tokens sebagai batas keras. Melalui Kunavo, atur verbosity pada /v1/responses: endpoint chat tidak meneruskannya ke model GPT. Untuk struktur yang dapat diulang, gunakan Structured Outputs dan aturan format eksplisit dalam prompt.
Haruskah saya mengirim temperature=1 saja?
Jangan sertakan. Pesan Unsupported value menyatakan bahwa default 1 diterima pada model yang menghasilkannya, tetapi model lain menolak parameter tersebut pada nilai apa pun ("Unsupported parameter: 'temperature' is not supported with this model"), dan panduan OpenAI menyarankan untuk menghapus field tersebut.
Mengapa saya mendapatkan error ini ketika kode saya tidak pernah menetapkan temperature?
Sesuatu dalam stack Anda menetapkannya. Pemanggilan o1-preview milik pengguna jupyter-ai membawa nilai 0.7, yaitu default kelas ChatOpenAI LangChain yang berada di bawah jupyter-ai, dan kontributor Cline menyatakan bahwa nilai 0 yang dialami pengguna GPT-5 berasal dari default hard-code. Periksa apa yang sebenarnya dikirim SDK atau framework Anda melalui jaringan, lalu timpa atau hapusnya per model.
Apakah Kunavo menghapus temperature untuk saya?
Tidak untuk model GPT: Kunavo meneruskan temperature dan top_p persis seperti yang Anda kirim, baik pada /v1/chat/completions maupun /v1/responses. Kunavo memang menghapus temperature, top_p, dan top_k pada enam model Claude yang dihapus oleh Anthropic.
Panduan terkait
- “Unsupported parameter: 'max_tokens' is not supported with this model” — gunakan max_completion_tokens
- “`temperature` dan `top_p` tidak dapat ditentukan secara bersamaan untuk model ini” — kirim salah satunya, dan pada model Claude yang lebih baru jangan kirim keduanya
- Panduan API yang kompatibel dengan OpenAI — dari endpoint lokal Ollama hingga model frontier ter-host
- Batas laju OpenAI API — batas mana yang terkena, cara membacanya, dan retry yang memperbaikinya
Detail semantik error lainnya tersedia di referensi error; mendapatkan kunci hanya perlu satu menit melalui pendaftaran dan panduan autentikasi.