mirror of
https://github.com/hwchase17/langchain.git
synced 2025-07-31 16:39:20 +00:00
fix issue with streaming tool calls
This commit is contained in:
parent
e3febdd2ef
commit
929e9a56e9
@ -499,7 +499,10 @@ def _convert_to_message_v1(message: MessageLikeRepresentation) -> MessageV1:
|
||||
ValueError: if the message dict does not contain the required keys.
|
||||
"""
|
||||
if isinstance(message, MessageV1Types):
|
||||
message_ = message
|
||||
if isinstance(message, AIMessageChunkV1):
|
||||
message_ = message.to_message()
|
||||
else:
|
||||
message_ = message
|
||||
elif isinstance(message, str):
|
||||
message_ = _create_message_from_message_type_v1("human", message)
|
||||
elif isinstance(message, Sequence) and len(message) == 2:
|
||||
|
@ -34,6 +34,7 @@ from langchain_core.messages.content_blocks import KNOWN_BLOCK_TYPES
|
||||
from langchain_core.messages.tool import invalid_tool_call as create_invalid_tool_call
|
||||
from langchain_core.messages.tool import tool_call as create_tool_call
|
||||
from langchain_core.messages.tool import tool_call_chunk as create_tool_call_chunk
|
||||
from langchain_core.messages.v1 import AIMessage as AIMessageV1
|
||||
from langchain_core.messages.v1 import AIMessageChunk as AIMessageChunkV1
|
||||
from langchain_core.utils._merge import merge_lists
|
||||
|
||||
@ -197,7 +198,7 @@ def test_message_chunks() -> None:
|
||||
assert (meaningful_id + default_id).id == "msg_def456"
|
||||
|
||||
|
||||
def test_message_chunks_v2() -> None:
|
||||
def test_message_chunks_v1() -> None:
|
||||
left = AIMessageChunkV1("foo ", id="abc")
|
||||
right = AIMessageChunkV1("bar")
|
||||
expected = AIMessageChunkV1("foo bar", id="abc")
|
||||
@ -230,7 +231,19 @@ def test_message_chunks_v2() -> None:
|
||||
)
|
||||
],
|
||||
)
|
||||
assert one + two + three == expected
|
||||
result = one + two + three
|
||||
assert result == expected
|
||||
|
||||
assert result.to_message() == AIMessageV1(
|
||||
content=[
|
||||
{
|
||||
"name": "tool1",
|
||||
"args": {"arg1": "value}"},
|
||||
"id": "1",
|
||||
"type": "tool_call",
|
||||
}
|
||||
]
|
||||
)
|
||||
|
||||
assert (
|
||||
AIMessageChunkV1(
|
||||
@ -1326,6 +1339,7 @@ def test_known_block_types() -> None:
|
||||
"text",
|
||||
"text-plain",
|
||||
"tool_call",
|
||||
"invalid_tool_call",
|
||||
"reasoning",
|
||||
"non_standard",
|
||||
"image",
|
||||
|
Loading…
Reference in New Issue
Block a user