mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-06 02:48:13 +00:00
Merge af25b699a5 into 49affa7c01
This commit is contained in:
commit
1365ab1907
2 changed files with 105 additions and 0 deletions
|
|
@ -1885,6 +1885,21 @@ def get_model_from_request(
|
|||
if vertex_match:
|
||||
model = vertex_match.group(1)
|
||||
|
||||
if route.lower().startswith("/bedrock"):
|
||||
bedrock_endpoint = re.sub(r"^/bedrock/", "", route, flags=re.IGNORECASE)
|
||||
is_bedrock_count_tokens_route = (
|
||||
"count_tokens" in bedrock_endpoint.lower() or "count-tokens" in bedrock_endpoint.lower()
|
||||
)
|
||||
if not is_bedrock_count_tokens_route:
|
||||
from litellm.proxy.pass_through_endpoints.llm_passthrough_endpoints import (
|
||||
_extract_model_from_bedrock_endpoint,
|
||||
)
|
||||
|
||||
try:
|
||||
model = _extract_model_from_bedrock_endpoint(bedrock_endpoint)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
return model
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -428,6 +428,96 @@ def test_get_model_from_request_openai_deployment_route_still_works():
|
|||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_converse_passthrough():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={},
|
||||
route="/bedrock/model/us.anthropic.claude-sonnet-4-6/converse",
|
||||
)
|
||||
== "us.anthropic.claude-sonnet-4-6"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_invoke_passthrough():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={},
|
||||
route="/bedrock/model/us.anthropic.claude-sonnet-4-6/invoke",
|
||||
)
|
||||
== "us.anthropic.claude-sonnet-4-6"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_v2_converse_stream_passthrough():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={},
|
||||
route="/bedrock/v2/model/us.anthropic.claude-sonnet-4-6/converse-stream",
|
||||
)
|
||||
== "us.anthropic.claude-sonnet-4-6"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_model_id_with_slashes():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={},
|
||||
route="/bedrock/model/aws/anthropic/model-name/invoke",
|
||||
)
|
||||
== "aws/anthropic/model-name"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_unparseable_endpoint_returns_none():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={},
|
||||
route="/bedrock/agents/some-agent-route",
|
||||
)
|
||||
is None
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_url_model_overrides_body_model():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={"model": "us.anthropic.claude-sonnet-4-6"},
|
||||
route="/bedrock/model/us.anthropic.claude-opus-4-6-v1/converse",
|
||||
)
|
||||
== "us.anthropic.claude-opus-4-6-v1"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_invoke_url_model_overrides_body_model():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={"model": "us.anthropic.claude-sonnet-4-6"},
|
||||
route="/bedrock/model/us.anthropic.claude-opus-4-6-v1/invoke",
|
||||
)
|
||||
== "us.anthropic.claude-opus-4-6-v1"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_count_tokens_uses_body_model():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={"model": "us.anthropic.claude-sonnet-4-6"},
|
||||
route="/bedrock/v1/messages/count_tokens",
|
||||
)
|
||||
== "us.anthropic.claude-sonnet-4-6"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_bedrock_unparseable_endpoint_keeps_body_model():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
request_data={"model": "us.anthropic.claude-sonnet-4-6"},
|
||||
route="/bedrock/agents/some-agent-route",
|
||||
)
|
||||
== "us.anthropic.claude-sonnet-4-6"
|
||||
)
|
||||
|
||||
|
||||
def test_get_model_from_request_includes_file_endpoint_header_model():
|
||||
assert (
|
||||
get_model_from_request(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue