From e9f7cd3e0e09454aba2192ef26b3d99363b6fbe7 Mon Sep 17 00:00:00 2001 From: ccurme Date: Thu, 18 Dec 2025 12:49:59 -0500 Subject: [PATCH] release(openai): 1.1.6: update max input tokens for gpt-5 series (#34419) --- libs/langchain/uv.lock | 2 +- libs/langchain_v1/uv.lock | 2 +- libs/model-profiles/uv.lock | 2 +- libs/partners/deepseek/uv.lock | 2 +- .../openai/langchain_openai/data/_profiles.py | 93 ++++++++++++++++--- .../data/profile_augmentations.toml | 42 +++++++++ libs/partners/openai/pyproject.toml | 2 +- .../tests/unit_tests/chat_models/test_base.py | 4 + libs/partners/openai/uv.lock | 2 +- libs/partners/xai/uv.lock | 2 +- 10 files changed, 135 insertions(+), 18 deletions(-) diff --git a/libs/langchain/uv.lock b/libs/langchain/uv.lock index 922bce7408c..04f938ee20d 100644 --- a/libs/langchain/uv.lock +++ b/libs/langchain/uv.lock @@ -2639,7 +2639,7 @@ wheels = [ [[package]] name = "langchain-openai" -version = "1.1.5" +version = "1.1.6" source = { editable = "../partners/openai" } dependencies = [ { name = "langchain-core" }, diff --git a/libs/langchain_v1/uv.lock b/libs/langchain_v1/uv.lock index 9068659c123..d65a13a1c44 100644 --- a/libs/langchain_v1/uv.lock +++ b/libs/langchain_v1/uv.lock @@ -2283,7 +2283,7 @@ wheels = [ [[package]] name = "langchain-openai" -version = "1.1.5" +version = "1.1.6" source = { editable = "../partners/openai" } dependencies = [ { name = "langchain-core" }, diff --git a/libs/model-profiles/uv.lock b/libs/model-profiles/uv.lock index 1d690fec5e2..6a6865f17ac 100644 --- a/libs/model-profiles/uv.lock +++ b/libs/model-profiles/uv.lock @@ -654,7 +654,7 @@ typing = [ [[package]] name = "langchain-openai" -version = "1.1.5" +version = "1.1.6" source = { editable = "../partners/openai" } dependencies = [ { name = "langchain-core" }, diff --git a/libs/partners/deepseek/uv.lock b/libs/partners/deepseek/uv.lock index 72f2f8efd9d..30c8fe80f99 100644 --- a/libs/partners/deepseek/uv.lock +++ b/libs/partners/deepseek/uv.lock @@ -477,7 +477,7 @@ typing = [{ name = "mypy", specifier = ">=1.10.0,<2.0.0" }] [[package]] name = "langchain-openai" -version = "1.1.5" +version = "1.1.6" source = { editable = "../openai" } dependencies = [ { name = "langchain-core" }, diff --git a/libs/partners/openai/langchain_openai/data/_profiles.py b/libs/partners/openai/langchain_openai/data/_profiles.py index 41b73aa5c93..15ae91834fb 100644 --- a/libs/partners/openai/langchain_openai/data/_profiles.py +++ b/libs/partners/openai/langchain_openai/data/_profiles.py @@ -106,12 +106,12 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5.1-codex": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, "video_inputs": False, - "image_outputs": True, + "image_outputs": False, "audio_outputs": False, "video_outputs": False, "reasoning_output": True, @@ -194,6 +194,24 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": False, "tool_choice": True, }, + "gpt-5.2-pro": { + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": False, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + "image_url_inputs": True, + "pdf_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "tool_choice": True, + }, "text-embedding-3-large": { "max_input_tokens": 8191, "max_output_tokens": 3072, @@ -247,7 +265,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5.1-codex-mini": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, @@ -282,8 +300,26 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "tool_choice": True, }, + "gpt-5.2-chat-latest": { + "max_input_tokens": 272000, + "max_output_tokens": 16384, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": False, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + "image_url_inputs": True, + "pdf_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "tool_choice": True, + }, "gpt-5.1": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, @@ -317,7 +353,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5-nano": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, @@ -335,7 +371,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5-codex": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, @@ -425,7 +461,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5-mini": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, @@ -513,6 +549,24 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "tool_choice": True, }, + "gpt-5.1-codex-max": { + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": False, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "structured_output": True, + "image_url_inputs": True, + "pdf_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "tool_choice": True, + }, "o3": { "max_input_tokens": 200000, "max_output_tokens": 100000, @@ -549,7 +603,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5-chat-latest": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, @@ -585,7 +639,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 128000, "image_inputs": True, "audio_inputs": False, @@ -603,7 +657,7 @@ _PROFILES: dict[str, dict[str, Any]] = { "tool_choice": True, }, "gpt-5-pro": { - "max_input_tokens": 400000, + "max_input_tokens": 272000, "max_output_tokens": 272000, "image_inputs": True, "audio_inputs": False, @@ -620,8 +674,25 @@ _PROFILES: dict[str, dict[str, Any]] = { "image_tool_message": True, "tool_choice": True, }, + "gpt-5.2": { + "max_input_tokens": 272000, + "max_output_tokens": 128000, + "image_inputs": True, + "audio_inputs": False, + "video_inputs": False, + "image_outputs": False, + "audio_outputs": False, + "video_outputs": False, + "reasoning_output": True, + "tool_calling": True, + "image_url_inputs": True, + "pdf_inputs": True, + "pdf_tool_message": True, + "image_tool_message": True, + "tool_choice": True, + }, "gpt-5.1-chat-latest": { - "max_input_tokens": 128000, + "max_input_tokens": 272000, "max_output_tokens": 16384, "image_inputs": True, "audio_inputs": False, diff --git a/libs/partners/openai/langchain_openai/data/profile_augmentations.toml b/libs/partners/openai/langchain_openai/data/profile_augmentations.toml index 762221f33de..6fb3ee4975f 100644 --- a/libs/partners/openai/langchain_openai/data/profile_augmentations.toml +++ b/libs/partners/openai/langchain_openai/data/profile_augmentations.toml @@ -12,3 +12,45 @@ image_url_inputs = false pdf_inputs = false pdf_tool_message = false image_tool_message = false + +[overrides."gpt-5.1-codex"] +max_input_tokens = 272000 + +[overrides."gpt-5.2-pro"] +max_input_tokens = 272000 + +[overrides."gpt-5.1-codex-mini"] +max_input_tokens = 272000 + +[overrides."gpt-5.2-chat-latest"] +max_input_tokens = 272000 + +[overrides."gpt-5.1"] +max_input_tokens = 272000 + +[overrides."gpt-5-nano"] +max_input_tokens = 272000 + +[overrides."gpt-5-codex"] +max_input_tokens = 272000 + +[overrides."gpt-5-mini"] +max_input_tokens = 272000 + +[overrides."gpt-5.1-codex-max"] +max_input_tokens = 272000 + +[overrides."gpt-5-chat-latest"] +max_input_tokens = 272000 + +[overrides."gpt-5"] +max_input_tokens = 272000 + +[overrides."gpt-5-pro"] +max_input_tokens = 272000 + +[overrides."gpt-5.2"] +max_input_tokens = 272000 + +[overrides."gpt-5.1-chat-latest"] +max_input_tokens = 272000 diff --git a/libs/partners/openai/pyproject.toml b/libs/partners/openai/pyproject.toml index e32bac31f36..3656c92babf 100644 --- a/libs/partners/openai/pyproject.toml +++ b/libs/partners/openai/pyproject.toml @@ -9,7 +9,7 @@ license = { text = "MIT" } readme = "README.md" authors = [] -version = "1.1.5" +version = "1.1.6" requires-python = ">=3.10.0,<4.0.0" dependencies = [ "langchain-core>=1.2.2,<2.0.0", diff --git a/libs/partners/openai/tests/unit_tests/chat_models/test_base.py b/libs/partners/openai/tests/unit_tests/chat_models/test_base.py index a7e84f672f1..e59874bf7bc 100644 --- a/libs/partners/openai/tests/unit_tests/chat_models/test_base.py +++ b/libs/partners/openai/tests/unit_tests/chat_models/test_base.py @@ -145,6 +145,10 @@ def test_profile() -> None: model = ChatOpenAI(model="gpt-5", profile={"tool_calling": False}) assert model.profile == {"tool_calling": False} + # Test overrides for gpt-5 input tokens + model = ChatOpenAI(model="gpt-5") + assert model.profile["max_input_tokens"] == 272_000 + def test_openai_o1_temperature() -> None: llm = ChatOpenAI(model="o1-preview") diff --git a/libs/partners/openai/uv.lock b/libs/partners/openai/uv.lock index 8f73717876f..5c6ba93d332 100644 --- a/libs/partners/openai/uv.lock +++ b/libs/partners/openai/uv.lock @@ -666,7 +666,7 @@ typing = [ [[package]] name = "langchain-openai" -version = "1.1.5" +version = "1.1.6" source = { editable = "." } dependencies = [ { name = "langchain-core" }, diff --git a/libs/partners/xai/uv.lock b/libs/partners/xai/uv.lock index a3715e5402e..f95e4317b14 100644 --- a/libs/partners/xai/uv.lock +++ b/libs/partners/xai/uv.lock @@ -681,7 +681,7 @@ typing = [ [[package]] name = "langchain-openai" -version = "1.1.5" +version = "1.1.6" source = { editable = "../openai" } dependencies = [ { name = "langchain-core" },