在学习本教程之前,您应该熟悉一下快速入门中的 Dialogflow 基础知识。
创建代理
使用 Dialogflow ES 控制台创建名为“PackageTracker”的代理。如果您不确定如何操作,请再次参阅快速入门。
如果您希望使用现有的代理,也没关系。只是需要确保在代理设置中启用自动语音自适应。默认情况下,新代理启用此功能。
创建序列识别器实体
此代理的核心功能是通过语音理解字母数字序列。具体而言,您将设置代理以一次侦听几个字符,最后将所有子序列整合到一起,然后再根据数据存储区验证最终序列。我们首先定义一个实体,以识别部分序列。
创建正则表达式序列实体
我们需要使用正则表达式实体来捕获序列,以便自动语音适应知道要侦听“ABC”,而不是“a bee sea”。
这些实体必须符合自动语音自适应正则表达式实体准则,以确保语音识别功能调整为识别拼读出的序列。
部分序列实体
我们将实体设置为接受包含至少 3 个字符的任何字母数字序列。稍后,您将添加网络钩子,以便针对数据存储区或 API 验证最终序列。
- 创建新实体。我们将其命名为“alphanumeric”,因为它将接受任何字母数字输入。
- 选中正则表达式实体对应的复选框
- 添加一个条目
^[a-zA-Z0-9]{3}[a-zA-Z0-9]*$
- 点击保存。
请注意,您添加的正则表达式非常严格,因为它只能查找由字母数字组成的字符串,而不包含任何空格或短划线。选中此复选框很重要,原因有两个:
- 此正则表达式遵循启用“拼读出的序列”识别器模式的自动语音自适应要求。
- 通过避免查找空格并仅查找整个短语 (
^
...$
),最终用户可以轻松退出序列识别。例如,当您提示“What's your order number”且最终用户回复“no I want to order ”时,正则表达式会拒绝,而 Dialogflow 将会知道查找与该短语相匹配的另一个意图。
如果您只对数字值感兴趣,您可以创建一个更个性化的实体(如 [0-9]{3}[0-9]*
),或者直接使用内置的 @sys.number-sequence
实体。
本教程的其余部分假设您要收集字母数字序列。跳转到下一部分,了解如何设置意图来收集这些序列。