chore: delete legacy bedrock client (#3912)

This commit is contained in:
cthomas
2025-08-13 16:20:48 -07:00
committed by GitHub
parent cdd4815af4
commit 63738ffa0c
2 changed files with 28 additions and 106 deletions

View File

@@ -1,90 +0,0 @@
"""
Note that this formally only supports Anthropic Bedrock.
TODO (cliandy): determine what other providers are supported and what is needed to add support.
"""
from typing import Any, Optional
from anthropic import AnthropicBedrock
from letta.log import get_logger
from letta.settings import model_settings
logger = get_logger(__name__)
def get_bedrock_client(
access_key_id: Optional[str] = None,
secret_key: Optional[str] = None,
default_region: Optional[str] = None,
):
"""
Get a Bedrock client
"""
import boto3
sts_client = boto3.client(
"sts",
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=default_region or model_settings.aws_default_region,
)
credentials = sts_client.get_session_token()["Credentials"]
bedrock = AnthropicBedrock(
aws_access_key=credentials["AccessKeyId"],
aws_secret_key=credentials["SecretAccessKey"],
aws_session_token=credentials["SessionToken"],
aws_region=default_region or model_settings.aws_default_region,
)
return bedrock
async def bedrock_get_model_list_async(
access_key_id: Optional[str] = None,
secret_access_key: Optional[str] = None,
default_region: Optional[str] = None,
) -> list[dict]:
from aioboto3.session import Session
try:
session = Session()
async with session.client(
"bedrock",
aws_access_key_id=access_key_id,
aws_secret_access_key=secret_access_key,
region_name=default_region,
) as bedrock:
response = await bedrock.list_inference_profiles()
return response["inferenceProfileSummaries"]
except Exception as e:
logger.error(f"Error getting model list for bedrock: %s", e)
raise e
def bedrock_get_model_details(region_name: str, model_id: str) -> dict[str, Any]:
"""
Get details for a specific model from Bedrock.
"""
import boto3
from botocore.exceptions import ClientError
try:
bedrock = boto3.client("bedrock", region_name=region_name)
response = bedrock.get_foundation_model(modelIdentifier=model_id)
return response["modelDetails"]
except ClientError as e:
logger.exception(f"Error getting model details: {str(e)}")
raise e
def bedrock_get_model_context_window(model_id: str) -> int:
"""
Get context window size for a specific model.
"""
# Bedrock doesn't provide this via API, so we maintain a mapping
# 200k for anthropic: https://aws.amazon.com/bedrock/anthropic/
if model_id.startswith("anthropic"):
return 200_000
else:
return 100_000 # default to 100k if unknown