MCPcopy
hub / github.com/openai/openai-python / _legacy_provider

Function _legacy_provider

src/openai/lib/bedrock.py:114–192  ·  view source on GitHub ↗
(
    *,
    api_key: str | None,
    token_provider: BedrockTokenProvider | AsyncBedrockTokenProvider | None,
    aws_region: str | None,
    aws_profile: str | None,
    aws_access_key_id: str | None,
    aws_secret_access_key: str | None,
    aws_session_token: str | None,
    aws_credentials_provider: AwsCredentialsProvider | None,
    base_url: str | httpx.URL | None,
    region_was_explicit: bool | None = None,
)

Source from the content-addressed store, hash-verified

112
113
114def _legacy_provider(
115 *,
116 api_key: str | None,
117 token_provider: BedrockTokenProvider | AsyncBedrockTokenProvider | None,
118 aws_region: str | None,
119 aws_profile: str | None,
120 aws_access_key_id: str | None,
121 aws_secret_access_key: str | None,
122 aws_session_token: str | None,
123 aws_credentials_provider: AwsCredentialsProvider | None,
124 base_url: str | httpx.URL | None,
125 region_was_explicit: bool | None = None,
126) -> tuple[_Provider, _LegacyBedrockState, str]:
127 if callable(cast(object, api_key)):
128 raise OpenAIError("Pass refreshable Bedrock credentials via `bedrock_token_provider`, not `api_key`.")
129 if api_key == "":
130 raise OpenAIError("The `api_key` argument must not be empty.")
131 if api_key is not None and token_provider is not None:
132 raise OpenAIError(
133 "Bedrock authentication is ambiguous. Configure exactly one explicit mode: bearer credential, "
134 "static AWS credentials, profile, or credential provider."
135 )
136
137 explicit_aws_auth = _has_explicit_aws_auth(
138 aws_profile=aws_profile,
139 aws_access_key_id=aws_access_key_id,
140 aws_secret_access_key=aws_secret_access_key,
141 aws_session_token=aws_session_token,
142 aws_credentials_provider=aws_credentials_provider,
143 )
144 if (api_key is not None or token_provider is not None) and explicit_aws_auth:
145 raise OpenAIError(
146 "Bedrock authentication is ambiguous. Configure exactly one explicit mode: bearer credential, "
147 "static AWS credentials, profile, or credential provider."
148 )
149
150 environment_token = os.environ.get("AWS_BEARER_TOKEN_BEDROCK")
151 uses_environment_bearer = (
152 api_key is None and token_provider is None and not explicit_aws_auth and bool(environment_token)
153 )
154 resolved_region = _configured_region(aws_region)
155 uses_region_derived_base_url = _uses_region_derived_base_url(base_url)
156
157 provider_base_url: str | httpx.URL | None | NotGiven
158 if isinstance(base_url, str) and not base_url.strip():
159 provider_base_url = None
160 elif base_url is None:
161 provider_base_url = NOT_GIVEN
162 else:
163 provider_base_url = base_url
164
165 provider = bedrock(
166 region=aws_region,
167 base_url=provider_base_url,
168 api_key=api_key if api_key is not None else environment_token if uses_environment_bearer else NOT_GIVEN,
169 token_provider=token_provider,
170 access_key_id=aws_access_key_id,
171 secret_access_key=aws_secret_access_key,

Callers 2

__init__Method · 0.85
__init__Method · 0.85

Calls 7

OpenAIErrorClass · 0.85
_has_explicit_aws_authFunction · 0.85
_configured_regionFunction · 0.85
bedrockFunction · 0.85
_LegacyBedrockStateClass · 0.85
getMethod · 0.45

Tested by

no test coverage detected