core[minor]: Add parent_ids to astream_events API (#22563)

Include a list of parent ids for each event in astream events.
This commit is contained in:
Eugene Yurtsev 2024-06-06 16:14:28 -04:00 committed by GitHub
parent 67e58fdc2e
commit 035a9c9609
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 529 additions and 43 deletions

View File

@ -959,6 +959,11 @@ class Runnable(Generic[Input, Output], ABC):
the runnable that emitted the event. the runnable that emitted the event.
A child runnable that gets invoked as part of the execution of a A child runnable that gets invoked as part of the execution of a
parent runnable is assigned its own unique ID. parent runnable is assigned its own unique ID.
- ``parent_ids``: **List[str]** - The IDs of the parent runnables that
generated the event. The root runnable will have an empty list.
The order of the parent IDs is from the root to the immediate parent.
Only available for v2 version of the API. The v1 version of the API
will return an empty list.
- ``tags``: **Optional[List[str]]** - The tags of the runnable that generated - ``tags``: **Optional[List[str]]** - The tags of the runnable that generated
the event. the event.
- ``metadata``: **Optional[Dict[str, Any]]** - The metadata of the runnable - ``metadata``: **Optional[Dict[str, Any]]** - The metadata of the runnable
@ -1051,7 +1056,8 @@ class Runnable(Generic[Input, Output], ABC):
event async for event in chain.astream_events("hello", version="v2") event async for event in chain.astream_events("hello", version="v2")
] ]
# will produce the following events (run_id has been omitted for brevity): # will produce the following events (run_id, and parent_ids
# has been omitted for brevity):
[ [
{ {
"data": {"input": "hello"}, "data": {"input": "hello"},

View File

@ -1,7 +1,7 @@
"""Module contains typedefs that are used with runnables.""" """Module contains typedefs that are used with runnables."""
from __future__ import annotations from __future__ import annotations
from typing import Any, Dict, List from typing import Any, Dict, List, Sequence
from typing_extensions import NotRequired, TypedDict from typing_extensions import NotRequired, TypedDict
@ -54,7 +54,8 @@ class StreamEvent(TypedDict):
events = [event async for event in chain.astream_events("hello")] events = [event async for event in chain.astream_events("hello")]
# will produce the following events (run_id has been omitted for brevity): # will produce the following events
# (where some fields have been omitted for brevity):
[ [
{ {
"data": {"input": "hello"}, "data": {"input": "hello"},
@ -131,3 +132,16 @@ class StreamEvent(TypedDict):
The contents of the event data depend on the event type. The contents of the event data depend on the event type.
""" """
parent_ids: Sequence[str]
"""A list of the parent IDs associated with this event.
Root Events will have an empty list.
For example, if a Runnable A calls Runnable B, then the event generated by Runnable
B will have Runnable A's ID in the parent_ids field.
The order of the parent IDs is from the root parent to the immediate parent.
Only supported as of v2 of the astream events API. v1 will return an empty list.
"""

View File

@ -54,6 +54,7 @@ class RunInfo(TypedDict):
metadata: Dict[str, Any] metadata: Dict[str, Any]
run_type: str run_type: str
inputs: NotRequired[Any] inputs: NotRequired[Any]
parent_run_id: Optional[UUID]
def _assign_name(name: Optional[str], serialized: Dict[str, Any]) -> str: def _assign_name(name: Optional[str], serialized: Dict[str, Any]) -> str:
@ -87,7 +88,16 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"""Initialize the tracer.""" """Initialize the tracer."""
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
# Map of run ID to run info. # Map of run ID to run info.
# the entry corresponding to a given run id is cleaned
# up when each corresponding run ends.
self.run_map: Dict[UUID, RunInfo] = {} self.run_map: Dict[UUID, RunInfo] = {}
# The callback event that corresponds to the end of a parent run
# may be invoked BEFORE the callback event that corresponds to the end
# of a child run, which results in clean up of run_map.
# So we keep track of the mapping between children and parent run IDs
# in a separate container. This container is GCed when the tracer is GCed.
self.parent_map: Dict[UUID, Optional[UUID]] = {}
self.is_tapped: Dict[UUID, Any] = {} self.is_tapped: Dict[UUID, Any] = {}
# Filter which events will be sent over the queue. # Filter which events will be sent over the queue.
@ -105,6 +115,17 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
self.send_stream = memory_stream.get_send_stream() self.send_stream = memory_stream.get_send_stream()
self.receive_stream = memory_stream.get_receive_stream() self.receive_stream = memory_stream.get_receive_stream()
def _get_parent_ids(self, run_id: UUID) -> List[str]:
"""Get the parent IDs of a run (non-recursively) cast to strings."""
parent_ids = []
parent_id = self.parent_map[run_id]
while parent_id is not None:
parent_ids.append(str(parent_id))
parent_id = self.parent_map[parent_id]
return parent_ids
def _send(self, event: StreamEvent, event_type: str) -> None: def _send(self, event: StreamEvent, event_type: str) -> None:
"""Send an event to the stream.""" """Send an event to the stream."""
if self.root_event_filter.include_event(event, event_type): if self.root_event_filter.include_event(event, event_type):
@ -140,6 +161,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"tags": run_info["tags"], "tags": run_info["tags"],
"metadata": run_info["metadata"], "metadata": run_info["metadata"],
"data": {}, "data": {},
"parent_ids": self._get_parent_ids(run_id),
} }
self._send({**event, "data": {"chunk": first}}, run_info["run_type"]) self._send({**event, "data": {"chunk": first}}, run_info["run_type"])
yield cast(T, first) yield cast(T, first)
@ -181,6 +203,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"tags": run_info["tags"], "tags": run_info["tags"],
"metadata": run_info["metadata"], "metadata": run_info["metadata"],
"data": {}, "data": {},
"parent_ids": self._get_parent_ids(run_id),
} }
self._send({**event, "data": {"chunk": first}}, run_info["run_type"]) self._send({**event, "data": {"chunk": first}}, run_info["run_type"])
yield cast(T, first) yield cast(T, first)
@ -198,6 +221,35 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
for chunk in output: for chunk in output:
yield chunk yield chunk
def _write_run_start_info(
self,
run_id: UUID,
*,
tags: Optional[List[str]],
metadata: Optional[Dict[str, Any]],
parent_run_id: Optional[UUID],
name_: str,
run_type: str,
**kwargs: Any,
) -> None:
"""Update the run info."""
info: RunInfo = {
"tags": tags or [],
"metadata": metadata or {},
"name": name_,
"run_type": run_type,
"parent_run_id": parent_run_id,
}
if "inputs" in kwargs:
# Handle inputs in a special case to allow inputs to be an
# optionally provided and distinguish between missing value
# vs. None value.
info["inputs"] = kwargs["inputs"]
self.run_map[run_id] = info
self.parent_map[run_id] = parent_run_id
async def on_chat_model_start( async def on_chat_model_start(
self, self,
serialized: Dict[str, Any], serialized: Dict[str, Any],
@ -213,13 +265,16 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"""Start a trace for an LLM run.""" """Start a trace for an LLM run."""
name_ = _assign_name(name, serialized) name_ = _assign_name(name, serialized)
run_type = "chat_model" run_type = "chat_model"
self.run_map[run_id] = {
"tags": tags or [], self._write_run_start_info(
"metadata": metadata or {}, run_id,
"name": name_, tags=tags,
"run_type": run_type, metadata=metadata,
"inputs": {"messages": messages}, parent_run_id=parent_run_id,
} name_=name_,
run_type=run_type,
inputs={"messages": messages},
)
self._send( self._send(
{ {
@ -231,6 +286,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"tags": tags or [], "tags": tags or [],
"run_id": str(run_id), "run_id": str(run_id),
"metadata": metadata or {}, "metadata": metadata or {},
"parent_ids": self._get_parent_ids(run_id),
}, },
run_type, run_type,
) )
@ -250,13 +306,16 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"""Start a trace for an LLM run.""" """Start a trace for an LLM run."""
name_ = _assign_name(name, serialized) name_ = _assign_name(name, serialized)
run_type = "llm" run_type = "llm"
self.run_map[run_id] = {
"tags": tags or [], self._write_run_start_info(
"metadata": metadata or {}, run_id,
"name": name_, tags=tags,
"run_type": run_type, metadata=metadata,
"inputs": {"prompts": prompts}, parent_run_id=parent_run_id,
} name_=name_,
run_type=run_type,
inputs={"prompts": prompts},
)
self._send( self._send(
{ {
@ -270,6 +329,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"tags": tags or [], "tags": tags or [],
"run_id": str(run_id), "run_id": str(run_id),
"metadata": metadata or {}, "metadata": metadata or {},
"parent_ids": self._get_parent_ids(run_id),
}, },
run_type, run_type,
) )
@ -285,7 +345,6 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
) -> None: ) -> None:
"""Run on new LLM token. Only available when streaming is enabled.""" """Run on new LLM token. Only available when streaming is enabled."""
run_info = self.run_map.get(run_id) run_info = self.run_map.get(run_id)
chunk_: Union[GenerationChunk, BaseMessageChunk] chunk_: Union[GenerationChunk, BaseMessageChunk]
if run_info is None: if run_info is None:
@ -319,6 +378,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"name": run_info["name"], "name": run_info["name"],
"tags": run_info["tags"], "tags": run_info["tags"],
"metadata": run_info["metadata"], "metadata": run_info["metadata"],
"parent_ids": self._get_parent_ids(run_id),
}, },
run_info["run_type"], run_info["run_type"],
) )
@ -371,6 +431,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"name": run_info["name"], "name": run_info["name"],
"tags": run_info["tags"], "tags": run_info["tags"],
"metadata": run_info["metadata"], "metadata": run_info["metadata"],
"parent_ids": self._get_parent_ids(run_id),
}, },
run_info["run_type"], run_info["run_type"],
) )
@ -391,12 +452,6 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"""Start a trace for a chain run.""" """Start a trace for a chain run."""
name_ = _assign_name(name, serialized) name_ = _assign_name(name, serialized)
run_type_ = run_type or "chain" run_type_ = run_type or "chain"
run_info: RunInfo = {
"tags": tags or [],
"metadata": metadata or {},
"name": name_,
"run_type": run_type_,
}
data: EventData = {} data: EventData = {}
@ -404,9 +459,17 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
# cases. # cases.
if inputs != {"input": ""}: if inputs != {"input": ""}:
data["input"] = inputs data["input"] = inputs
run_info["inputs"] = inputs kwargs["inputs"] = inputs
self.run_map[run_id] = run_info self._write_run_start_info(
run_id,
tags=tags,
metadata=metadata,
parent_run_id=parent_run_id,
name_=name_,
run_type=run_type_,
**kwargs,
)
self._send( self._send(
{ {
@ -416,6 +479,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"tags": tags or [], "tags": tags or [],
"run_id": str(run_id), "run_id": str(run_id),
"metadata": metadata or {}, "metadata": metadata or {},
"parent_ids": self._get_parent_ids(run_id),
}, },
run_type_, run_type_,
) )
@ -449,6 +513,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"name": run_info["name"], "name": run_info["name"],
"tags": run_info["tags"], "tags": run_info["tags"],
"metadata": run_info["metadata"], "metadata": run_info["metadata"],
"parent_ids": self._get_parent_ids(run_id),
}, },
run_type, run_type,
) )
@ -468,13 +533,16 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
) -> None: ) -> None:
"""Start a trace for a tool run.""" """Start a trace for a tool run."""
name_ = _assign_name(name, serialized) name_ = _assign_name(name, serialized)
self.run_map[run_id] = {
"tags": tags or [], self._write_run_start_info(
"metadata": metadata or {}, run_id,
"name": name_, tags=tags,
"run_type": "tool", metadata=metadata,
"inputs": inputs, parent_run_id=parent_run_id,
} name_=name_,
run_type="tool",
inputs=inputs,
)
self._send( self._send(
{ {
@ -486,6 +554,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"tags": tags or [], "tags": tags or [],
"run_id": str(run_id), "run_id": str(run_id),
"metadata": metadata or {}, "metadata": metadata or {},
"parent_ids": self._get_parent_ids(run_id),
}, },
"tool", "tool",
) )
@ -511,6 +580,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"name": run_info["name"], "name": run_info["name"],
"tags": run_info["tags"], "tags": run_info["tags"],
"metadata": run_info["metadata"], "metadata": run_info["metadata"],
"parent_ids": self._get_parent_ids(run_id),
}, },
"tool", "tool",
) )
@ -530,13 +600,16 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"""Run when Retriever starts running.""" """Run when Retriever starts running."""
name_ = _assign_name(name, serialized) name_ = _assign_name(name, serialized)
run_type = "retriever" run_type = "retriever"
self.run_map[run_id] = {
"tags": tags or [], self._write_run_start_info(
"metadata": metadata or {}, run_id,
"name": name_, tags=tags,
"run_type": run_type, metadata=metadata,
"inputs": {"query": query}, parent_run_id=parent_run_id,
} name_=name_,
run_type=run_type,
inputs={"query": query},
)
self._send( self._send(
{ {
@ -550,6 +623,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"tags": tags or [], "tags": tags or [],
"run_id": str(run_id), "run_id": str(run_id),
"metadata": metadata or {}, "metadata": metadata or {},
"parent_ids": self._get_parent_ids(run_id),
}, },
run_type, run_type,
) )
@ -571,6 +645,7 @@ class _AstreamEventsCallbackHandler(AsyncCallbackHandler, _StreamingCallbackHand
"name": run_info["name"], "name": run_info["name"],
"tags": run_info["tags"], "tags": run_info["tags"],
"metadata": run_info["metadata"], "metadata": run_info["metadata"],
"parent_ids": self._get_parent_ids(run_id),
}, },
run_info["run_type"], run_info["run_type"],
) )
@ -660,6 +735,7 @@ async def _astream_events_implementation_v1(
data={ data={
"input": input, "input": input,
}, },
parent_ids=[], # Not supported in v1
) )
if _root_event_filter.include_event(event, state["type"]): if _root_event_filter.include_event(event, state["type"]):
@ -722,6 +798,7 @@ async def _astream_events_implementation_v1(
tags=log_entry["tags"], tags=log_entry["tags"],
metadata=log_entry["metadata"], metadata=log_entry["metadata"],
data=data, data=data,
parent_ids=[], # Not supported in v1
) )
# Finally, we take care of the streaming output from the root chain # Finally, we take care of the streaming output from the root chain
@ -747,6 +824,7 @@ async def _astream_events_implementation_v1(
metadata=root_metadata, metadata=root_metadata,
name=root_name, name=root_name,
data=data, data=data,
parent_ids=[], # Not supported in v1
) )
if _root_event_filter.include_event(event, state["type"]): if _root_event_filter.include_event(event, state["type"]):
yield event yield event
@ -763,6 +841,7 @@ async def _astream_events_implementation_v1(
data={ data={
"output": state["final_output"], "output": state["final_output"],
}, },
parent_ids=[], # Not supported in v1
) )
if _root_event_filter.include_event(event, state["type"]): if _root_event_filter.include_event(event, state["type"]):
yield event yield event

View File

@ -34,6 +34,10 @@ from tests.unit_tests.stubs import AnyStr
def _with_nulled_run_id(events: Sequence[StreamEvent]) -> List[StreamEvent]: def _with_nulled_run_id(events: Sequence[StreamEvent]) -> List[StreamEvent]:
"""Removes the run ids from events.""" """Removes the run ids from events."""
for event in events:
assert "parent_ids" in event, "Parent ids should be present in the event."
assert event["parent_ids"] == [], "Parent ids should be empty."
return cast(List[StreamEvent], [{**event, "run_id": ""} for event in events]) return cast(List[StreamEvent], [{**event, "run_id": ""} for event in events])
@ -70,6 +74,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
{ {
"event": "on_chain_start", "event": "on_chain_start",
"run_id": "", "run_id": "",
"parent_ids": [],
"name": "RunnableSequence", "name": "RunnableSequence",
"tags": [], "tags": [],
"metadata": {}, "metadata": {},
@ -79,6 +84,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
"event": "on_chain_start", "event": "on_chain_start",
"name": "foo", "name": "foo",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
"metadata": {}, "metadata": {},
"data": {}, "data": {},
@ -87,6 +93,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
"event": "on_chain_stream", "event": "on_chain_stream",
"name": "foo", "name": "foo",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
"metadata": {}, "metadata": {},
"data": {"chunk": {"x": 5}}, "data": {"chunk": {"x": 5}},
@ -95,6 +102,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
"event": "on_chain_end", "event": "on_chain_end",
"name": "foo", "name": "foo",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
"metadata": {}, "metadata": {},
"data": {"input": {}, "output": {"x": 5}}, "data": {"input": {}, "output": {"x": 5}},
@ -103,6 +111,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
"event": "on_tool_start", "event": "on_tool_start",
"name": "get_docs", "name": "get_docs",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
"metadata": {}, "metadata": {},
"data": {"input": {"x": 5}}, "data": {"input": {"x": 5}},
@ -111,6 +120,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
"event": "on_tool_end", "event": "on_tool_end",
"name": "get_docs", "name": "get_docs",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
"metadata": {}, "metadata": {},
"data": {"input": {"x": 5}, "output": [Document(page_content="hello")]}, "data": {"input": {"x": 5}, "output": [Document(page_content="hello")]},
@ -118,6 +128,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
{ {
"event": "on_chain_stream", "event": "on_chain_stream",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
@ -127,6 +138,7 @@ async def test_event_stream_with_simple_function_tool() -> None:
"event": "on_chain_end", "event": "on_chain_end",
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
"metadata": {}, "metadata": {},
"data": {"output": [Document(page_content="hello")]}, "data": {"output": [Document(page_content="hello")]},
@ -151,6 +163,7 @@ async def test_event_stream_with_single_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "reverse", "name": "reverse",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -159,6 +172,7 @@ async def test_event_stream_with_single_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "reverse", "name": "reverse",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -167,6 +181,7 @@ async def test_event_stream_with_single_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "reverse", "name": "reverse",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -192,6 +207,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -200,6 +216,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "1", "name": "1",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -208,6 +225,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "1", "name": "1",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -216,6 +234,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "2", "name": "2",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -224,6 +243,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "1", "name": "1",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -232,6 +252,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "2", "name": "2",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -240,6 +261,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "3", "name": "3",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:3"], "tags": ["seq:step:3"],
}, },
{ {
@ -248,6 +270,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "2", "name": "2",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -256,6 +279,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "3", "name": "3",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:3"], "tags": ["seq:step:3"],
}, },
{ {
@ -264,6 +288,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -272,6 +297,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "3", "name": "3",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:3"], "tags": ["seq:step:3"],
}, },
{ {
@ -280,6 +306,7 @@ async def test_event_stream_with_triple_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -309,6 +336,7 @@ async def test_event_stream_with_triple_lambda_test_filtering() -> None:
"metadata": {}, "metadata": {},
"name": "1", "name": "1",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -317,6 +345,7 @@ async def test_event_stream_with_triple_lambda_test_filtering() -> None:
"metadata": {}, "metadata": {},
"name": "1", "name": "1",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -325,6 +354,7 @@ async def test_event_stream_with_triple_lambda_test_filtering() -> None:
"metadata": {}, "metadata": {},
"name": "1", "name": "1",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
] ]
@ -341,6 +371,7 @@ async def test_event_stream_with_triple_lambda_test_filtering() -> None:
"metadata": {}, "metadata": {},
"name": "3", "name": "3",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_tag", "seq:step:3"], "tags": ["my_tag", "seq:step:3"],
}, },
{ {
@ -349,6 +380,7 @@ async def test_event_stream_with_triple_lambda_test_filtering() -> None:
"metadata": {}, "metadata": {},
"name": "3", "name": "3",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_tag", "seq:step:3"], "tags": ["my_tag", "seq:step:3"],
}, },
{ {
@ -357,6 +389,7 @@ async def test_event_stream_with_triple_lambda_test_filtering() -> None:
"metadata": {}, "metadata": {},
"name": "3", "name": "3",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_tag", "seq:step:3"], "tags": ["my_tag", "seq:step:3"],
}, },
] ]
@ -376,6 +409,7 @@ async def test_event_stream_with_lambdas_from_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "my_lambda", "name": "my_lambda",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -384,6 +418,7 @@ async def test_event_stream_with_lambdas_from_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "my_lambda", "name": "my_lambda",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -392,6 +427,7 @@ async def test_event_stream_with_lambdas_from_lambda() -> None:
"metadata": {}, "metadata": {},
"name": "my_lambda", "name": "my_lambda",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -420,6 +456,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b"}, "metadata": {"a": "b"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -428,6 +465,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b"}, "metadata": {"a": "b"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -436,6 +474,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b"}, "metadata": {"a": "b"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -444,6 +483,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b"}, "metadata": {"a": "b"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -452,6 +492,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b"}, "metadata": {"a": "b"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
] ]
@ -471,6 +512,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {}, "metadata": {},
"name": "i_dont_stream", "name": "i_dont_stream",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -479,6 +521,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -487,6 +530,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -495,6 +539,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -503,6 +548,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -529,6 +575,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -537,6 +584,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {}, "metadata": {},
"name": "i_dont_stream", "name": "i_dont_stream",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -545,6 +593,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {}, "metadata": {},
"name": "i_dont_stream", "name": "i_dont_stream",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -564,6 +613,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {}, "metadata": {},
"name": "ai_dont_stream", "name": "ai_dont_stream",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -572,6 +622,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -580,6 +631,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -588,6 +640,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -596,6 +649,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -622,6 +676,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"}, "metadata": {"a": "b", "ls_model_type": "chat", "ls_stop": "<stop_token>"},
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_model"], "tags": ["my_model"],
}, },
{ {
@ -630,6 +685,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {}, "metadata": {},
"name": "ai_dont_stream", "name": "ai_dont_stream",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -638,6 +694,7 @@ async def test_astream_events_from_model() -> None:
"metadata": {}, "metadata": {},
"name": "ai_dont_stream", "name": "ai_dont_stream",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -686,6 +743,7 @@ async def test_event_stream_with_simple_chain() -> None:
"metadata": {"foo": "bar"}, "metadata": {"foo": "bar"},
"name": "my_chain", "name": "my_chain",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain"], "tags": ["my_chain"],
}, },
{ {
@ -694,6 +752,7 @@ async def test_event_stream_with_simple_chain() -> None:
"metadata": {"foo": "bar"}, "metadata": {"foo": "bar"},
"name": "my_template", "name": "my_template",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain", "my_template", "seq:step:1"], "tags": ["my_chain", "my_template", "seq:step:1"],
}, },
{ {
@ -710,6 +769,7 @@ async def test_event_stream_with_simple_chain() -> None:
"metadata": {"foo": "bar"}, "metadata": {"foo": "bar"},
"name": "my_template", "name": "my_template",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain", "my_template", "seq:step:1"], "tags": ["my_chain", "my_template", "seq:step:1"],
}, },
{ {
@ -732,6 +792,7 @@ async def test_event_stream_with_simple_chain() -> None:
}, },
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain", "my_model", "seq:step:2"], "tags": ["my_chain", "my_model", "seq:step:2"],
}, },
{ {
@ -745,6 +806,7 @@ async def test_event_stream_with_simple_chain() -> None:
}, },
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain", "my_model", "seq:step:2"], "tags": ["my_chain", "my_model", "seq:step:2"],
}, },
{ {
@ -753,6 +815,7 @@ async def test_event_stream_with_simple_chain() -> None:
"metadata": {"foo": "bar"}, "metadata": {"foo": "bar"},
"name": "my_chain", "name": "my_chain",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain"], "tags": ["my_chain"],
}, },
{ {
@ -766,6 +829,7 @@ async def test_event_stream_with_simple_chain() -> None:
}, },
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain", "my_model", "seq:step:2"], "tags": ["my_chain", "my_model", "seq:step:2"],
}, },
{ {
@ -774,6 +838,7 @@ async def test_event_stream_with_simple_chain() -> None:
"metadata": {"foo": "bar"}, "metadata": {"foo": "bar"},
"name": "my_chain", "name": "my_chain",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain"], "tags": ["my_chain"],
}, },
{ {
@ -787,6 +852,7 @@ async def test_event_stream_with_simple_chain() -> None:
}, },
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain", "my_model", "seq:step:2"], "tags": ["my_chain", "my_model", "seq:step:2"],
}, },
{ {
@ -795,6 +861,7 @@ async def test_event_stream_with_simple_chain() -> None:
"metadata": {"foo": "bar"}, "metadata": {"foo": "bar"},
"name": "my_chain", "name": "my_chain",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain"], "tags": ["my_chain"],
}, },
{ {
@ -833,6 +900,7 @@ async def test_event_stream_with_simple_chain() -> None:
}, },
"name": "my_model", "name": "my_model",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain", "my_model", "seq:step:2"], "tags": ["my_chain", "my_model", "seq:step:2"],
}, },
{ {
@ -841,6 +909,7 @@ async def test_event_stream_with_simple_chain() -> None:
"metadata": {"foo": "bar"}, "metadata": {"foo": "bar"},
"name": "my_chain", "name": "my_chain",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_chain"], "tags": ["my_chain"],
}, },
] ]
@ -879,6 +948,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "parameterless", "name": "parameterless",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -887,6 +957,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "parameterless", "name": "parameterless",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -895,6 +966,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "parameterless", "name": "parameterless",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -907,6 +979,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_callbacks", "name": "with_callbacks",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -915,6 +988,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_callbacks", "name": "with_callbacks",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -923,6 +997,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_callbacks", "name": "with_callbacks",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -936,6 +1011,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_parameters", "name": "with_parameters",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -944,6 +1020,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_parameters", "name": "with_parameters",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -952,6 +1029,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_parameters", "name": "with_parameters",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -966,6 +1044,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_parameters_and_callbacks", "name": "with_parameters_and_callbacks",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -974,6 +1053,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_parameters_and_callbacks", "name": "with_parameters_and_callbacks",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -982,6 +1062,7 @@ async def test_event_streaming_with_tools() -> None:
"metadata": {}, "metadata": {},
"name": "with_parameters_and_callbacks", "name": "with_parameters_and_callbacks",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -1022,6 +1103,7 @@ async def test_event_stream_with_retriever() -> None:
"metadata": {}, "metadata": {},
"name": "HardCodedRetriever", "name": "HardCodedRetriever",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1035,6 +1117,7 @@ async def test_event_stream_with_retriever() -> None:
"metadata": {}, "metadata": {},
"name": "HardCodedRetriever", "name": "HardCodedRetriever",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1048,6 +1131,7 @@ async def test_event_stream_with_retriever() -> None:
"metadata": {}, "metadata": {},
"name": "HardCodedRetriever", "name": "HardCodedRetriever",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -1081,6 +1165,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1089,6 +1174,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "Retriever", "name": "Retriever",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1107,6 +1193,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "Retriever", "name": "Retriever",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1115,6 +1202,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "format_docs", "name": "format_docs",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1123,6 +1211,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "format_docs", "name": "format_docs",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1131,6 +1220,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1145,6 +1235,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "format_docs", "name": "format_docs",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1153,6 +1244,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -1184,6 +1276,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1192,6 +1285,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "concat", "name": "concat",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1200,6 +1294,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "concat", "name": "concat",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1208,6 +1303,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "reverse", "name": "reverse",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1216,6 +1312,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "reverse", "name": "reverse",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1224,6 +1321,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1232,6 +1330,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "reverse", "name": "reverse",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1240,6 +1339,7 @@ async def test_event_stream_on_chain_with_tool() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -1278,6 +1378,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1286,6 +1387,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "foo", "name": "foo",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1294,6 +1396,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "foo", "name": "foo",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1302,6 +1405,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "foo", "name": "foo",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1310,6 +1414,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "bar", "name": "bar",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1318,6 +1423,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "bar", "name": "bar",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1326,6 +1432,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1334,6 +1441,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "bar", "name": "bar",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1342,6 +1450,7 @@ async def test_chain_ordering() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -1382,6 +1491,7 @@ async def test_event_stream_with_retry() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1390,6 +1500,7 @@ async def test_event_stream_with_retry() -> None:
"metadata": {}, "metadata": {},
"name": "success", "name": "success",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1398,6 +1509,7 @@ async def test_event_stream_with_retry() -> None:
"metadata": {}, "metadata": {},
"name": "success", "name": "success",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1406,6 +1518,7 @@ async def test_event_stream_with_retry() -> None:
"metadata": {}, "metadata": {},
"name": "fail", "name": "fail",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1414,6 +1527,7 @@ async def test_event_stream_with_retry() -> None:
"metadata": {}, "metadata": {},
"name": "success", "name": "success",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
}, },
{ {
@ -1422,6 +1536,7 @@ async def test_event_stream_with_retry() -> None:
"metadata": {}, "metadata": {},
"name": "fail", "name": "fail",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
] ]
@ -1445,6 +1560,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1453,6 +1569,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "my_template", "name": "my_template",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_template", "seq:step:1"], "tags": ["my_template", "seq:step:1"],
}, },
{ {
@ -1469,6 +1586,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "my_template", "name": "my_template",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["my_template", "seq:step:1"], "tags": ["my_template", "seq:step:1"],
}, },
{ {
@ -1479,6 +1597,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "FakeStreamingListLLM", "name": "FakeStreamingListLLM",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1498,6 +1617,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "FakeStreamingListLLM", "name": "FakeStreamingListLLM",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": ["seq:step:2"], "tags": ["seq:step:2"],
}, },
{ {
@ -1506,6 +1626,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1514,6 +1635,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1522,6 +1644,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1530,6 +1653,7 @@ async def test_with_llm() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableSequence", "name": "RunnableSequence",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -1572,6 +1696,7 @@ async def test_events_astream_config() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableConfigurableFields", "name": "RunnableConfigurableFields",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1580,6 +1705,7 @@ async def test_events_astream_config() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableConfigurableFields", "name": "RunnableConfigurableFields",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1588,6 +1714,7 @@ async def test_events_astream_config() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableConfigurableFields", "name": "RunnableConfigurableFields",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1596,6 +1723,7 @@ async def test_events_astream_config() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableConfigurableFields", "name": "RunnableConfigurableFields",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1604,6 +1732,7 @@ async def test_events_astream_config() -> None:
"metadata": {}, "metadata": {},
"name": "RunnableConfigurableFields", "name": "RunnableConfigurableFields",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]
@ -1688,6 +1817,7 @@ EXPECTED_EVENTS = [
"metadata": {}, "metadata": {},
"name": "add_one_proxy", "name": "add_one_proxy",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1696,6 +1826,7 @@ EXPECTED_EVENTS = [
"metadata": {}, "metadata": {},
"name": "add_one", "name": "add_one",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1704,6 +1835,7 @@ EXPECTED_EVENTS = [
"metadata": {}, "metadata": {},
"name": "add_one", "name": "add_one",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1712,6 +1844,7 @@ EXPECTED_EVENTS = [
"metadata": {}, "metadata": {},
"name": "add_one", "name": "add_one",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1720,6 +1853,7 @@ EXPECTED_EVENTS = [
"metadata": {}, "metadata": {},
"name": "add_one_proxy", "name": "add_one_proxy",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
{ {
@ -1728,6 +1862,7 @@ EXPECTED_EVENTS = [
"metadata": {}, "metadata": {},
"name": "add_one_proxy", "name": "add_one_proxy",
"run_id": "", "run_id": "",
"parent_ids": [],
"tags": [], "tags": [],
}, },
] ]