前言
根据公司需要,需要调研Google-cloud-Dialogflow这个智能对话产品。并且查看一下这个产品的可用性,与国内比较成熟的智能对话
厂商相比,有何不同。
智能对话产品架构概念
常见的智能对话产品主要是以下流程:
上图是阿里云智能对话平台文档中的智能语音交互系统架构图,从架构图中可以看到有以下重要的组件:
- 用户端应用。运行在
H5
、APP
、智能终端
等等的应用,通过文本、语音等形式进行交互 - 路由服务。进行转发使用
- 智能对话。核心能力提供NLU(自然语言理解)与NLP(自然语言处理)的智能问答服务。目前国内有
百度UNIT
、阿里云小蜜
、腾讯智能对话平台
等等。 - 第三方应用服务,比如在使用智能对话的同时,在引用一些自定义的处理
- 客户管理台。企业客户可以在管理台进行操作 通过如上介绍,我们可以大概理解了智能对话产品的架构,以及整个的交互
Dialogflow产品介绍
Dialogflow 是一个自然语言理解平台,可让您轻松地设计出对话式界面并将其集成到您的移动应用、网页应用、设备、聊天机器人、交互式语音响应系统等等中。借助 Dialogflow,您可以提供新颖且引人入胜的交互方式,供用户与您的产品交互。
Dialogflow 可以分析来自客户的多种输入,包括来自电话或录音等的文本或音频输入。 它还可以通过文本或合成语音等多种方式响应您的客户。主要提供的模块有如下:
Dialogflow分为Dialogflow-EX
与Dialogflow-CX
,"CX"比"EX"主要增加了流程可视化配置,类似于工作流
会话的功能,以下主要介绍Dialogflow-EX
参考资料:cloud.google.com/dialogflow/…
Dialogflow核心概念
核心概念 | 含义 | 是否支持接口维护 |
---|---|---|
代理 | 机器人,代理对话 | 是 |
意图 | 标准问和相似问,用于理解用户问出的问题 | 是 |
实体 | 匹配意图参数,比如时间,年龄等等 | 是 |
上下文 | 流程控制,上下文关联 | 是 |
Fulfillment | webhook,也就是在匹配完成后可以进行自定义操作 | 是 |
代理
Dialogflow 代理类似于人类呼叫中心的客服人员。您可以对代理/客服人员进行训练来处理预期的对话场景。
在代理中我们可以对如下参数进行设置
- 基本信息
语言环境
- Dialogflow支持多语言,在填写一种语言时,即可翻译成20多个国家的语言,比如训练断句中填写的是“你好”,那么如果选择多种语言,在匹配时,不管输入“hi”、“你好”、“안녕하세요”都可以匹配到意图
- 机器语言设置,设置意图阈值等等
- 情绪分析,开启时可以返回用户情绪
意图
“意图”我也比较喜欢叫它标准问,用于对一轮对话中的最终用户意图进行分类。您可以为每个代理定义多个意图,组合意图可以处理一段完整的对话。当最终用户输入文字或说出话语(称为“最终用户表述“某某”时,Dialogflow 会将最终用户表述与代理中的最佳意图进行匹配。匹配意图也又称为“意图分类”。
例如,您可以创建一个天气代理,用于识别并响应最终用户关于天气的问题。您可以为与天气预报有关的问题定义一个意图。如果最终用户说出“What's the forecast?”,Dialogflow 会将该最终用户表述与预测意图相匹配。您还可以定义意图,以便从最终用户表述中提取实用信息,例如所需哪个时间或地方的天气预报。提取的数据对于系统为最终用户执行天气查询非常重要。
基本意图包括以下内容:
训练短语
(相似问)事件
匹配之后可以自定义一些事件参数
可以自定义流程参数响应
匹配之后的答案,答案可以分为以下几种- 文本答案
- 根据文本转成的TTS(语音)
- 文件链接等等 下面介绍了匹配意图的整体流程:
实体
每个意图参数都有一个类型,称为实体类型,该类型规定从最终用户表述中提取数据的方式。
比如,用户说出“我在1995年1月1号
出生”,那么1995年1月1号
就可以是实体类型中的一种,在配置定义一个date** 的实体,来匹配用户的生日日期类型。
上下文(流程控制)
在许多实际对话场景,都要求有上下文关联的。比如如下流程:
- 用户问:帮我介绍下最新的保险产品。
- 机器人答:目前有我司新推出了“疫情险”这款产品,在隔离期间可以很好的保障您的权限
- 用户问:这个产品多少钱?
- 机器人答:56元就可以啦。
也就是有个上下文关联匹配,以下是具体流程图示例:
集成服务与API集成
Dialogflow可以与Google 助理、Slack 和 Facebook Messenger 等许多热门对话平台集成。目前google-cloud里就提供了Agent Assist(客服助手)进行集成。
Dialogflow还提供API集成,可以使用接口维护意图实体,也可以直接用接口进行对话。
Fulfillment
代理钩子,就是在匹配意图时,可以进行一些自定义操作,比如访问第三方服务接口等等。
配置流程与如何使用
下面介绍在Dialogflow
控制台下,如何进行配置简易的配置机器人;
创建google-cloud账号
使用google-cloud产品时,需要创建一个账号,并且绑定信用卡,这个我就不详细介绍了,可以参考如下链接: zhuanlan.zhihu.com/p/479555595
创建一个代理
Dialogflow
为我们提供了很多默认模板,新手在进行操作时,可以直接使用建议模板进行测试
创建意图
模板创建完之后,我们点击意图模块,可以看到创建了很多默认意图,不过我们这次先创建自定义意图。
在Training phrases里面输入"用户问",并且在Responses填写回答,点击保存即可
对话测试
在右侧输入刚才新建的意图里面的"用户问",就可以看到匹配到了对应的意图了
基于Dialogflow的产品
Agent Assist简介
Agent Assist 使用机器学习技术在人工客服与客户对话时为其提供建议。建议基于您自己上传的数据,因此可以根据您的具体业务需求进行定制。Agent Assist 还有多项功能,可用于提供不同类型的建议,并微调为您的客服人员提供的建议内容。例如,您可以使用智能回复功能配置建议。最终用户每次提出问题时,Agent Assist 都可以向人工客服提供建议的响应。也就是常见的表格问答
与对话式文档
问答
提供两种类型
- 对话数据集类型
- 知识库类型 每种类型都支持对应的知识类型即知识文档** 集合(文章或常见问题解答文档)。
配置方法: 需要创建于维护一个在线文档(CSV)并且上传到知识库中即可。
知识文档是组成知识库的文章(用于文章建议)或常见问题解答文档(用于常见问题解答辅助)
Agent Assist适用场景
适用于检索知识文档
的场景。比如文章建议、常见问答解答辅助等等。
Dialogflow-CX简介
Dialogflow CX 提供了一种全新的代理设计方法,采用状态机方法进行代理设计。这样,您就可以拥有清晰而明确的对话控制、更出色的最终用户体验以及更好的开发工作流。类似于工作流
会话的功能,对比EX
主要增加了可视化流程配置功能。
Dialogflow-CX适用场景
适用非常复杂的上下文场景,这样可以更利于配置上下文,并且在配置时,进行了一部分简化工作。
Dialogflow与厂商比较
目前比较出名的有以下几个厂商:
阿里云小蜜
百度UNIT
微信智能对话平台
总结:与国内的几家的智能对话厂商进行比较,发现大家对于核心概念的支持都是一样的,只不过有的名字叫法不一样。如果在国内推荐使用国内的平台,如果产品需要国际化的话,可以优化考虑使用
Dialogflow
,因为该产品对英语毕竟是国外出的,英文模型
的支持肯定更好
结语
Google-cloud-Dialogflow这个对话平台,国内已经有很多可替代产品了,如果公司没有特殊要求的话,建议优先使用“阿里云云小蜜”,阿里毕竟是国内技术龙头,而且在与项目集成时也更符合国人习惯。至此调研完毕