mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-06 02:48:13 +00:00
fix(anthropic): clarify loop-local cache marker state
This commit is contained in:
parent
2ca368d27d
commit
11b194e43b
1 changed files with 24 additions and 22 deletions
|
|
@ -2488,14 +2488,13 @@ def anthropic_messages_pt(
|
|||
for content in user_content[user_content_start:]
|
||||
)
|
||||
):
|
||||
cached_user_content: AnthropicMessagesUserMessageValues = copy.copy(user_content[-1]) # pyright: ignore[reportGeneralTypeIssues] # fresh copy per user message
|
||||
user_content[-1] = copy.copy(user_content[-1])
|
||||
add_cache_control_to_content(
|
||||
anthropic_content_element=cast( # cast-ok: copied TypedDict is a dict
|
||||
dict[str, object], cached_user_content
|
||||
dict[str, object], user_content[-1]
|
||||
),
|
||||
original_content_element=user_message_types_block,
|
||||
)
|
||||
user_content[-1] = cached_user_content
|
||||
elif isinstance(user_message_types_block["content"], str):
|
||||
_anthropic_content_text_element: AnthropicMessagesTextParam = {
|
||||
"type": "text",
|
||||
|
|
@ -2799,14 +2798,13 @@ def anthropic_messages_pt(
|
|||
for content in assistant_content[assistant_content_start:]
|
||||
)
|
||||
):
|
||||
cached_assistant_content: AnthropicMessagesAssistantMessageValues = copy.copy(assistant_content[-1]) # pyright: ignore[reportGeneralTypeIssues] # fresh copy per assistant message
|
||||
assistant_content[-1] = copy.copy(assistant_content[-1])
|
||||
add_cache_control_to_content(
|
||||
anthropic_content_element=cast( # cast-ok: copied TypedDict is a dict
|
||||
dict[str, object], cached_assistant_content
|
||||
dict[str, object], assistant_content[-1]
|
||||
),
|
||||
original_content_element=assistant_content_block,
|
||||
)
|
||||
assistant_content[-1] = cached_assistant_content
|
||||
|
||||
msg_i += 1
|
||||
|
||||
|
|
@ -4623,10 +4621,11 @@ class BedrockConverseMessagesProcessor:
|
|||
assistant_content.append(BedrockContentBlock(text=_assistant_content))
|
||||
# If content is empty/whitespace, skip it (don't add a placeholder)
|
||||
# Add cache point block for assistant string content
|
||||
assistant_message_cache_point_block = litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
) # pyright: ignore[reportGeneralTypeIssues] # reset per assistant message
|
||||
if assistant_message_cache_point_block is not None:
|
||||
if (
|
||||
assistant_message_cache_point_block := litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
)
|
||||
) is not None:
|
||||
assistant_content.append(assistant_message_cache_point_block)
|
||||
|
||||
_tool_calls = assistant_message_block.get("tool_calls", [])
|
||||
|
|
@ -4639,10 +4638,11 @@ class BedrockConverseMessagesProcessor:
|
|||
and assistant_message_block.get("cache_control") is not None
|
||||
and not any("cachePoint" in block for block in assistant_content[assistant_message_content_start:])
|
||||
):
|
||||
assistant_list_cache_point_block = litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
) # pyright: ignore[reportGeneralTypeIssues] # reset per assistant message
|
||||
if assistant_list_cache_point_block is not None:
|
||||
if (
|
||||
assistant_list_cache_point_block := litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
)
|
||||
) is not None:
|
||||
assistant_content.append(assistant_list_cache_point_block)
|
||||
|
||||
msg_i += 1
|
||||
|
|
@ -5023,10 +5023,11 @@ def _bedrock_converse_messages_pt(
|
|||
if _assistant_content.strip():
|
||||
assistant_content.append(BedrockContentBlock(text=_assistant_content))
|
||||
# Add cache point block for assistant string content
|
||||
assistant_message_cache_point_block = litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
) # pyright: ignore[reportGeneralTypeIssues] # reset per assistant message
|
||||
if assistant_message_cache_point_block is not None:
|
||||
if (
|
||||
assistant_message_cache_point_block := litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
)
|
||||
) is not None:
|
||||
assistant_content.append(assistant_message_cache_point_block)
|
||||
_tool_calls = assistant_message_block.get("tool_calls", [])
|
||||
if _tool_calls:
|
||||
|
|
@ -5038,10 +5039,11 @@ def _bedrock_converse_messages_pt(
|
|||
and assistant_message_block.get("cache_control") is not None
|
||||
and not any("cachePoint" in block for block in assistant_content[assistant_message_content_start:])
|
||||
):
|
||||
assistant_list_cache_point_block = litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
) # pyright: ignore[reportGeneralTypeIssues] # reset per assistant message
|
||||
if assistant_list_cache_point_block is not None:
|
||||
if (
|
||||
assistant_list_cache_point_block := litellm.AmazonConverseConfig().get_cache_point_block(
|
||||
assistant_message_block, block_type="content_block", model=model
|
||||
)
|
||||
) is not None:
|
||||
assistant_content.append(assistant_list_cache_point_block)
|
||||
|
||||
msg_i += 1
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue