mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-25 02:34:29 +00:00
This reverts commit a8673246dc
.
This commit is contained in:
parent
b37cb642c1
commit
46b3dbde8f
2 changed files with 2 additions and 145 deletions
|
@ -141,15 +141,9 @@ class AnthropicConfig(BaseConfig):
|
|||
if user_anthropic_beta_headers is not None:
|
||||
betas.update(user_anthropic_beta_headers)
|
||||
|
||||
# Handle beta headers for Vertex AI
|
||||
# We allow prompt caching beta header for Vertex, but exclude other beta headers that might cause issues
|
||||
# Don't send any beta headers to Vertex, Vertex has failed requests when they are sent
|
||||
if is_vertex_request is True:
|
||||
vertex_safe_betas = set()
|
||||
# Allow prompt caching beta header for Vertex
|
||||
if "prompt-caching-2024-07-31" in betas:
|
||||
vertex_safe_betas.add("prompt-caching-2024-07-31")
|
||||
if len(vertex_safe_betas) > 0:
|
||||
headers["anthropic-beta"] = ",".join(vertex_safe_betas)
|
||||
pass
|
||||
elif len(betas) > 0:
|
||||
headers["anthropic-beta"] = ",".join(betas)
|
||||
|
||||
|
|
|
@ -1,137 +0,0 @@
|
|||
import os
|
||||
import sys
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
sys.path.insert(
|
||||
0, os.path.abspath("../../../..")
|
||||
) # Adds the parent directory to the system path
|
||||
|
||||
from litellm.llms.anthropic.chat.transformation import AnthropicConfig
|
||||
|
||||
|
||||
def test_anthropic_prompt_caching_headers_for_vertex():
|
||||
"""
|
||||
Test that the prompt caching beta header is correctly set for Vertex AI requests
|
||||
with Anthropic models when cache control is present in the messages.
|
||||
"""
|
||||
# Create an instance of AnthropicConfig
|
||||
config = AnthropicConfig()
|
||||
|
||||
# Test case 1: Vertex request with prompt caching
|
||||
# Create a message with cache control
|
||||
messages = [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "You are a helpful assistant.",
|
||||
"cache_control": {"type": "ephemeral"}
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Tell me about the solar system."
|
||||
}
|
||||
]
|
||||
|
||||
# Check if cache control is detected
|
||||
is_cache_control_set = config.is_cache_control_set(messages=messages)
|
||||
assert is_cache_control_set is True, "Cache control should be detected in messages"
|
||||
|
||||
# Generate headers for a Vertex AI request with prompt caching
|
||||
headers = config.get_anthropic_headers(
|
||||
api_key="test-api-key",
|
||||
prompt_caching_set=is_cache_control_set,
|
||||
is_vertex_request=True
|
||||
)
|
||||
|
||||
# Verify that the anthropic-beta header is set with prompt-caching-2024-07-31
|
||||
assert "anthropic-beta" in headers, "anthropic-beta header should be present"
|
||||
assert "prompt-caching-2024-07-31" in headers["anthropic-beta"], "prompt-caching-2024-07-31 should be in the beta header"
|
||||
|
||||
# Test case 2: Vertex request without prompt caching
|
||||
messages_without_cache = [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "You are a helpful assistant."
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Tell me about the solar system."
|
||||
}
|
||||
]
|
||||
|
||||
# Check if cache control is detected
|
||||
is_cache_control_set = config.is_cache_control_set(messages=messages_without_cache)
|
||||
assert is_cache_control_set is False, "Cache control should not be detected in messages"
|
||||
|
||||
# Generate headers for a Vertex AI request without prompt caching
|
||||
headers = config.get_anthropic_headers(
|
||||
api_key="test-api-key",
|
||||
prompt_caching_set=is_cache_control_set,
|
||||
is_vertex_request=True
|
||||
)
|
||||
|
||||
# Verify that the anthropic-beta header is not set
|
||||
assert "anthropic-beta" not in headers, "anthropic-beta header should not be present"
|
||||
|
||||
|
||||
def test_anthropic_prompt_caching_with_content_blocks():
|
||||
"""
|
||||
Test that prompt caching is correctly detected when cache control is in content blocks.
|
||||
"""
|
||||
config = AnthropicConfig()
|
||||
|
||||
# Message with cache control in content blocks
|
||||
messages = [
|
||||
{
|
||||
"role": "system",
|
||||
"content": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "You are a helpful assistant.",
|
||||
"cache_control": {"type": "ephemeral"}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Tell me about the solar system."
|
||||
}
|
||||
]
|
||||
|
||||
# Check if cache control is detected
|
||||
is_cache_control_set = config.is_cache_control_set(messages=messages)
|
||||
assert is_cache_control_set is True, "Cache control should be detected in content blocks"
|
||||
|
||||
# Generate headers for a Vertex AI request with prompt caching
|
||||
headers = config.get_anthropic_headers(
|
||||
api_key="test-api-key",
|
||||
prompt_caching_set=is_cache_control_set,
|
||||
is_vertex_request=True
|
||||
)
|
||||
|
||||
# Verify that the anthropic-beta header is set with prompt-caching-2024-07-31
|
||||
assert "anthropic-beta" in headers, "anthropic-beta header should be present"
|
||||
assert "prompt-caching-2024-07-31" in headers["anthropic-beta"], "prompt-caching-2024-07-31 should be in the beta header"
|
||||
|
||||
|
||||
def test_anthropic_vertex_other_beta_headers():
|
||||
"""
|
||||
Test that other beta headers are not included for Vertex AI requests.
|
||||
"""
|
||||
config = AnthropicConfig()
|
||||
|
||||
# Generate headers with multiple beta features
|
||||
headers = config.get_anthropic_headers(
|
||||
api_key="test-api-key",
|
||||
prompt_caching_set=True,
|
||||
computer_tool_used=True, # This should be excluded for Vertex
|
||||
pdf_used=True, # This should be excluded for Vertex
|
||||
is_vertex_request=True
|
||||
)
|
||||
|
||||
# Verify that only prompt-caching is included in the beta header
|
||||
assert "anthropic-beta" in headers, "anthropic-beta header should be present"
|
||||
assert headers["anthropic-beta"] == "prompt-caching-2024-07-31", "Only prompt-caching should be in the beta header"
|
||||
assert "computer-use-2024-10-22" not in headers["anthropic-beta"], "computer-use beta should not be included"
|
||||
assert "pdfs-2024-09-25" not in headers["anthropic-beta"], "pdfs beta should not be included"
|
Loading…
Add table
Add a link
Reference in a new issue