跳到主要内容

节点 - #条件#脚本

  • 对于 Xmind 对话树,节点内容的首行必须是 “#条件#脚本”,然后第二行的内容就是一段返回 bool 值的 Python 表达式脚本(为了美观书写时也可以分成多行 / 系统会自动拼接成一行 / 脚本中可基于 ctx 对信息项进行访问),如:
    #条件#脚本
    ...
    ...ctx["{...}"]...
    ...
  • 对于 Python 对话树,chattree.create_node() 的第一个参数必须是 “#条件#脚本”,第二个参数 dict 中的 key 为 “函数”,value 为返回 bool 值的 Python 函数名或 lambda 表达式(函数定义或 lambda 都须带一个 ctx 参数并可基于 ctx 对信息项进行访问),如:
    def xxxx_func(ctx):
    ...
    ctx["{...}"] = "..."
    ...
    return ... # 返回 bool 值
    xxx_node = chattree.create_node("#条件#脚本", {"函数": xxxx_func})
    xxx_node = chattree.create_node("#条件#脚本", {"函数": lambda ctx : ...ctx["{...}"]...})
  • 这段返回 bool 值的 Python 表达式脚本或 Python 函数,可实现复杂逻辑的条件判断
  • 脚本或函数执行后结果为 True 时才会执行该 “#条件#脚本” 节点的子孙节点
  • 更多参见 “Python 脚本/函数”
  • “对话树例子” 中的 “商旅平台_预订机票” 和 “120” 对话树例子中有该节点