Skip to content

Commit 962e2ab

Browse files
Add o3 support for OpenAIModel (#853)
1 parent e4b3cc9 commit 962e2ab

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

pydantic_ai_slim/pydantic_ai/models/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@
112112
'o1-mini-2024-09-12',
113113
'o1-preview',
114114
'o1-preview-2024-09-12',
115+
'o3-mini',
116+
'o3-mini-2025-01-31',
115117
'openai:chatgpt-4o-latest',
116118
'openai:gpt-3.5-turbo',
117119
'openai:gpt-3.5-turbo-0125',
@@ -149,6 +151,8 @@
149151
'openai:o1-mini-2024-09-12',
150152
'openai:o1-preview',
151153
'openai:o1-preview-2024-09-12',
154+
'openai:o3-mini',
155+
'openai:o3-mini-2025-01-31',
152156
'test',
153157
]
154158
"""Known model names that can be used with the `model` parameter of [`Agent`][pydantic_ai.Agent].
@@ -311,7 +315,7 @@ def infer_model(model: Model | KnownModelName) -> Model:
311315
from .openai import OpenAIModel
312316

313317
return OpenAIModel(model[7:])
314-
elif model.startswith(('gpt', 'o1')):
318+
elif model.startswith(('gpt', 'o1', 'o3')):
315319
from .openai import OpenAIModel
316320

317321
return OpenAIModel(model)

pydantic_ai_slim/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ dependencies = [
4545
[project.optional-dependencies]
4646
# WARNING if you add optional groups, please update docs/install.md
4747
logfire = ["logfire>=2.3"]
48-
openai = ["openai>=1.59.0"]
48+
openai = ["openai>=1.61.0"]
4949
cohere = ["cohere>=5.13.11"]
5050
vertexai = ["google-auth>=2.36.0", "requests>=2.32.3"]
5151
anthropic = ["anthropic>=0.40.0"]

tests/models/test_model_names.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def get_model_names(model_name_type: Any) -> Iterator[str]:
3838
groq_names = [f'groq:{n}' for n in get_model_names(GroqModelName)]
3939
mistral_names = [f'mistral:{n}' for n in get_model_names(MistralModelName)]
4040
openai_names = [f'openai:{n}' for n in get_model_names(OpenAIModelName)] + [
41-
n for n in get_model_names(OpenAIModelName) if n.startswith('o1') or n.startswith('gpt')
41+
n for n in get_model_names(OpenAIModelName) if n.startswith('o1') or n.startswith('gpt') or n.startswith('o3')
4242
]
4343
extra_names = ['test']
4444

uv.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)