Google-cloud-Dialogflow技术调研报告

880 阅读8分钟

前言

根据公司需要,需要调研Google-cloud-Dialogflow这个智能对话产品。并且查看一下这个产品的可用性,与国内比较成熟的智能对话厂商相比,有何不同。

智能对话产品架构概念

常见的智能对话产品主要是以下流程:

image.png 上图是阿里云智能对话平台文档中的智能语音交互系统架构图,从架构图中可以看到有以下重要的组件:

  • 用户端应用。运行在H5APP智能终端等等的应用,通过文本、语音等形式进行交互
  • 路由服务。进行转发使用
  • 智能对话。核心能力提供NLU(自然语言理解)与NLP(自然语言处理)的智能问答服务。目前国内有百度UNIT阿里云小蜜腾讯智能对话平台等等。
  • 第三方应用服务,比如在使用智能对话的同时,在引用一些自定义的处理
  • 客户管理台。企业客户可以在管理台进行操作 通过如上介绍,我们可以大概理解了智能对话产品的架构,以及整个的交互

Dialogflow产品介绍

Dialogflow 是一个自然语言理解平台,可让您轻松地设计出对话式界面并将其集成到您的移动应用、网页应用、设备、聊天机器人、交互式语音响应系统等等中。借助 Dialogflow,您可以提供新颖且引人入胜的交互方式,供用户与您的产品交互。

Dialogflow 可以分析来自客户的多种输入,包括来自电话或录音等的文本或音频输入。 它还可以通过文本或合成语音等多种方式响应您的客户。主要提供的模块有如下:

DialogFlow.png

Dialogflow分为Dialogflow-EXDialogflow-CX,"CX"比"EX"主要增加了流程可视化配置,类似于工作流会话的功能,以下主要介绍Dialogflow-EX

参考资料:cloud.google.com/dialogflow/…

Dialogflow核心概念

核心概念含义是否支持接口维护
代理机器人,代理对话
意图标准问和相似问,用于理解用户问出的问题
实体匹配意图参数,比如时间,年龄等等
上下文流程控制,上下文关联
Fulfillmentwebhook,也就是在匹配完成后可以进行自定义操作

代理

Dialogflow 代理类似于人类呼叫中心的客服人员。您可以对代理/客服人员进行训练来处理预期的对话场景。

在代理中我们可以对如下参数进行设置

  • 基本信息
  • 语言环境
    • Dialogflow支持多语言,在填写一种语言时,即可翻译成20多个国家的语言,比如训练断句中填写的是“你好”,那么如果选择多种语言,在匹配时,不管输入“hi”、“你好”、“안녕하세요”都可以匹配到意图
  • 机器语言设置,设置意图阈值等等
  • 情绪分析,开启时可以返回用户情绪

意图

“意图”我也比较喜欢叫它标准问,用于对一轮对话中的最终用户意图进行分类。您可以为每个代理定义多个意图,组合意图可以处理一段完整的对话。当最终用户输入文字或说出话语(称为“最终用户表述“某某”时,Dialogflow 会将最终用户表述与代理中的最佳意图进行匹配。匹配意图也又称为“意图分类”。

例如,您可以创建一个天气代理,用于识别并响应最终用户关于天气的问题。您可以为与天气预报有关的问题定义一个意图。如果最终用户说出“What's the forecast?”,Dialogflow 会将该最终用户表述与预测意图相匹配。您还可以定义意图,以便从最终用户表述中提取实用信息,例如所需哪个时间或地方的天气预报。提取的数据对于系统为最终用户执行天气查询非常重要。

基本意图包括以下内容:

  • 训练短语(相似问)
  • 事件匹配之后可以自定义一些事件
  • 参数可以自定义流程参数
  • 响应匹配之后的答案,答案可以分为以下几种
    • 文本答案
    • 根据文本转成的TTS(语音)
    • 文件链接等等 下面介绍了匹配意图的整体流程:

image.png

实体

每个意图参数都有一个类型,称为实体类型,该类型规定从最终用户表述中提取数据的方式。

比如,用户说出“我在1995年1月1号出生”,那么1995年1月1号就可以是实体类型中的一种,在配置定义一个date** 的实体,来匹配用户的生日日期类型。

上下文(流程控制)

在许多实际对话场景,都要求有上下文关联的。比如如下流程:

  1. 用户问:帮我介绍下最新的保险产品。
  2. 机器人答:目前有我司新推出了“疫情险”这款产品,在隔离期间可以很好的保障您的权限
  3. 用户问:这个产品多少钱?
  4. 机器人答:56元就可以啦。

也就是有个上下文关联匹配,以下是具体流程图示例:

image.png

集成服务与API集成

Dialogflow可以与Google 助理、Slack 和 Facebook Messenger 等许多热门对话平台集成。目前google-cloud里就提供了Agent Assist(客服助手)进行集成。

Dialogflow还提供API集成,可以使用接口维护意图实体,也可以直接用接口进行对话。

Fulfillment

代理钩子,就是在匹配意图时,可以进行一些自定义操作,比如访问第三方服务接口等等。

配置流程与如何使用

下面介绍在Dialogflow控制台下,如何进行配置简易的配置机器人;

创建google-cloud账号

使用google-cloud产品时,需要创建一个账号,并且绑定信用卡,这个我就不详细介绍了,可以参考如下链接: zhuanlan.zhihu.com/p/479555595

创建一个代理

Dialogflow为我们提供了很多默认模板,新手在进行操作时,可以直接使用建议模板进行测试

image.png

创建意图

模板创建完之后,我们点击意图模块,可以看到创建了很多默认意图,不过我们这次先创建自定义意图。

image.png 在Training phrases里面输入"用户问",并且在Responses填写回答,点击保存即可

image.png

对话测试

在右侧输入刚才新建的意图里面的"用户问",就可以看到匹配到了对应的意图了

image.png

基于Dialogflow的产品

Agent Assist简介

Agent Assist 使用机器学习技术在人工客服与客户对话时为其提供建议。建议基于您自己上传的数据,因此可以根据您的具体业务需求进行定制。Agent Assist 还有多项功能,可用于提供不同类型的建议,并微调为您的客服人员提供的建议内容。例如,您可以使用智能回复功能配置建议。最终用户每次提出问题时,Agent Assist 都可以向人工客服提供建议的响应。也就是常见的表格问答对话式文档问答

提供两种类型

  • 对话数据集类型
  • 知识库类型 每种类型都支持对应的知识类型即知识文档** 集合(文章或常见问题解答文档)。

配置方法: 需要创建于维护一个在线文档(CSV)并且上传到知识库中即可。

知识文档是组成知识库的文章(用于文章建议)或常见问题解答文档(用于常见问题解答辅助

Agent Assist适用场景

适用于检索知识文档的场景。比如文章建议、常见问答解答辅助等等。

Dialogflow-CX简介

Dialogflow CX 提供了一种全新的代理设计方法,采用状态机方法进行代理设计。这样,您就可以拥有清晰而明确的对话控制、更出色的最终用户体验以及更好的开发工作流。类似于工作流会话的功能,对比EX主要增加了可视化流程配置功能。

Dialogflow-CX适用场景

适用非常复杂的上下文场景,这样可以更利于配置上下文,并且在配置时,进行了一部分简化工作。

Dialogflow与厂商比较

目前比较出名的有以下几个厂商:

  • 阿里云小蜜
  • 百度UNIT
  • 微信智能对话平台

image.png 总结:与国内的几家的智能对话厂商进行比较,发现大家对于核心概念的支持都是一样的,只不过有的名字叫法不一样。如果在国内推荐使用国内的平台,如果产品需要国际化的话,可以优化考虑使用Dialogflow,因为该产品对英语毕竟是国外出的,英文模型的支持肯定更好

结语

Google-cloud-Dialogflow这个对话平台,国内已经有很多可替代产品了,如果公司没有特殊要求的话,建议优先使用“阿里云云小蜜”,阿里毕竟是国内技术龙头,而且在与项目集成时也更符合国人习惯。至此调研完毕