fix(mistralai): handle null content in tool call responses (#34268)

This commit is contained in:
Nhan Nguyen
2025-12-12 13:18:56 -05:00
committed by GitHub
parent 914730cf8d
commit 7829b722b1
2 changed files with 54 additions and 1 deletions

View File

@@ -238,6 +238,58 @@ def test__convert_dict_to_message_tool_call() -> None:
assert _convert_message_to_mistral_chat_message(expected_output) == message
def test__convert_dict_to_message_tool_call_with_null_content() -> None:
raw_tool_call = {
"id": "ssAbar4Dr",
"function": {
"arguments": '{"name": "Sally", "hair_color": "green"}',
"name": "GenerateUsername",
},
}
message = {"role": "assistant", "content": None, "tool_calls": [raw_tool_call]}
result = _convert_mistral_chat_message_to_message(message)
expected_output = AIMessage(
content="",
additional_kwargs={"tool_calls": [raw_tool_call]},
tool_calls=[
ToolCall(
name="GenerateUsername",
args={"name": "Sally", "hair_color": "green"},
id="ssAbar4Dr",
type="tool_call",
)
],
response_metadata={"model_provider": "mistralai"},
)
assert result == expected_output
def test__convert_dict_to_message_with_missing_content() -> None:
raw_tool_call = {
"id": "ssAbar4Dr",
"function": {
"arguments": '{"query": "test search"}',
"name": "search",
},
}
message = {"role": "assistant", "tool_calls": [raw_tool_call]}
result = _convert_mistral_chat_message_to_message(message)
expected_output = AIMessage(
content="",
additional_kwargs={"tool_calls": [raw_tool_call]},
tool_calls=[
ToolCall(
name="search",
args={"query": "test search"},
id="ssAbar4Dr",
type="tool_call",
)
],
response_metadata={"model_provider": "mistralai"},
)
assert result == expected_output
def test_custom_token_counting() -> None:
def token_encoder(text: str) -> list[int]:
return [1, 2, 3]