节点 - #触发#
- 对于 Xmind 对话树,节点内容的首行必须是 “#触发#”,然后无需其它行的内容,如:
#触发# - 对于 Python 对话树,chattree.create_node() 的第一个参数必须是 “#触发#”,第二个参数 dict 为空,如:
trigger_node = chattree.create_node("#触发#", {}) - “#触发#” 节点后面只能跟若干 “#用户意图#” 节点,这些 “#用户意图#” 节点的 “意图” 属性表示一个 触发(或子话题),对话过程中允许随时触发子话题,即在对话的任何 “#单次交互#” 或 “#多轮交互#” 节点上,如果用户输入的话语命中了 “#触发#” 后面某个用户意图的意思,则会立刻跳到该用户意图节点的后继节点开始执行,执行完毕后再返回到刚才跳转的节点(有一个例外是,如果此时之前执行过的某个 “#单次交互#” 节点的值被清空了,则会先执行这个被清空值的 “#单次交互#” 节点,然后再执行到刚才命中 “#触发#” 后面那个用户意图的 “#单次交互#” 或 “#多轮交互#” 节点时,才会跳到 “#触发#” 节点后面那个被命中的用户意图节点的后继节点开始执行)
- 在调用子对话树的情况下,子对话树和父对话树的 “#触发#” 节点都可能被触发
- 每次进入某个触发的子话题的流程前,其内部的 “#单次交互#” 节点的信息项(除了用户当前刚刚输入的信息项)都会被清空
- 除了 “#开始#” 节点,本节点是另外唯一的根节点(可以没有父节点的节点);也可以没有 “#触发#” 节点
- “对话树例子” 中的 “商旅平台_预订机票” 对话树例子中有该节点