Version Notice
This documentation is ahead of the last release by 1 commit. You may see documentation for features not yet supported in the latest release v0.0.29 2025-02-27.
pydantic_ai.models.fallback
FallbackModel
dataclass
Bases: Model
A model that uses one or more fallback models upon failure.
Apart from __init__
, all methods are private or match those of the base class.
Source code in pydantic_ai_slim/pydantic_ai/models/fallback.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
|
__init__
__init__(
default_model: Model | KnownModelName,
*fallback_models: Model | KnownModelName,
fallback_on: (
Callable[[Exception], bool]
| tuple[type[Exception], ...]
) = (ModelHTTPError,)
)
Initialize a fallback model instance.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
default_model
|
Model | KnownModelName
|
The name or instance of the default model to use. |
required |
fallback_models
|
Model | KnownModelName
|
The names or instances of the fallback models to use upon failure. |
()
|
fallback_on
|
Callable[[Exception], bool] | tuple[type[Exception], ...]
|
A callable or tuple of exceptions that should trigger a fallback. |
(ModelHTTPError,)
|
Source code in pydantic_ai_slim/pydantic_ai/models/fallback.py
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
request
async
request(
messages: list[ModelMessage],
model_settings: ModelSettings | None,
model_request_parameters: ModelRequestParameters,
) -> tuple[ModelResponse, Usage]
Try each model in sequence until one succeeds.
In case of failure, raise a FallbackExceptionGroup with all exceptions.
Source code in pydantic_ai_slim/pydantic_ai/models/fallback.py
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
|
request_stream
async
request_stream(
messages: list[ModelMessage],
model_settings: ModelSettings | None,
model_request_parameters: ModelRequestParameters,
) -> AsyncIterator[StreamedResponse]
Try each model in sequence until one succeeds.
Source code in pydantic_ai_slim/pydantic_ai/models/fallback.py
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
|