Search Results for

    Show / Hide Table of Contents

    设置回复

    在匹配器中,我们已经学到了怎么添加一个回答。事实上你可以添加任意数量的回答。这里还有一些高级功能可以帮助你完成更多的任务。

    文本形式

    最直接的设置文本答案的方法。

    + 在吗
    - 你好,在的
    

    如果添加了多个回答,系统会从中随机挑选一个作为回复, 然后丢掉这个回答。

    + 在吗
    - 亲,在的
    - 亲,有什么需要帮助
    - 你好,请问遇到什么问题了吗?
    

    所谓丢掉这个答案,是指机器人针对同一个用户,在【会话回溯最大时长】内再次匹配上该匹配器时,选择回复时,不考虑使用过的回复。

    + 在吗
    - {keep} 亲,在的
    - 亲,有什么需要帮助
    - 你好,请问遇到什么问题了吗?
    

    模糊匹配器受机器人记忆模型限制,如果需要在一个记忆周期内一直生效,可以使用 {keep} 标记,详细介绍,参考文档。

    也可以在匹配器前添加*{keep}*,就不用在每个回答中都添加了

    + {keep} 在吗
    - 亲,在的
    - 亲,有什么需要帮助
    - 你好,请问遇到什么问题了吗?
    

    如果回答很长,可以通过“^”分割以方便可读性。可以通过“\n”实现换行

    + 在吗
    - 你好,这里是客服中心,\n
    ^ 请问遇到什么问题了吗?
    

    它等价于

    + 在吗
    - 你好,这里是客服中心,请问遇到什么问题了吗?
    

    引用回复

    有些时候,在问答对中重用一些回复能使编写脚本效率更高,这时可以定义一个问答对,并在脚本其它位置引用它。

    + 在吗
    - {@__greeting__} 请问有什么能帮助您?
    
    + __greeting__
    - 亲,在的。
    - 你好,客服小美为您服务
    - 亲亲,稍等,客服马上就到
    

    引用的方式就是 {@匹配器},匹配器中的下划线不是必须的,上面例子中的匹配器__greeting__的命名是为了增强脚本的可读性。

    将一些常用的回复以约定的匹配器命名方式命名,不但方便复用回复,使脚本可读性好,方便维护,而且更方便使用上下轮钩子实现多轮对话。

    + 在吗
    - {@__greeting__}
    
        + (*) 问路 (*)
        % {@__greeting__}
        - 请使用地图APP
    
        + (*) 打车 (*)
        % {@__greeting__}
        - 出租车在门口挥手示意停车
    
        + (*)
        % {@__greeting__}
        - {@__greeting__}
    
    + __greeting__
    - 亲,在的。请问有什么能帮助您?
    - 你好,客服小美为您服务
    - 亲亲,稍等,客服马上就到
    

    通配符取值

    通配符取值是针对通配符匹配器的,匹配成功后,可以读取匹配到的词汇。在回答中需要使用输入中的通配符值,这时可以使用<cap>达到目的。

    + 我是 *~3
    - 你好,<cap>
    
    匹配:小明比小红高
    回答:你确定小明比小红高吗?
    

    如果用户输入,“我是张三”,那么系统将回复“你好,张三”,当有多个槽时,可以使用多个<cap>。

    + *2 比 *2 高
    - 你确定<cap1>比<cap2>高吗?
    

    在对话中,我们有时候会需要以前的通配符值,看一下下面这个例子:

    + 我叫 *~3
    - 你好,<cap1>
    
        + 你猜我叫什么?
        % 你好,<cap1>
        - 你刚说了,你叫<p1cap1>
    

    <pNcapM>代表了以前的通配符。其中N代表在在对话中之前的问答,M代表捕获的位移。

    此处,上下轮钩子,即%开头的句子,代表匹配器“你猜我叫什么?”只服务于“你好,<cap1>”作为回复时,它会被优先匹配。上一轮对话的回复通过(%)的方式指定了接下来的逻辑,形成多轮对话。

    关于上下文钩子的详细介绍文档。

    提示: 1) +/%/- 前的空格不是必须的,在多轮对话中,空格可以增强脚本的可读性,比如使用上下轮钩子中的段首缩进。 2) 通配符取值适用于通配符匹配器,其它形式的匹配器,有不同的值传递方式,参考它们的详细说明。

    函数

    函数就是通过写 JavaScript 脚本,处理回复,在脚本中,可以实现各种逻辑,做外部系统集成等。

    + 我叫 *~3
    - ^getGreetings(<cap1>)
    

    那么,在多轮对话设计器内,通过 exports.getGreetings = async function(){ // do your magic} 来定制化回复内容。

    函数的详细使用参考文档。

    接下来

    • 上下轮钩子

    • 函数

    In This Article
    Back to top Copyright © (2018-CopyrightYearPlaceholderDONOTCHANGEManually) 北京华夏春松科技有限公司 京ICP备20023756号-3