mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-25 18:54:30 +00:00
Litellm dev bedrock anthropic 3 7 v2 (#8843)
* feat(bedrock/converse/transformation.py): support claude-3-7-sonnet reasoning_Content transformation Closes https://github.com/BerriAI/litellm/issues/8777 * fix(bedrock/): support returning `reasoning_content` on streaming for claude-3-7 Resolves https://github.com/BerriAI/litellm/issues/8777 * feat(bedrock/): unify converse reasoning content blocks for consistency across anthropic and bedrock * fix(anthropic/chat/transformation.py): handle deepseek-style 'reasoning_content' extraction within transformation.py simpler logic * feat(bedrock/): fix streaming to return blocks in consistent format * fix: fix linting error * test: fix test * feat(factory.py): fix bedrock thinking block translation on tool calling allows passing the thinking blocks back to bedrock for tool calling * fix(types/utils.py): don't exclude provider_specific_fields on model dump ensures consistent responses * fix: fix linting errors * fix(convert_dict_to_response.py): pass reasoning_content on root * fix: test * fix(streaming_handler.py): add helper util for setting model id * fix(streaming_handler.py): fix setting model id on model response stream chunk * fix(streaming_handler.py): fix linting error * fix(streaming_handler.py): fix linting error * fix(types/utils.py): add provider_specific_fields to model stream response * fix(streaming_handler.py): copy provider specific fields and add them to the root of the streaming response * fix(streaming_handler.py): fix check * fix: fix test * fix(types/utils.py): ensure messages content is always openai compatible * fix(types/utils.py): fix delta object to always be openai compatible only introduce new params if variable exists * test: fix bedrock nova tests * test: skip flaky test * test: skip flaky test in ci/cd
This commit is contained in:
parent
40a3af7d61
commit
ab7c4d1a0e
20 changed files with 447 additions and 149 deletions
|
@ -1970,25 +1970,31 @@ def test_get_applied_guardrails(test_case):
|
|||
# Assert
|
||||
assert sorted(result) == sorted(test_case["expected"])
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"endpoint, params, expected_bool",
|
||||
[
|
||||
("localhost:4000/v1/rerank", ["max_chunks_per_doc"], True),
|
||||
("localhost:4000/v2/rerank", ["max_chunks_per_doc"], False),
|
||||
("localhost:4000", ["max_chunks_per_doc"], True),
|
||||
|
||||
("localhost:4000/v1/rerank", ["max_tokens_per_doc"], True),
|
||||
("localhost:4000/v2/rerank", ["max_tokens_per_doc"], False),
|
||||
("localhost:4000", ["max_tokens_per_doc"], False),
|
||||
|
||||
("localhost:4000/v1/rerank", ["max_chunks_per_doc", "max_tokens_per_doc"], True),
|
||||
("localhost:4000/v2/rerank", ["max_chunks_per_doc", "max_tokens_per_doc"], False),
|
||||
(
|
||||
"localhost:4000/v1/rerank",
|
||||
["max_chunks_per_doc", "max_tokens_per_doc"],
|
||||
True,
|
||||
),
|
||||
(
|
||||
"localhost:4000/v2/rerank",
|
||||
["max_chunks_per_doc", "max_tokens_per_doc"],
|
||||
False,
|
||||
),
|
||||
("localhost:4000", ["max_chunks_per_doc", "max_tokens_per_doc"], False),
|
||||
|
||||
],
|
||||
)
|
||||
def test_should_use_cohere_v1_client(endpoint, params, expected_bool):
|
||||
assert(litellm.utils.should_use_cohere_v1_client(endpoint, params) == expected_bool)
|
||||
assert litellm.utils.should_use_cohere_v1_client(endpoint, params) == expected_bool
|
||||
|
||||
|
||||
def test_add_openai_metadata():
|
||||
|
@ -2008,3 +2014,24 @@ def test_add_openai_metadata():
|
|||
assert result == {
|
||||
"user_api_key_end_user_id": "123",
|
||||
}
|
||||
|
||||
|
||||
def test_message_object():
|
||||
from litellm.types.utils import Message
|
||||
|
||||
message = Message(content="Hello, world!", role="user")
|
||||
assert message.content == "Hello, world!"
|
||||
assert message.role == "user"
|
||||
assert not hasattr(message, "audio")
|
||||
assert not hasattr(message, "thinking_blocks")
|
||||
assert not hasattr(message, "reasoning_content")
|
||||
|
||||
|
||||
def test_delta_object():
|
||||
from litellm.types.utils import Delta
|
||||
|
||||
delta = Delta(content="Hello, world!", role="user")
|
||||
assert delta.content == "Hello, world!"
|
||||
assert delta.role == "user"
|
||||
assert not hasattr(delta, "thinking_blocks")
|
||||
assert not hasattr(delta, "reasoning_content")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue