forked from phoenix/litellm-mirror
unit testing for test_convert_tool_response_to_message_no_arguments
This commit is contained in:
parent
d77fd30f2f
commit
26f7a6b7a2
1 changed files with 91 additions and 1 deletions
|
@ -33,8 +33,10 @@ from litellm import (
|
||||||
)
|
)
|
||||||
from litellm.adapters.anthropic_adapter import anthropic_adapter
|
from litellm.adapters.anthropic_adapter import anthropic_adapter
|
||||||
from litellm.types.llms.anthropic import AnthropicResponse
|
from litellm.types.llms.anthropic import AnthropicResponse
|
||||||
|
from litellm.types.utils import GenericStreamingChunk, ChatCompletionToolCallChunk
|
||||||
|
from litellm.types.llms.openai import ChatCompletionToolCallFunctionChunk
|
||||||
from litellm.llms.anthropic.common_utils import process_anthropic_headers
|
from litellm.llms.anthropic.common_utils import process_anthropic_headers
|
||||||
|
from litellm.llms.anthropic.chat.handler import AnthropicChatCompletion
|
||||||
from httpx import Headers
|
from httpx import Headers
|
||||||
from base_llm_unit_tests import BaseLLMChatTest
|
from base_llm_unit_tests import BaseLLMChatTest
|
||||||
|
|
||||||
|
@ -694,3 +696,91 @@ class TestAnthropicCompletion(BaseLLMChatTest):
|
||||||
assert _document_validation["type"] == "document"
|
assert _document_validation["type"] == "document"
|
||||||
assert _document_validation["source"]["media_type"] == "application/pdf"
|
assert _document_validation["source"]["media_type"] == "application/pdf"
|
||||||
assert _document_validation["source"]["type"] == "base64"
|
assert _document_validation["source"]["type"] == "base64"
|
||||||
|
|
||||||
|
|
||||||
|
def test_convert_tool_response_to_message_with_values():
|
||||||
|
"""Test converting a tool response with 'values' key to a message"""
|
||||||
|
tool_calls = [
|
||||||
|
ChatCompletionToolCallChunk(
|
||||||
|
id="test_id",
|
||||||
|
type="function",
|
||||||
|
function=ChatCompletionToolCallFunctionChunk(
|
||||||
|
name="json_tool_call",
|
||||||
|
arguments='{"values": {"name": "John", "age": 30}}',
|
||||||
|
),
|
||||||
|
index=0,
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
message = AnthropicChatCompletion._convert_tool_response_to_message(
|
||||||
|
tool_calls=tool_calls
|
||||||
|
)
|
||||||
|
|
||||||
|
assert message is not None
|
||||||
|
assert message.content == '{"name": "John", "age": 30}'
|
||||||
|
|
||||||
|
|
||||||
|
def test_convert_tool_response_to_message_without_values():
|
||||||
|
"""
|
||||||
|
Test converting a tool response without 'values' key to a message
|
||||||
|
|
||||||
|
Anthropic API returns the JSON schema in the tool call, OpenAI Spec expects it in the message. This test ensures that the tool call is converted to a message correctly.
|
||||||
|
|
||||||
|
Relevant issue: https://github.com/BerriAI/litellm/issues/6741
|
||||||
|
"""
|
||||||
|
tool_calls = [
|
||||||
|
ChatCompletionToolCallChunk(
|
||||||
|
id="test_id",
|
||||||
|
type="function",
|
||||||
|
function=ChatCompletionToolCallFunctionChunk(
|
||||||
|
name="json_tool_call", arguments='{"name": "John", "age": 30}'
|
||||||
|
),
|
||||||
|
index=0,
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
message = AnthropicChatCompletion._convert_tool_response_to_message(
|
||||||
|
tool_calls=tool_calls
|
||||||
|
)
|
||||||
|
|
||||||
|
assert message is not None
|
||||||
|
assert message.content == '{"name": "John", "age": 30}'
|
||||||
|
|
||||||
|
|
||||||
|
def test_convert_tool_response_to_message_invalid_json():
|
||||||
|
"""Test converting a tool response with invalid JSON"""
|
||||||
|
tool_calls = [
|
||||||
|
ChatCompletionToolCallChunk(
|
||||||
|
id="test_id",
|
||||||
|
type="function",
|
||||||
|
function=ChatCompletionToolCallFunctionChunk(
|
||||||
|
name="json_tool_call", arguments="invalid json"
|
||||||
|
),
|
||||||
|
index=0,
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
message = AnthropicChatCompletion._convert_tool_response_to_message(
|
||||||
|
tool_calls=tool_calls
|
||||||
|
)
|
||||||
|
|
||||||
|
assert message is not None
|
||||||
|
assert message.content == "invalid json"
|
||||||
|
|
||||||
|
|
||||||
|
def test_convert_tool_response_to_message_no_arguments():
|
||||||
|
"""Test converting a tool response with no arguments"""
|
||||||
|
tool_calls = [
|
||||||
|
ChatCompletionToolCallChunk(
|
||||||
|
id="test_id",
|
||||||
|
type="function",
|
||||||
|
function=ChatCompletionToolCallFunctionChunk(name="json_tool_call"),
|
||||||
|
index=0,
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
message = AnthropicChatCompletion._convert_tool_response_to_message(
|
||||||
|
tool_calls=tool_calls
|
||||||
|
)
|
||||||
|
|
||||||
|
assert message is None
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue