mirror of
https://github.com/hwchase17/langchain.git
synced 2026-06-09 10:17:00 +00:00
fix(openai): Allow temperature when reasoning is set to the string 'none' (#34298)
Co-authored-by: Chester Curme <chester.curme@gmail.com>
This commit is contained in:
@@ -3056,3 +3056,63 @@ def test_gpt_5_temperature_case_insensitive(
|
||||
messages = [HumanMessage(content="Hello")]
|
||||
payload = llm._get_request_payload(messages)
|
||||
assert payload["temperature"] == 0.7
|
||||
|
||||
|
||||
@pytest.mark.parametrize("use_responses_api", [False, True])
|
||||
def test_gpt_5_1_temperature_with_reasoning_effort_none(
|
||||
use_responses_api: bool,
|
||||
) -> None:
|
||||
"""Test that temperature is preserved when reasoning_effort is explicitly 'none'."""
|
||||
# Test with reasoning_effort='none' explicitly set
|
||||
llm = ChatOpenAI(
|
||||
model="gpt-5.1",
|
||||
temperature=0.5,
|
||||
reasoning_effort="none",
|
||||
use_responses_api=use_responses_api,
|
||||
)
|
||||
messages = [HumanMessage(content="Hello")]
|
||||
payload = llm._get_request_payload(messages)
|
||||
assert payload["temperature"] == 0.5
|
||||
|
||||
# Test with reasoning={'effort': 'none'}
|
||||
llm = ChatOpenAI(
|
||||
model="gpt-5.1",
|
||||
temperature=0.5,
|
||||
reasoning={"effort": "none"},
|
||||
use_responses_api=use_responses_api,
|
||||
)
|
||||
messages = [HumanMessage(content="Hello")]
|
||||
payload = llm._get_request_payload(messages)
|
||||
assert payload["temperature"] == 0.5
|
||||
|
||||
# Test that temperature is restricted by default (no reasoning_effort)
|
||||
llm = ChatOpenAI(
|
||||
model="gpt-5.1",
|
||||
temperature=0.5,
|
||||
use_responses_api=use_responses_api,
|
||||
)
|
||||
messages = [HumanMessage(content="Hello")]
|
||||
payload = llm._get_request_payload(messages)
|
||||
assert "temperature" not in payload
|
||||
|
||||
# Test that temperature is still restricted when reasoning_effort is something else
|
||||
llm = ChatOpenAI(
|
||||
model="gpt-5.1",
|
||||
temperature=0.5,
|
||||
reasoning_effort="low",
|
||||
use_responses_api=use_responses_api,
|
||||
)
|
||||
messages = [HumanMessage(content="Hello")]
|
||||
payload = llm._get_request_payload(messages)
|
||||
assert "temperature" not in payload
|
||||
|
||||
# Test with reasoning={'effort': 'low'}
|
||||
llm = ChatOpenAI(
|
||||
model="gpt-5.1",
|
||||
temperature=0.5,
|
||||
reasoning={"effort": "low"},
|
||||
use_responses_api=use_responses_api,
|
||||
)
|
||||
messages = [HumanMessage(content="Hello")]
|
||||
payload = llm._get_request_payload(messages)
|
||||
assert "temperature" not in payload
|
||||
|
||||
Reference in New Issue
Block a user