mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-15 09:12:18 +00:00
fix(bedrock): preserve tool reference results
This commit is contained in:
parent
c8635ecc67
commit
d8135c5d7b
2 changed files with 49 additions and 2 deletions
|
|
@ -3795,7 +3795,12 @@ def _build_bedrock_tool_result_content_blocks(
|
|||
if isinstance(message_content, str):
|
||||
return [BedrockToolResultContentBlock(text=message_content)], False
|
||||
if isinstance(message_content, list):
|
||||
return _parse_bedrock_tool_result_content_list(message_content), False
|
||||
parsed_content: Final = _parse_bedrock_tool_result_content_list(message_content)
|
||||
if parsed_content:
|
||||
return parsed_content, False
|
||||
if any(content.get("type") == "tool_reference" for content in message_content):
|
||||
return [BedrockToolResultContentBlock(text="")], False
|
||||
return parsed_content, False
|
||||
return [], False
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import base64
|
|||
import json
|
||||
import logging
|
||||
import os
|
||||
from typing import Final
|
||||
from typing import Final, cast
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
|
@ -55,6 +55,48 @@ def test_ollama_pt_simple_messages():
|
|||
assert result["images"] == []
|
||||
|
||||
|
||||
def test_bedrock_converse_tool_reference_result_keeps_empty_result():
|
||||
messages = [
|
||||
{
|
||||
"role": "assistant",
|
||||
"content": None,
|
||||
"tool_calls": [
|
||||
{
|
||||
"id": "toolu_01",
|
||||
"type": "function",
|
||||
"function": {"name": "ToolSearch", "arguments": "{}"},
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
"role": "tool",
|
||||
"tool_call_id": "toolu_01",
|
||||
"content": [{"type": "tool_reference", "tool_name": "mcp__deferred__search"}],
|
||||
},
|
||||
]
|
||||
|
||||
translated: Final[list[dict[str, object]]] = cast(
|
||||
list[dict[str, object]], _bedrock_converse_messages_pt(messages=messages, model="", llm_provider="")
|
||||
)
|
||||
|
||||
assert translated[1]["content"] == [{"toolResult": {"content": [{"text": ""}], "toolUseId": "toolu_01"}}]
|
||||
|
||||
|
||||
def test_bedrock_converse_tool_reference_result_preserves_text_content():
|
||||
message = {
|
||||
"role": "tool",
|
||||
"tool_call_id": "toolu_01",
|
||||
"content": [
|
||||
{"type": "text", "text": "loaded"},
|
||||
{"type": "tool_reference", "tool_name": "mcp__deferred__search"},
|
||||
],
|
||||
}
|
||||
|
||||
result: Final[dict[str, object]] = cast(dict[str, object], _convert_to_bedrock_tool_call_result(message))
|
||||
|
||||
assert result == {"toolResult": {"content": [{"text": "loaded"}], "toolUseId": "toolu_01"}}
|
||||
|
||||
|
||||
def test_ollama_pt_consecutive_user_messages():
|
||||
"""Test handling consecutive user messages"""
|
||||
messages = [
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue