From ebac43ff7de71ad0e89c64d23225a2dca2cb057f Mon Sep 17 00:00:00 2001 From: Zach Deane-Mayer Date: Thu, 17 Jul 2025 10:05:40 -0400 Subject: [PATCH] feat: update OpenAI models - add o1-pro, o3-pro, o3-deep-research, computer-use - Add new OpenAI model names including o1-pro variants - Add o3-pro and o3-deep-research models - Add computer-use preview models - Add codex-mini-latest - Update OpenAI dependency from 1.76.0 to 1.92.0 - Switch from ChatModel to AllModels import for broader model support --- .../pydantic_ai/models/__init__.py | 19 +++++++++++++++++++ pydantic_ai_slim/pydantic_ai/models/openai.py | 4 ++-- pydantic_ai_slim/pyproject.toml | 2 +- uv.lock | 8 ++++---- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/pydantic_ai_slim/pydantic_ai/models/__init__.py b/pydantic_ai_slim/pydantic_ai/models/__init__.py index 11ec50f85..665394af6 100644 --- a/pydantic_ai_slim/pydantic_ai/models/__init__.py +++ b/pydantic_ai_slim/pydantic_ai/models/__init__.py @@ -176,6 +176,7 @@ 'gpt-4o-audio-preview', 'gpt-4o-audio-preview-2024-10-01', 'gpt-4o-audio-preview-2024-12-17', + 'gpt-4o-audio-preview-2025-06-03', 'gpt-4o-mini', 'gpt-4o-mini-2024-07-18', 'gpt-4o-mini-audio-preview', @@ -229,11 +230,18 @@ 'o1-mini-2024-09-12', 'o1-preview', 'o1-preview-2024-09-12', + 'o1-pro', + 'o1-pro-2025-03-19', 'o3', 'o3-2025-04-16', + 'o3-deep-research', + 'o3-deep-research-2025-06-26', 'o3-mini', 'o3-mini-2025-01-31', + 'o3-pro', + 'o3-pro-2025-06-10', 'openai:chatgpt-4o-latest', + 'openai:codex-mini-latest', 'openai:gpt-3.5-turbo', 'openai:gpt-3.5-turbo-0125', 'openai:gpt-3.5-turbo-0301', @@ -266,6 +274,7 @@ 'openai:gpt-4o-audio-preview', 'openai:gpt-4o-audio-preview-2024-10-01', 'openai:gpt-4o-audio-preview-2024-12-17', + 'openai:gpt-4o-audio-preview-2025-06-03', 'openai:gpt-4o-mini', 'openai:gpt-4o-mini-2024-07-18', 'openai:gpt-4o-mini-audio-preview', @@ -280,12 +289,22 @@ 'openai:o1-mini-2024-09-12', 'openai:o1-preview', 'openai:o1-preview-2024-09-12', + 'openai:o1-pro', + 'openai:o1-pro-2025-03-19', 'openai:o3', 'openai:o3-2025-04-16', + 'openai:o3-deep-research', + 'openai:o3-deep-research-2025-06-26', 'openai:o3-mini', 'openai:o3-mini-2025-01-31', 'openai:o4-mini', 'openai:o4-mini-2025-04-16', + 'openai:o4-mini-deep-research', + 'openai:o4-mini-deep-research-2025-06-26', + 'openai:o3-pro', + 'openai:o3-pro-2025-06-10', + 'openai:computer-use-preview', + 'openai:computer-use-preview-2025-03-11', 'test', ], ) diff --git a/pydantic_ai_slim/pydantic_ai/models/openai.py b/pydantic_ai_slim/pydantic_ai/models/openai.py index 92d79c634..a87f9ef3b 100644 --- a/pydantic_ai_slim/pydantic_ai/models/openai.py +++ b/pydantic_ai_slim/pydantic_ai/models/openai.py @@ -50,7 +50,7 @@ try: from openai import NOT_GIVEN, APIStatusError, AsyncOpenAI, AsyncStream, NotGiven - from openai.types import ChatModel, chat, responses + from openai.types import AllModels, chat, responses from openai.types.chat import ( ChatCompletionChunk, ChatCompletionContentPartImageParam, @@ -80,7 +80,7 @@ 'OpenAIModelName', ) -OpenAIModelName = Union[str, ChatModel] +OpenAIModelName = Union[str, AllModels] """ Possible OpenAI model names. diff --git a/pydantic_ai_slim/pyproject.toml b/pydantic_ai_slim/pyproject.toml index 4b62e40d9..279b0e8f8 100644 --- a/pydantic_ai_slim/pyproject.toml +++ b/pydantic_ai_slim/pyproject.toml @@ -62,7 +62,7 @@ dependencies = [ # WARNING if you add optional groups, please update docs/install.md logfire = ["logfire>=3.11.0"] # Models -openai = ["openai>=1.76.0"] +openai = ["openai>=1.92.0"] cohere = ["cohere>=5.13.11; platform_system != 'Emscripten'"] vertexai = ["google-auth>=2.36.0", "requests>=2.32.2"] google = ["google-genai>=1.24.0"] diff --git a/uv.lock b/uv.lock index bea12cf7a..28e85eaa6 100644 --- a/uv.lock +++ b/uv.lock @@ -2327,7 +2327,7 @@ wheels = [ [[package]] name = "openai" -version = "1.76.0" +version = "1.97.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -2339,9 +2339,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/84/51/817969ec969b73d8ddad085670ecd8a45ef1af1811d8c3b8a177ca4d1309/openai-1.76.0.tar.gz", hash = "sha256:fd2bfaf4608f48102d6b74f9e11c5ecaa058b60dad9c36e409c12477dfd91fb2", size = 434660, upload-time = "2025-04-23T16:33:53.266Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/c6/b8d66e4f3b95493a8957065b24533333c927dc23817abe397f13fe589c6e/openai-1.97.0.tar.gz", hash = "sha256:0be349569ccaa4fb54f97bb808423fd29ccaeb1246ee1be762e0c81a47bae0aa", size = 493850, upload-time = "2025-07-16T16:37:35.196Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/59/aa/84e02ab500ca871eb8f62784426963a1c7c17a72fea3c7f268af4bbaafa5/openai-1.76.0-py3-none-any.whl", hash = "sha256:a712b50e78cf78e6d7b2a8f69c4978243517c2c36999756673e07a14ce37dc0a", size = 661201, upload-time = "2025-04-23T16:33:51.12Z" }, + { url = "https://files.pythonhosted.org/packages/8a/91/1f1cf577f745e956b276a8b1d3d76fa7a6ee0c2b05db3b001b900f2c71db/openai-1.97.0-py3-none-any.whl", hash = "sha256:a1c24d96f4609f3f7f51c9e1c2606d97cc6e334833438659cfd687e9c972c610", size = 764953, upload-time = "2025-07-16T16:37:33.135Z" }, ] [[package]] @@ -3192,7 +3192,7 @@ requires-dist = [ { name = "logfire", marker = "extra == 'logfire'", specifier = ">=3.11.0" }, { name = "mcp", marker = "python_full_version >= '3.10' and extra == 'mcp'", specifier = ">=1.9.4" }, { name = "mistralai", marker = "extra == 'mistral'", specifier = ">=1.2.5" }, - { name = "openai", marker = "extra == 'openai'", specifier = ">=1.76.0" }, + { name = "openai", marker = "extra == 'openai'", specifier = ">=1.92.0" }, { name = "opentelemetry-api", specifier = ">=1.28.0" }, { name = "prompt-toolkit", marker = "extra == 'cli'", specifier = ">=3" }, { name = "pydantic", specifier = ">=2.10" },