Skip to content

Commit 6b1c20f

Browse files
authored
Merge branch 'pydantic:main' into qian/dbos-agent
2 parents a936e40 + 7e0b4fc commit 6b1c20f

29 files changed

+244
-222
lines changed

docs/logfire.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ instrumentation_settings = InstrumentationSettings(
297297
event_logger_provider=EventLoggerProvider(),
298298
)
299299

300-
agent = Agent('gpt-4o', instrument=instrumentation_settings)
300+
agent = Agent('openai:gpt-4o', instrument=instrumentation_settings)
301301
# or to instrument all agents:
302302
Agent.instrument_all(instrumentation_settings)
303303
```
@@ -309,7 +309,7 @@ from pydantic_ai import Agent
309309
from pydantic_ai.models.instrumented import InstrumentationSettings, InstrumentedModel
310310

311311
settings = InstrumentationSettings()
312-
model = InstrumentedModel('gpt-4o', settings)
312+
model = InstrumentedModel('openai:gpt-4o', settings)
313313
agent = Agent(model)
314314
```
315315

@@ -320,7 +320,7 @@ from pydantic_ai.agent import Agent, InstrumentationSettings
320320

321321
instrumentation_settings = InstrumentationSettings(include_binary_content=False)
322322

323-
agent = Agent('gpt-4o', instrument=instrumentation_settings)
323+
agent = Agent('openai:gpt-4o', instrument=instrumentation_settings)
324324
# or to instrument all agents:
325325
Agent.instrument_all(instrumentation_settings)
326326
```
@@ -337,7 +337,7 @@ from pydantic_ai.models.instrumented import InstrumentationSettings
337337

338338
instrumentation_settings = InstrumentationSettings(include_content=False)
339339

340-
agent = Agent('gpt-4o', instrument=instrumentation_settings)
340+
agent = Agent('openai:gpt-4o', instrument=instrumentation_settings)
341341
# or to instrument all agents:
342342
Agent.instrument_all(instrumentation_settings)
343343
```

docs/models/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ print(response.all_messages())
118118
model_name='claude-3-5-sonnet-latest',
119119
timestamp=datetime.datetime(...),
120120
kind='response',
121-
provider_request_id=None,
121+
provider_response_id=None,
122122
),
123123
]
124124
"""

docs/multi-agent-applications.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ joke_selection_agent = Agent(
106106
),
107107
)
108108
joke_generation_agent = Agent(
109-
'gemini-1.5-flash',
109+
'google-gla:gemini-1.5-flash',
110110
deps_type=ClientAndKey, # (4)!
111111
output_type=list[str],
112112
system_prompt=(

pydantic_ai_slim/pydantic_ai/messages.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,7 @@ class ModelResponse:
938938
For OpenAI models, this may include 'logprobs', 'finish_reason', etc.
939939
"""
940940

941-
provider_request_id: str | None = None
941+
provider_response_id: str | None = None
942942
"""request ID as specified by the model provider. This can be used to track the specific request to the model."""
943943

944944
def price(self) -> genai_types.PriceCalculation:
@@ -1026,9 +1026,14 @@ def vendor_details(self) -> dict[str, Any] | None:
10261026
return self.provider_details
10271027

10281028
@property
1029-
@deprecated('`vendor_id` is deprecated, use `provider_request_id` instead')
1029+
@deprecated('`vendor_id` is deprecated, use `provider_response_id` instead')
10301030
def vendor_id(self) -> str | None:
1031-
return self.provider_request_id
1031+
return self.provider_response_id
1032+
1033+
@property
1034+
@deprecated('`provider_request_id` is deprecated, use `provider_response_id` instead')
1035+
def provider_request_id(self) -> str | None:
1036+
return self.provider_response_id
10321037

10331038
__repr__ = _utils.dataclasses_no_defaults_repr
10341039

pydantic_ai_slim/pydantic_ai/models/__init__.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from __future__ import annotations as _annotations
88

99
import base64
10+
import warnings
1011
from abc import ABC, abstractmethod
1112
from collections.abc import AsyncIterator, Iterator
1213
from contextlib import asynccontextmanager, contextmanager
@@ -684,19 +685,29 @@ def infer_model(model: Model | KnownModelName | str) -> Model: # noqa: C901
684685
try:
685686
provider, model_name = model.split(':', maxsplit=1)
686687
except ValueError:
688+
provider = None
687689
model_name = model
688-
# TODO(Marcelo): We should deprecate this way.
689690
if model_name.startswith(('gpt', 'o1', 'o3')):
690691
provider = 'openai'
691692
elif model_name.startswith('claude'):
692693
provider = 'anthropic'
693694
elif model_name.startswith('gemini'):
694695
provider = 'google-gla'
696+
697+
if provider is not None:
698+
warnings.warn(
699+
f"Specifying a model name without a provider prefix is deprecated. Instead of {model_name!r}, use '{provider}:{model_name}'.",
700+
DeprecationWarning,
701+
)
695702
else:
696703
raise UserError(f'Unknown model: {model}')
697704

698-
if provider == 'vertexai':
699-
provider = 'google-vertex' # pragma: no cover
705+
if provider == 'vertexai': # pragma: no cover
706+
warnings.warn(
707+
"The 'vertexai' provider name is deprecated. Use 'google-vertex' instead.",
708+
DeprecationWarning,
709+
)
710+
provider = 'google-vertex'
700711

701712
if provider == 'cohere':
702713
from .cohere import CohereModel

pydantic_ai_slim/pydantic_ai/models/anthropic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ def _process_response(self, response: BetaMessage) -> ModelResponse:
330330
items,
331331
usage=_map_usage(response),
332332
model_name=response.model,
333-
provider_request_id=response.id,
333+
provider_response_id=response.id,
334334
provider_name=self._provider.name,
335335
)
336336

pydantic_ai_slim/pydantic_ai/models/bedrock.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,13 @@ async def _process_response(self, response: ConverseResponseTypeDef) -> ModelRes
301301
input_tokens=response['usage']['inputTokens'],
302302
output_tokens=response['usage']['outputTokens'],
303303
)
304-
vendor_id = response.get('ResponseMetadata', {}).get('RequestId', None)
304+
response_id = response.get('ResponseMetadata', {}).get('RequestId', None)
305305
return ModelResponse(
306-
items, usage=u, model_name=self.model_name, provider_request_id=vendor_id, provider_name=self._provider.name
306+
items,
307+
usage=u,
308+
model_name=self.model_name,
309+
provider_response_id=response_id,
310+
provider_name=self._provider.name,
307311
)
308312

309313
@overload

pydantic_ai_slim/pydantic_ai/models/gemini.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ def _process_response_from_parts(
690690
f'Unsupported response from Gemini, expected all parts to be function calls or text, got: {part!r}'
691691
)
692692
return ModelResponse(
693-
parts=items, usage=usage, model_name=model_name, provider_request_id=vendor_id, provider_details=vendor_details
693+
parts=items, usage=usage, model_name=model_name, provider_response_id=vendor_id, provider_details=vendor_details
694694
)
695695

696696

pydantic_ai_slim/pydantic_ai/models/google.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ def _process_response_from_parts(
648648
parts=items,
649649
model_name=model_name,
650650
usage=usage,
651-
provider_request_id=vendor_id,
651+
provider_response_id=vendor_id,
652652
provider_details=vendor_details,
653653
provider_name=provider_name,
654654
)

pydantic_ai_slim/pydantic_ai/models/groq.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ def _process_response(self, response: chat.ChatCompletion) -> ModelResponse:
289289
usage=_map_usage(response),
290290
model_name=response.model,
291291
timestamp=timestamp,
292-
provider_request_id=response.id,
292+
provider_response_id=response.id,
293293
provider_name=self._provider.name,
294294
)
295295

0 commit comments

Comments
 (0)