seperate the yield
This commit is contained in:
@@ -81,11 +81,7 @@ class RoutingGraph(GraphBase):
|
|||||||
self.workflow = self._build_graph()
|
self.workflow = self._build_graph()
|
||||||
|
|
||||||
|
|
||||||
def invoke(self, *nargs, as_stream:bool=False, as_raw:bool=False, **kwargs):
|
def _stream_result(self, *nargs, **kwargs):
|
||||||
self._validate_input(*nargs, **kwargs)
|
|
||||||
|
|
||||||
if as_stream:
|
|
||||||
# Stream messages from the workflow
|
|
||||||
for chunk, metadata in self.workflow.stream({"inp": nargs}, stream_mode="messages", **kwargs):
|
for chunk, metadata in self.workflow.stream({"inp": nargs}, stream_mode="messages", **kwargs):
|
||||||
node = metadata.get("langgraph_node")
|
node = metadata.get("langgraph_node")
|
||||||
if node != "model":
|
if node != "model":
|
||||||
@@ -94,6 +90,15 @@ class RoutingGraph(GraphBase):
|
|||||||
# Yield only the final message content chunks
|
# Yield only the final message content chunks
|
||||||
if isinstance(chunk, (BaseMessageChunk, BaseMessage)) and getattr(chunk, "content", None):
|
if isinstance(chunk, (BaseMessageChunk, BaseMessage)) and getattr(chunk, "content", None):
|
||||||
yield chunk.content
|
yield chunk.content
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def invoke(self, *nargs, as_stream:bool=False, as_raw:bool=False, **kwargs):
|
||||||
|
self._validate_input(*nargs, **kwargs)
|
||||||
|
|
||||||
|
if as_stream:
|
||||||
|
# Stream messages from the workflow
|
||||||
|
return self._stream_result(*nargs, **kwargs)
|
||||||
else:
|
else:
|
||||||
state = self.workflow.invoke({"inp": nargs})
|
state = self.workflow.invoke({"inp": nargs})
|
||||||
|
|
||||||
@@ -109,11 +114,11 @@ class RoutingGraph(GraphBase):
|
|||||||
return msg_list[-1].content
|
return msg_list[-1].content
|
||||||
|
|
||||||
def _validate_input(self, *nargs, **kwargs):
|
def _validate_input(self, *nargs, **kwargs):
|
||||||
print("\033[93m====================INPUT MESSAGES=============================\033[0m")
|
print("\033[93m====================INPUT HUMAN MESSAGES=============================\033[0m")
|
||||||
for e in nargs[0]["messages"]:
|
for e in nargs[0]["messages"]:
|
||||||
if isinstance(e, BaseMessage):
|
if isinstance(e, HumanMessage):
|
||||||
e.pretty_print()
|
e.pretty_print()
|
||||||
print("\033[93m====================END INPUT MESSAGES=============================\033[0m")
|
print("\033[93m====================END INPUT HUMAN MESSAGES=============================\033[0m")
|
||||||
print(f"\033[93 model used: {self.config.llm_name}\033[0m")
|
print(f"\033[93 model used: {self.config.llm_name}\033[0m")
|
||||||
|
|
||||||
assert len(nargs[0]["messages"]) >= 2, "need at least 1 system and 1 human message"
|
assert len(nargs[0]["messages"]) >= 2, "need at least 1 system and 1 human message"
|
||||||
|
|||||||
Reference in New Issue
Block a user