From 5cc180ee4733f5c8bf6f3462228ed0bcf92e6ee3 Mon Sep 17 00:00:00 2001 From: cthomas Date: Thu, 19 Jun 2025 10:36:47 -0700 Subject: [PATCH] feat: rename aws env vars for bedrock (#2907) Co-authored-by: Andy Li <55300002+cliandy@users.noreply.github.com> --- letta/llm_api/aws_bedrock.py | 12 ++++++------ letta/schemas/providers.py | 4 ++-- letta/server/server.py | 4 ++-- letta/settings.py | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/letta/llm_api/aws_bedrock.py b/letta/llm_api/aws_bedrock.py index 1f3b8306..9f767397 100644 --- a/letta/llm_api/aws_bedrock.py +++ b/letta/llm_api/aws_bedrock.py @@ -10,14 +10,14 @@ def has_valid_aws_credentials() -> bool: """ Check if AWS credentials are properly configured. """ - valid_aws_credentials = os.getenv("AWS_ACCESS_KEY") and os.getenv("AWS_SECRET_ACCESS_KEY") and os.getenv("AWS_REGION") + valid_aws_credentials = os.getenv("AWS_ACCESS_KEY_ID") and os.getenv("AWS_SECRET_ACCESS_KEY") and os.getenv("AWS_DEFAULT_REGION") return valid_aws_credentials def get_bedrock_client( - access_key: Optional[str] = None, + access_key_id: Optional[str] = None, secret_key: Optional[str] = None, - region: Optional[str] = None, + default_region: Optional[str] = None, ): """ Get a Bedrock client @@ -26,9 +26,9 @@ def get_bedrock_client( sts_client = boto3.client( "sts", - aws_access_key_id=access_key or model_settings.aws_access_key, + aws_access_key_id=access_key_id or model_settings.aws_access_key_id, aws_secret_access_key=secret_key or model_settings.aws_secret_access_key, - region_name=region or model_settings.aws_region, + region_name=default_region or model_settings.aws_default_region, ) credentials = sts_client.get_session_token()["Credentials"] @@ -36,7 +36,7 @@ def get_bedrock_client( aws_access_key=credentials["AccessKeyId"], aws_secret_key=credentials["SecretAccessKey"], aws_session_token=credentials["SessionToken"], - aws_region=region or model_settings.aws_region, + aws_region=default_region or model_settings.aws_default_region, ) return bedrock diff --git a/letta/schemas/providers.py b/letta/schemas/providers.py index 9dbc756f..13179e16 100644 --- a/letta/schemas/providers.py +++ b/letta/schemas/providers.py @@ -1516,12 +1516,12 @@ class CohereProvider(OpenAIProvider): class AnthropicBedrockProvider(Provider): provider_type: Literal[ProviderType.bedrock] = Field(ProviderType.bedrock, description="The type of the provider.") provider_category: ProviderCategory = Field(ProviderCategory.base, description="The category of the provider (base or byok)") - aws_region: str = Field(..., description="AWS region for Bedrock") + region: str = Field(..., description="AWS region for Bedrock") def list_llm_models(self): from letta.llm_api.aws_bedrock import bedrock_get_model_list - models = bedrock_get_model_list(self.aws_region) + models = bedrock_get_model_list(self.region) configs = [] for model_summary in models: diff --git a/letta/server/server.py b/letta/server/server.py index 6d3fb0a0..378fb687 100644 --- a/letta/server/server.py +++ b/letta/server/server.py @@ -365,11 +365,11 @@ class SyncServer(Server): base_url=model_settings.vllm_api_base, ) ) - if model_settings.aws_access_key and model_settings.aws_secret_access_key and model_settings.aws_region: + if model_settings.aws_access_key_id and model_settings.aws_secret_access_key and model_settings.aws_default_region: self._enabled_providers.append( AnthropicBedrockProvider( name="bedrock", - aws_region=model_settings.aws_region, + region=model_settings.aws_default_region, ) ) # Attempt to enable LM Studio by default diff --git a/letta/settings.py b/letta/settings.py index c97ea4c8..eebc2919 100644 --- a/letta/settings.py +++ b/letta/settings.py @@ -95,9 +95,9 @@ class ModelSettings(BaseSettings): groq_api_key: Optional[str] = None # Bedrock - aws_access_key: Optional[str] = None + aws_access_key_id: Optional[str] = None aws_secret_access_key: Optional[str] = None - aws_region: Optional[str] = None + aws_default_region: Optional[str] = None bedrock_anthropic_version: Optional[str] = "bedrock-2023-05-31" # anthropic