RemoteGraph: If node name is not present, fallback to node id as the node name (#2304)

This commit is contained in:
Andrew Nguonly
2024-11-01 15:21:39 -07:00
committed by GitHub
parent eeebd44a87
commit cdd7899564
2 changed files with 22 additions and 12 deletions
+12 -2
View File
@@ -133,10 +133,20 @@ class RemoteGraph(PregelProtocol):
nodes = {}
for node in graph["nodes"]:
node_id = str(node["id"])
node_data = node.get("data", {})
# Get node name from node_data if available. If not, use node_id.
node_name = node.get("name")
if node_name is None:
if isinstance(node_data, dict):
node_name = node_data.get("name", node_id)
else:
node_name = node_id
nodes[node_id] = DrawableNode(
id=node_id,
name=node.get("name", ""),
data=node.get("data", {}),
name=node_name,
data=node_data,
metadata=node.get("metadata"),
)
return nodes
+10 -10
View File
@@ -54,7 +54,7 @@ def test_get_graph():
"type": "runnable",
"data": {
"id": ["langgraph", "utils", "RunnableCallable"],
"name": "agent",
"name": "agent_1",
},
},
],
@@ -71,13 +71,13 @@ def test_get_graph():
assert drawable_graph.nodes == {
"__start__": DrawableNode(
id="__start__", name="", data="__start__", metadata=None
id="__start__", name="__start__", data="__start__", metadata=None
),
"__end__": DrawableNode(id="__end__", name="", data="__end__", metadata=None),
"__end__": DrawableNode(id="__end__", name="__end__", data="__end__", metadata=None),
"agent": DrawableNode(
id="agent",
name="",
data={"id": ["langgraph", "utils", "RunnableCallable"], "name": "agent"},
name="agent_1",
data={"id": ["langgraph", "utils", "RunnableCallable"], "name": "agent_1"},
metadata=None,
),
}
@@ -101,7 +101,7 @@ async def test_aget_graph():
"type": "runnable",
"data": {
"id": ["langgraph", "utils", "RunnableCallable"],
"name": "agent",
"name": "agent_1",
},
},
],
@@ -118,13 +118,13 @@ async def test_aget_graph():
assert drawable_graph.nodes == {
"__start__": DrawableNode(
id="__start__", name="", data="__start__", metadata=None
id="__start__", name="__start__", data="__start__", metadata=None
),
"__end__": DrawableNode(id="__end__", name="", data="__end__", metadata=None),
"__end__": DrawableNode(id="__end__", name="__end__", data="__end__", metadata=None),
"agent": DrawableNode(
id="agent",
name="",
data={"id": ["langgraph", "utils", "RunnableCallable"], "name": "agent"},
name="agent_1",
data={"id": ["langgraph", "utils", "RunnableCallable"], "name": "agent_1"},
metadata=None,
),
}