Quay lại hướng dẫn
Khắc phục sự cố·23 tháng 9, 2026·Đọc 6 phút

“Unsupported value: 'temperature' does not support … with this model” — model suy luận dùng effort và verbosity thay thế

Xóa temperature và top_p — cùng với logprobs và top_logprobs — khỏi các yêu cầu gửi đến model suy luận. Hướng dẫn model của OpenAI cho phép sampling trên GPT-5.1, 5.2 và 5.4, cũng như GPT-6 Sol và Luna, chỉ khi reasoning effort là none; gpt-5, gpt-5-mini và gpt-5-nano từ chối chúng ở mọi thiết lập, còn GPT-6 Astra không có thiết lập none để sử dụng. Thay vào đó, điều khiển output bằng reasoning effort, verbosity và prompt.

Được xem xét lần cuối vào .

Xóa temperature và top_p — cùng với logprobs và top_logprobs — khỏi các yêu cầu gửi đến model suy luận. Hướng dẫn model của OpenAI cho phép sampling trên GPT-5.1, 5.2 và 5.4, cũng như GPT-6 Sol và Luna, chỉ khi reasoning effort là none; gpt-5, gpt-5-mini và gpt-5-nano từ chối chúng ở mọi thiết lập, còn GPT-6 Astra không có thiết lập none để sử dụng. Thay vào đó, điều khiển output bằng reasoning effort, verbosity và prompt.

Lỗi

phản hồi (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")

Tổng quan nguyên nhân và cách khắc phục

Nguyên nhânCách khắc phục
Model suy luận đang chạy với reasoning effort cao hơn noneXóa temperature, top_p, logprobs và top_logprobs khỏi yêu cầu.
Model không có thiết lập none — gpt-5, gpt-5-mini, gpt-5-nano, GPT-6 AstraKhông bao giờ gửi các tham số sampling; điều khiển bằng effort và verbosity.
Giá trị mặc định trong stack mà bạn chưa từng đặt (0.7 từ LangChain, 0 từ Cline)Ghi đè hoặc loại bỏ giá trị mặc định theo từng model trước khi yêu cầu rời khỏi hệ thống.
Gửi giá trị mặc định 1 để an toànThay vào đó, bỏ qua trường — một số model từ chối tham số ở mọi giá trị.

Xóa các tham số sampling

Đây là thao tác xóa, không phải giá trị mới. Loại bỏ hoàn toàn temperature và top_p khỏi các lời gọi model suy luận, cùng với logprobs và top_logprobs, vốn chịu cùng quy tắc. Nếu muốn thay đổi mức độ model xử lý, reasoning effort là nút điều khiển còn lại.

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)

Kiểm tra model nào chấp nhận sampling

OpenAI nêu quy tắc theo từng họ model và quy tắc này phụ thuộc vào reasoning effort. Đây là hướng dẫn model được đọc vào ngày 23 tháng 9 năm 2026. Các trang GPT-5.5 và GPT-5.6 không nhắc lại quy tắc, vì vậy hãy xem sự im lặng là lý do để kiểm thử, không phải sự cho phép; các dòng o-series xuất phát từ báo cáo lỗi thay vì tài liệu.

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)

Điều khiển bằng các tùy chọn thay thế

Hướng dẫn của OpenAI nêu ba lựa chọn thay thế khi reasoning được bật: độ sâu suy luận (reasoning.effort, với các giá trị phụ thuộc model và chạy từ none, minimal đến xhigh và max), độ chi tiết output (text.verbosity: low, medium hoặc high, mặc định là medium) và độ dài output (max_output_tokens, tính cả token suy luận lẫn token hiển thị). Chat Completions gọi hai tùy chọn đầu là reasoning_effort và verbosity. Hướng dẫn không đưa ra tùy chọn sampling nào thay thế cho temperature 0; nếu dùng nó để giữ output có thể lặp lại, hãy cố định cấu trúc thay vào đó, dùng Structured Outputs cho schema và prompt cho phần còn lại.

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)

Đặt quy tắc vào một helper

Rẽ nhánh tại từng điểm gọi là cách khiến họ model tiếp theo biến thành một vòng chỉnh sửa khác. Hãy lọc các tham số sampling một lần, dựa trên model và effort bạn sắp gửi; trên model hỗ trợ effort none, chúng được truyền qua khi bạn yêu cầu 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),
)

Nếu bạn gọi qua Kunavo

Kunavo không loại bỏ hoặc viết lại temperature hay top_p cho các model GPT, trên cả hai endpoint. Trên /v1/chat/completions, nó xây dựng lại yêu cầu cho upstream Responses: temperature và top_p được sao chép nguyên trạng, reasoning_effort trở thành reasoning.effort, và cả hai cách viết giới hạn token đều trở thành max_output_tokens, trong khi các trường ngoài ánh xạ đó — bao gồm verbosity, logprobs, top_logprobs, seed và stop — hoàn toàn không được chuyển tiếp, vì vậy hãy đặt verbosity qua /v1/responses. Tại đó, các trường sampling và text được truyền chính xác như đã gửi, bao gồm cả text.verbosity. Nếu model từ chối một giá trị, lỗi 400 sẽ mang thông báo của nó nguyên văn bên trong envelope của Kunavo (type upstream_error, code upstream_400), vì vậy hãy khớp theo status hoặc thông báo thay vì code "unsupported_value"; lời gọi thất bại không bị tính phí. Một lời gọi thành công với temperature được đặt không chứng minh rằng giá trị đã được áp dụng. Kunavo chỉ tự loại bỏ temperature, top_p và top_k trên sáu model Claude mà Anthropic đã loại bỏ chúng — claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7 và claude-sonnet-5 — và thực hiện việc này trên mọi endpoint. Nửa còn lại của cùng quá trình chuyển đổi, max_tokens so với max_completion_tokens, được đề cập trong hướng dẫn max_tokens.

Câu hỏi thường gặp

Tôi có thể đặt temperature trên GPT-5 không?

Không với gpt-5, gpt-5-mini hoặc gpt-5-nano: OpenAI cho biết các yêu cầu có chứa tham số này sẽ phát sinh lỗi. GPT-5.1, 5.2 và 5.4 chấp nhận temperature, top_p và logprobs chỉ khi reasoning effort được đặt là none, còn hướng dẫn GPT-6 của OpenAI nói phải xóa chúng bất cứ khi nào reasoning effort không phải none.

Điều gì thay thế temperature trên model suy luận?

Reasoning effort cho mức độ model suy nghĩ, text.verbosity (verbosity trong Chat Completions) cho lượng nội dung model nói ra, và max_output_tokens làm giới hạn cứng. Qua Kunavo, hãy đặt verbosity trên /v1/responses: endpoint chat không chuyển tiếp nó đến các model GPT. Để cấu trúc có thể lặp lại, hãy sử dụng Structured Outputs và các quy tắc định dạng rõ ràng trong prompt.

Tôi có nên cứ gửi temperature=1 không?

Hãy bỏ qua nó. Thông báo Unsupported value cho biết giá trị mặc định 1 được chấp nhận trên model tạo ra thông báo, nhưng các model khác từ chối tham số này ở mọi giá trị ("Unsupported parameter: 'temperature' is not supported with this model"), và hướng dẫn của OpenAI là xóa các trường đó.

Tại sao tôi nhận được lỗi này khi mã của tôi không bao giờ đặt temperature?

Một thành phần nào đó trong stack của bạn đã đặt nó. Các lời gọi o1-preview của một người dùng jupyter-ai mang theo 0.7, là giá trị mặc định của lớp ChatOpenAI của LangChain bên dưới jupyter-ai, còn một cộng tác viên Cline cho biết giá trị 0 mà người dùng GPT-5 gặp phải đến từ một giá trị mặc định được hard-code. Kiểm tra SDK hoặc framework của bạn thực sự đặt gì trên wire, sau đó ghi đè hoặc loại bỏ theo từng model.

Kunavo có xóa temperature giúp tôi không?

Không với các model GPT: Kunavo chuyển tiếp temperature và top_p chính xác như bạn gửi, trên cả /v1/chat/completions và /v1/responses. Nó có xóa temperature, top_p và top_k trên sáu model Claude mà Anthropic đã loại bỏ chúng.

Hướng dẫn liên quan

Thông tin chi tiết hơn về ý nghĩa lỗi có trong tài liệu tham chiếu lỗi; bạn chỉ mất một phút để lấy khóa qua đăng ký và hướng dẫn xác thực.