feat:意图识别优化
This commit is contained in:
+13
-3
@@ -55,10 +55,17 @@ def route_after_intent(state: QueryState) -> str:
|
||||
|
||||
|
||||
def route_after_requirement(state: QueryState) -> str:
|
||||
# 需求输出校验失败直接收尾;需要澄清进入澄清,否则进入修改范围判断
|
||||
# 需求输出校验失败直接收尾,其余按落地策略的决定分流
|
||||
if state["status"] == "failed":
|
||||
return "fallback_node"
|
||||
return "clarify_node" if state["requirement"].needs_clarification else "scope_node"
|
||||
outcome = state["requirement_outcome"]
|
||||
if outcome == "inform":
|
||||
# 目标不存在时直接告知用户,不执行也不追问
|
||||
return "qa_node"
|
||||
if outcome == "clarify":
|
||||
# 候选选项已由策略生成时直接等待用户,否则由澄清节点组织问题
|
||||
return "wait_for_user_node" if state.get("clarification") else "clarify_node"
|
||||
return "scope_node"
|
||||
|
||||
|
||||
def route_after_wait(state: QueryState) -> str:
|
||||
@@ -70,7 +77,8 @@ def route_after_wait(state: QueryState) -> str:
|
||||
# 接入后把 needs_planning 与 resource_needs 拆成两个独立开关:
|
||||
# 规划 -> 按需查资源 -> planner;无需规划但有 resource_needs -> 查资源 -> action
|
||||
# 并让 component_resource_node 按 resource_needs 决定查什么,而不是固定全量目录
|
||||
# 在此之前,无需规划且带 resource_needs 的请求会由 action_block_reason 判为失败
|
||||
# 接入时把 capabilities.RESOURCE_QUERY_SUPPORTED 改为 True;在此之前 ScopeNode 和 PlannerNode
|
||||
# 会清空资源需求并改用物料默认配置和示例数据,不因资源需求失败
|
||||
def route_after_scope(state: QueryState) -> str:
|
||||
# 范围输出校验失败或已判定无法执行,直接失败收尾
|
||||
if state["status"] == "failed":
|
||||
@@ -170,6 +178,8 @@ def build_graph(checkpointer=None):
|
||||
path=route_after_requirement,
|
||||
path_map={
|
||||
"clarify_node": "clarify_node",
|
||||
"wait_for_user_node": "wait_for_user_node",
|
||||
"qa_node": "qa_node",
|
||||
"scope_node": "scope_node",
|
||||
"fallback_node": "fallback_node",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user