|
5 | 5 | from typing import Any, Literal, Union
|
6 | 6 | from unittest.mock import MagicMock
|
7 | 7 |
|
8 |
| -from langchain_core.messages import AIMessageChunk |
| 8 | +from langchain_core.messages import AIMessageChunk, ToolMessage |
9 | 9 | from langchain_tests.unit_tests import ChatModelUnitTests
|
10 | 10 | from openai import BaseModel
|
11 | 11 | from openai.types.chat import ChatCompletionMessage
|
@@ -217,3 +217,19 @@ def test_convert_chunk_with_empty_delta(self) -> None:
|
217 | 217 | msg = "Expected chunk_result not to be None"
|
218 | 218 | raise AssertionError(msg)
|
219 | 219 | assert chunk_result.message.additional_kwargs.get("reasoning_content") is None
|
| 220 | + |
| 221 | + def test_get_request_payload(self) -> None: |
| 222 | + """Test that tool message content is converted from list to string.""" |
| 223 | + chat_model = ChatDeepSeek(model="deepseek-chat", api_key=SecretStr("api_key")) |
| 224 | + |
| 225 | + tool_message = ToolMessage(content=[], tool_call_id="test_id") |
| 226 | + payload = chat_model._get_request_payload([tool_message]) |
| 227 | + assert payload["messages"][0]["content"] == "[]" |
| 228 | + |
| 229 | + tool_message = ToolMessage(content=["item1", "item2"], tool_call_id="test_id") |
| 230 | + payload = chat_model._get_request_payload([tool_message]) |
| 231 | + assert payload["messages"][0]["content"] == '["item1", "item2"]' |
| 232 | + |
| 233 | + tool_message = ToolMessage(content="test string", tool_call_id="test_id") |
| 234 | + payload = chat_model._get_request_payload([tool_message]) |
| 235 | + assert payload["messages"][0]["content"] == "test string" |
0 commit comments