mirror of
https://github.com/hwchase17/langchain.git
synced 2026-06-09 18:50:33 +00:00
fix(openai): update responses API model detection for pro and codex models (#35594)
This commit is contained in:
committed by
GitHub
parent
f838c78788
commit
3af0bc0141
@@ -533,10 +533,17 @@ def _handle_openai_api_error(e: openai.APIError) -> None:
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
_RESPONSES_API_ONLY_PREFIXES = (
|
||||||
|
"gpt-5-pro",
|
||||||
|
"gpt-5.2-pro",
|
||||||
|
"gpt-5.4-pro",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _model_prefers_responses_api(model_name: str | None) -> bool:
|
def _model_prefers_responses_api(model_name: str | None) -> bool:
|
||||||
if not model_name:
|
if not model_name:
|
||||||
return False
|
return False
|
||||||
return "gpt-5.2-pro" in model_name or "codex" in model_name
|
return model_name.startswith(_RESPONSES_API_ONLY_PREFIXES) or "codex" in model_name
|
||||||
|
|
||||||
|
|
||||||
_BM = TypeVar("_BM", bound=BaseModel)
|
_BM = TypeVar("_BM", bound=BaseModel)
|
||||||
|
|||||||
@@ -3274,13 +3274,28 @@ def test_gpt_5_1_temperature_with_reasoning_effort_none(
|
|||||||
|
|
||||||
|
|
||||||
def test_model_prefers_responses_api() -> None:
|
def test_model_prefers_responses_api() -> None:
|
||||||
|
# Pro models (with and without date snapshots): Responses API only
|
||||||
|
assert _model_prefers_responses_api("gpt-5-pro")
|
||||||
|
assert _model_prefers_responses_api("gpt-5-pro-2025-10-06")
|
||||||
assert _model_prefers_responses_api("gpt-5.2-pro")
|
assert _model_prefers_responses_api("gpt-5.2-pro")
|
||||||
|
assert _model_prefers_responses_api("gpt-5.2-pro-2025-12-11")
|
||||||
|
assert _model_prefers_responses_api("gpt-5.4-pro")
|
||||||
|
assert _model_prefers_responses_api("gpt-5.4-pro-2026-03-05")
|
||||||
|
# Codex models: Responses API only
|
||||||
|
assert _model_prefers_responses_api("gpt-5.3-codex")
|
||||||
assert _model_prefers_responses_api("gpt-5.2-codex")
|
assert _model_prefers_responses_api("gpt-5.2-codex")
|
||||||
assert _model_prefers_responses_api("gpt-5.1-codex")
|
assert _model_prefers_responses_api("gpt-5.1-codex")
|
||||||
assert _model_prefers_responses_api("gpt-5.1-codex-max")
|
assert _model_prefers_responses_api("gpt-5.1-codex-max")
|
||||||
|
assert _model_prefers_responses_api("gpt-5.1-codex-mini")
|
||||||
assert _model_prefers_responses_api("gpt-5-codex")
|
assert _model_prefers_responses_api("gpt-5-codex")
|
||||||
assert not _model_prefers_responses_api("gpt-5.1")
|
assert _model_prefers_responses_api("codex-mini-latest")
|
||||||
|
# These should not match
|
||||||
assert not _model_prefers_responses_api("gpt-5")
|
assert not _model_prefers_responses_api("gpt-5")
|
||||||
|
assert not _model_prefers_responses_api("gpt-5.1")
|
||||||
|
assert not _model_prefers_responses_api("gpt-5.4")
|
||||||
|
assert not _model_prefers_responses_api("o3-pro")
|
||||||
|
assert not _model_prefers_responses_api("gpt-4.1")
|
||||||
|
assert not _model_prefers_responses_api(None)
|
||||||
|
|
||||||
|
|
||||||
def test_openai_structured_output_refusal_handling_responses_api() -> None:
|
def test_openai_structured_output_refusal_handling_responses_api() -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user