“意图”用于对一轮对话中的最终用户意图进行分类。您可以为每个代理定义多个意图,组合意图可以处理一段完整的对话。当最终用户输入文字或说出话语(称为“最终用户表述”时,Dialogflow 会将最终用户表述与代理中的最佳意图进行匹配。匹配意图也又称为“意图分类”。
例如,您可以创建一个天气代理,用于识别并响应最终用户关于天气的问题。您可以为与天气预报有关的问题定义一个意图。如果最终用户说出“What's the forecast?”,Dialogflow 会将该最终用户表述与预测意图相匹配。您还可以定义意图,以便从最终用户表述中提取实用信息,例如所需哪个时间或地方的天气预报。提取的数据对于系统为最终用户执行天气查询非常重要。
基本意图包含以下内容:
- 训练短语:这些是最终用户可能会说的示例短语。当最终用户的表述与其中某一短语类似时,Dialogflow 会匹配意图。因为 Dialogflow 的内置机器学习功能可使用其他相似的短语扩展您的列表,所以您无需定义所有可能出现的示例。
- 操作:您可以为每个意图定义一个操作。当匹配了相应意图时,Dialogflow 会向系统提供该操作,您可以使用该操作触发系统中定义的特定操作。
- 参数:在运行时中匹配了某个意图时,Dialogflow 会将从最终用户表述中提取的值作为“参数”提供。每个参数都有一个类型,称为实体类型,用于确切规定提取该数据的方式。与原始的最终用户输入不同,参数是结构化数据,可以轻松用于执行某些逻辑或生成响应。
- 响应:您可以定义要返回给最终用户的文本、语音或视觉响应。这些响应可能是为最终用户提供解答、向最终用户询问更多信息或终止对话。
下图显示了匹配意图和响应最终用户的基本流程:
更复杂的意图还可能包含以下内容:
- 上下文:Dialogflow 上下文类似于自然语言上下文。如果有人告诉您“they are orange”,您需要上下文才能理解此人所指的是什么。同样,要让 Dialogflow 处理类似的最终用户表述,需要为其提供上下文以正确地与意图匹配。
- 事件:借助事件,您可以根据已发生的情况而非最终用户表达的内容来调用意图。