Fix: Update the type of answer_stream_variable_selectors_mapping to a list of GenerateRouteChunk and add the answer_end_dependencies field in AnswerStreamGenerateRoute to support mapping and dependency management of stream variable selectors.

pull/20921/head
GuanMu 10 months ago
parent 37b5b4ea2d
commit 54520e1256

@ -23,7 +23,7 @@ class AnswerStreamGeneratorRouter:
""" """
# parse stream output node value selectors of answer nodes # parse stream output node value selectors of answer nodes
answer_generate_route: dict[str, list[GenerateRouteChunk]] = {} answer_generate_route: dict[str, list[GenerateRouteChunk]] = {}
answer_stream_variable_selectors_mapping: dict[str, list[list[str]]] = {} answer_stream_variable_selectors_mapping: dict[str, list[GenerateRouteChunk]] = {}
for answer_node_id, node_config in node_id_config_mapping.items(): for answer_node_id, node_config in node_id_config_mapping.items():
if node_config.get("data", {}).get("type") != NodeType.ANSWER.value: if node_config.get("data", {}).get("type") != NodeType.ANSWER.value:
continue continue

@ -65,3 +65,11 @@ class AnswerStreamGenerateRoute(BaseModel):
answer_generate_route: dict[str, list[GenerateRouteChunk]] = Field( answer_generate_route: dict[str, list[GenerateRouteChunk]] = Field(
..., description="answer generate route (answer node id -> generate route chunks)" ..., description="answer generate route (answer node id -> generate route chunks)"
) )
answer_stream_variable_selectors_mapping: dict[str, list[GenerateRouteChunk]] = Field(
default_factory=dict,
description="answer node id -> generate route chunks for streaming variable selectors",
)
answer_end_dependencies: dict[str, list[str]] = Field(
default_factory=dict,
description="answer node id -> dependent answer node ids at message end",
)

Loading…
Cancel
Save