Multi Provider
MultiProviderMap
A map of model name prefixes to ModelProviders.
Source code in src/agents/models/multi_provider.py
has_prefix
get_mapping
get_mapping() -> dict[str, ModelProvider]
set_mapping
set_mapping(mapping: dict[str, ModelProvider])
get_provider
get_provider(prefix: str) -> ModelProvider | None
Returns the ModelProvider for the given prefix.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prefix
|
str
|
The prefix of the model name e.g. "openai" or "my_prefix". |
required |
add_provider
add_provider(prefix: str, provider: ModelProvider)
Adds a new prefix -> ModelProvider mapping.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prefix
|
str
|
The prefix of the model name e.g. "openai" or "my_prefix". |
required |
provider
|
ModelProvider
|
The ModelProvider to use for the given prefix. |
required |
Source code in src/agents/models/multi_provider.py
remove_provider
Removes the mapping for the given prefix.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
prefix
|
str
|
The prefix of the model name e.g. "openai" or "my_prefix". |
required |
MultiProvider
Bases: ModelProvider
This ModelProvider maps to a Model based on the prefix of the model name. By default, the mapping is: - "openai/" prefix or no prefix -> OpenAIProvider. e.g. "openai/gpt-4.1", "gpt-4.1" - "litellm/" prefix -> LitellmProvider. e.g. "litellm/openai/gpt-4.1"
You can override or customize this mapping.
Source code in src/agents/models/multi_provider.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 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 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
|
__init__
__init__(
*,
provider_map: MultiProviderMap | None = None,
openai_api_key: str | None = None,
openai_base_url: str | None = None,
openai_client: AsyncOpenAI | None = None,
openai_organization: str | None = None,
openai_project: str | None = None,
openai_use_responses: bool | None = None,
) -> None
Create a new OpenAI provider.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
provider_map
|
MultiProviderMap | None
|
A MultiProviderMap that maps prefixes to ModelProviders. If not provided, we will use a default mapping. See the documentation for this class to see the default mapping. |
None
|
openai_api_key
|
str | None
|
The API key to use for the OpenAI provider. If not provided, we will use the default API key. |
None
|
openai_base_url
|
str | None
|
The base URL to use for the OpenAI provider. If not provided, we will use the default base URL. |
None
|
openai_client
|
AsyncOpenAI | None
|
An optional OpenAI client to use. If not provided, we will create a new OpenAI client using the api_key and base_url. |
None
|
openai_organization
|
str | None
|
The organization to use for the OpenAI provider. |
None
|
openai_project
|
str | None
|
The project to use for the OpenAI provider. |
None
|
openai_use_responses
|
bool | None
|
Whether to use the OpenAI responses API. |
None
|
Source code in src/agents/models/multi_provider.py
get_model
get_model(model_name: str | None) -> Model
Returns a Model based on the model name. The model name can have a prefix, ending with a "/", which will be used to look up the ModelProvider. If there is no prefix, we will use the OpenAI provider.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model_name
|
str | None
|
The name of the model to get. |
required |
Returns:
Type | Description |
---|---|
Model
|
A Model. |