mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-07 02:59:05 +00:00
fix(anthropic): preserve document blocks in guardrail write-back
This commit is contained in:
parent
7e80e094c4
commit
35912a2fb8
2 changed files with 46 additions and 0 deletions
|
|
@ -2418,6 +2418,24 @@ def anthropic_messages_pt(
|
|||
"url": image_url_value["url"],
|
||||
"format": image_url_value.get("format"),
|
||||
}
|
||||
url_str = (
|
||||
image_url_value.get("url") if isinstance(image_url_value, dict) else image_url_value
|
||||
)
|
||||
if isinstance(url_str, str) and _is_anthropic_document_data_uri(url_str):
|
||||
synth_file_message: ChatCompletionFileObject = {
|
||||
"type": "file",
|
||||
"file": {"file_data": url_str},
|
||||
}
|
||||
_document_content_element = anthropic_process_openai_file_message(synth_file_message)
|
||||
_document_content_element = add_cache_control_to_content(
|
||||
anthropic_content_element=cast(
|
||||
AnthropicMessagesDocumentParam,
|
||||
_document_content_element,
|
||||
),
|
||||
original_content_element=dict(m),
|
||||
)
|
||||
user_content.append(cast(AnthropicMessagesDocumentParam, _document_content_element))
|
||||
continue
|
||||
# Bedrock invoke models have format: invoke/...
|
||||
# Vertex AI Anthropic also doesn't support URL sources for images
|
||||
is_bedrock_invoke = model.lower().startswith("invoke/")
|
||||
|
|
|
|||
|
|
@ -2163,6 +2163,34 @@ def test_anthropic_messages_pt_file_block_without_cache_control():
|
|||
assert "cache_control" not in file_block
|
||||
|
||||
|
||||
def test_anthropic_messages_pt_maps_pdf_data_uri_to_document_block():
|
||||
messages = [
|
||||
{
|
||||
"role": "user",
|
||||
"content": [
|
||||
{
|
||||
"type": "image_url",
|
||||
"image_url": {"url": "data:application/pdf;base64,AAAA"},
|
||||
}
|
||||
],
|
||||
}
|
||||
]
|
||||
|
||||
result = anthropic_messages_pt(
|
||||
messages=messages,
|
||||
model="claude-sonnet-4-5",
|
||||
llm_provider="anthropic",
|
||||
)
|
||||
|
||||
document = result[0]["content"][0]
|
||||
assert document["type"] == "document"
|
||||
assert document["source"] == {
|
||||
"type": "base64",
|
||||
"media_type": "application/pdf",
|
||||
"data": "AAAA",
|
||||
}
|
||||
|
||||
|
||||
# ── _convert_to_bedrock_tool_call_invoke tests ──
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue