fix: refactor auth and improve error handling for Bedrock provider

Refactor to use auth_credential for consistent credential management and
improve error handling with defensive checks.

Changes:
- Use auth_credential instead of api_key for better credential handling
- Simplify model availability check to accept all pre-registered models
- Guard metrics collection when usage data is missing in responses
- Add debug logging for better troubleshooting of API issues
- Update unit tests for auth_credential refactoring
This commit is contained in:
skamenan7 2025-10-29 14:07:17 -04:00
parent dc27537cce
commit 454aeaaf3e
6 changed files with 51 additions and 40 deletions

View file

@ -19,7 +19,7 @@ def test_adapter_initialization():
config = BedrockConfig(api_key="test-key", region_name="us-east-1")
adapter = BedrockInferenceAdapter(config=config)
assert adapter.config.api_key == "test-key"
assert adapter.config.auth_credential.get_secret_value() == "test-key"
assert adapter.config.region_name == "us-east-1"
@ -28,15 +28,15 @@ def test_client_url_construction():
adapter = BedrockInferenceAdapter(config=config)
assert adapter.get_base_url() == "https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1"
assert adapter.get_api_key() == "test-key"
def test_api_key_from_config():
"""Test API key is read from config"""
"""Test API key is stored as SecretStr in auth_credential"""
config = BedrockConfig(api_key="config-key", region_name="us-east-1")
adapter = BedrockInferenceAdapter(config=config)
assert adapter.get_api_key() == "config-key"
# API key is stored in auth_credential field (SecretStr)
assert adapter.config.auth_credential.get_secret_value() == "config-key"
def test_api_key_from_header_overrides_config():