(self)
| 244 | return auth.config, auth |
| 245 | |
| 246 | def configure(self) -> _ProviderRuntime: |
| 247 | def environment_token() -> str: |
| 248 | token = os.environ.get("AWS_BEARER_TOKEN_BEDROCK") |
| 249 | if not token: |
| 250 | raise OpenAIError( |
| 251 | "Could not find credentials for Bedrock. Pass a bearer credential or AWS credentials to " |
| 252 | "`bedrock(...)`, set `AWS_BEARER_TOKEN_BEDROCK`, or configure the default AWS credential chain." |
| 253 | ) |
| 254 | return token |
| 255 | |
| 256 | auth: _BedrockBearerAuth | _BedrockSigV4Auth | None = None |
| 257 | bearer_provider: BedrockTokenProvider | None = None |
| 258 | if self.api_key is not None: |
| 259 | bearer_provider = lambda: self.api_key or "" |
| 260 | region = self.configured_region |
| 261 | elif self.token_provider is not None: |
| 262 | bearer_provider = self.token_provider |
| 263 | region = self.configured_region |
| 264 | elif self.use_environment_bearer: |
| 265 | bearer_provider = environment_token |
| 266 | region = self.configured_region |
| 267 | else: |
| 268 | aws_config, aws_auth = self._resolve_aws_auth() |
| 269 | region = aws_config.region |
| 270 | base_url = self.configured_base_url or _normalize_base_url( |
| 271 | f"https://bedrock-mantle.{region}.api.aws/openai/v1" |
| 272 | ) |
| 273 | auth = _BedrockSigV4Auth(config=aws_config, base_url=base_url, auth=aws_auth) |
| 274 | |
| 275 | if self.configured_base_url is not None: |
| 276 | base_url = self.configured_base_url |
| 277 | elif region is not None: |
| 278 | base_url = _normalize_base_url(f"https://bedrock-mantle.{region}.api.aws/openai/v1") |
| 279 | else: |
| 280 | raise OpenAIError( |
| 281 | "Bedrock requires an AWS region. Pass `region` to `bedrock(...)`, or set `AWS_REGION` or " |
| 282 | "`AWS_DEFAULT_REGION`." |
| 283 | ) |
| 284 | |
| 285 | if bearer_provider is not None: |
| 286 | auth = _BedrockBearerAuth(bearer_provider, base_url=base_url) |
| 287 | |
| 288 | assert auth is not None |
| 289 | if isinstance(auth, _BedrockSigV4Auth): |
| 290 | return _BedrockProviderRuntime( |
| 291 | name=self.name, |
| 292 | base_url=base_url, |
| 293 | region=region, |
| 294 | transform_request=_without_redirects, |
| 295 | prepare_request=auth.prepare_request, |
| 296 | prepare_async_request=auth.prepare_async_request, |
| 297 | ) |
| 298 | |
| 299 | return _BedrockProviderRuntime( |
| 300 | name=self.name, |
| 301 | base_url=base_url, |
| 302 | region=region, |
| 303 | prepare_request=auth.prepare_request, |
nothing calls this directly
no test coverage detected