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
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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
|
__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
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
request
async
request(
messages: list[ModelMessage],
model_settings: ModelSettings | None,
model_request_parameters: ModelRequestParameters,
) -> ModelResponse
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
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 |
|
request_stream
async
request_stream(
messages: list[ModelMessage],
model_settings: ModelSettings | None,
model_request_parameters: ModelRequestParameters,
run_context: RunContext[Any] | None = None,
) -> AsyncIterator[StreamedResponse]
Try each model in sequence until one succeeds.
Source code in pydantic_ai_slim/pydantic_ai/models/fallback.py
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 108 109 |
|