This commit is contained in:
Krishnatejaswi S 2026-10-30 18:58:50 +05:30 • committed by GitHub
commit a15abfcef6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 23 deletions

View file

@ -22,7 +22,6 @@ from litellm.llms.custom_httpx.http_handler import (
get_async_httpx_client,
get_httpx_client,
)
from litellm.secret_managers.main import get_secret
from litellm.types.llms.bedrock import (
AmazonEmbeddingRequest,
CohereEmbeddingRequest,
@ -101,23 +100,8 @@ class BedrockEmbedding(BaseAWSLLM):
) -> tuple[Credentials | None, str]:
auth_params: Final = pop_aws_auth_params(optional_params)
explicit_region_name: Final = optional_params.pop("aws_region_name", None)
aws_region_name = region_from_model if explicit_region_name is None else explicit_region_name
### SET REGION NAME ###
if aws_region_name is None:
# check env #
litellm_aws_region_name: Final = get_secret("AWS_REGION_NAME", None)
if litellm_aws_region_name is not None and isinstance(litellm_aws_region_name, str):
aws_region_name = litellm_aws_region_name
standard_aws_region_name: Final = get_secret("AWS_REGION", None)
if standard_aws_region_name is not None and isinstance(standard_aws_region_name, str):
aws_region_name = standard_aws_region_name
if aws_region_name is None:
aws_region_name = "us-west-2"
requested_region: Final = region_from_model if explicit_region_name is None else explicit_region_name
aws_region_name: Final = self._get_aws_region_name(optional_params={"aws_region_name": requested_region})
credentials: Final[Credentials | None] = (
None if bearer_token is not None else self.resolve_credentials(auth_params, aws_region_name)
)
@ -446,11 +430,6 @@ class BedrockEmbedding(BaseAWSLLM):
### TRANSFORMATION ###
unencoded_model_id: Final = model_id_param or bedrock_model
modelId: Final = urllib.parse.quote(unencoded_model_id, safe="")
aws_region_name = self._get_aws_region_name(
optional_params={"aws_region_name": aws_region_name},
model=bedrock_model,
model_id=unencoded_model_id,
)
provider: Final = self.get_bedrock_embedding_provider(bedrock_model)
if provider is None:
raise Exception(

View file

@ -1,6 +1,7 @@
import json
import asyncio
import os
from pathlib import Path
from typing import Final
from unittest.mock import Mock, patch
from unittest.mock import AsyncMock, MagicMock
@ -302,6 +303,25 @@ def test_bedrock_embedding_plain_model_id_calls_the_env_region_like_chat(
assert route.call_count == 1
def test_bedrock_embedding_calls_the_boto3_session_region_like_chat(
respx_mock: respx.MockRouter,
monkeypatch: pytest.MonkeyPatch,
tmp_path: Path,
) -> None:
for name in ("AWS_REGION_NAME", "AWS_REGION", "AWS_PROFILE"):
monkeypatch.delenv(name, raising=False)
monkeypatch.setenv("AWS_CONFIG_FILE", str(tmp_path / "no-aws-config"))
monkeypatch.setenv("AWS_DEFAULT_REGION", "ap-south-1")
route: Final = respx_mock.post(url__regex=r"^https://bedrock-runtime\.[a-z0-9-]+\.amazonaws\.com/").mock(
return_value=httpx.Response(200, json=titan_embedding_response)
)
litellm.embedding(model="bedrock/amazon.titan-embed-text-v2:0", input=[test_input], api_key="test-bearer-token")
sent_to: Final = route.calls.last.request.url
assert sent_to.host == "bedrock-runtime.ap-south-1.amazonaws.com", str(sent_to)
def test_bedrock_embedding_rejects_an_empty_aws_region_name_instead_of_using_the_path_region(
respx_mock: respx.MockRouter,
) -> None: