概述

本教程将向您展示如何构建一个简单的Dialogflow聊天机器人,引导您完成Dialogflow的最重要功能。您将学习如何:

  • 创建Dialogflow帐户和第一个Dialogflow聊天机器人,它允许您定义自然语言理解模型。

  • 使用实体提取参数,您可以使用这些参数定义如何从用户话语中提取数据。实体允许您对用户话语的重要部分进行分类。这使您可以提取与类别而不是特定话语匹配的数据,从而为您提供更大的灵活性。

  • 使用上下文管理状态,这使您可以在多轮中保持对话状态。

  • 与Google智能助理集成,可让您将Dialogflow聊天机器人部署为用户可通过智能调用的操作。

创建Dialogflow帐户

本页介绍如何创建和登录Dialogflow帐户。

Dialogflow需要Google帐户才能登录。如果您已有帐户,请跳至下一部分。如果您没有Google帐户,可以使用当前的电子邮件在此处获取一个帐户,也可以使用Gmail注册Google帐户和电子邮件。

创建Dialogflow帐户

现在您已登录自己的Google帐户,可以按照以下步骤登录Dialogflow:

https://console.dialogflow.com/api-client/#/login

点击Google登录按钮:

setup-001.png

如果您在浏览器中登录了多个Google帐户,请选择要登录的Google帐户。

允许Dialogflow访问您的Google帐户。Dialogflow使用以下权限:

  • 通过Google Cloud Platform服务查看和管理您的数据:此权限允许Dialogflow代表您为Firebase部署云功能,以(可选)为您的聊天机器人提供支持。有关详细信息,请参阅Fulfillment。

  • 查看和管理您的Google智能助理语音命令,对话框和语法:此权限允许您在Google智能助理上测试您的Dialogflow聊天机器人。有关详情,请参阅Google智能助理集成。

  • 查看和管理您在Google上的操作:此权限允许您将Dialogflow代理部署到Google智能助理和Google操作系统作为对话操作。

    最后,您将了解Dialogflow的服务条款,您需要接受这些条款才能使用Dialogflow。

setup-003.png

创建和查询聊天机器人

本页介绍如何创建和试用您的第一个Dialogflow聊天机器人。

创建您的第一个Dialogflow聊天机器人

要创建Dialogflow聊天机器人:

打开浏览器并登录Dialogflow。

单击左侧菜单中的“创建聊天机器人”。

输入聊天机器人的名称,默认语言和默认时区,然后单击“创建”按钮。

creating-002.png

Dialogflow控制台

您现在应该看到左侧的Dialogflow控制台和菜单面板。如果您正在使用较小的屏幕并且菜单已隐藏,请单击左上角的菜单菜单按钮。设置设置按钮将您带到当前代理的设置。

页面中间将显示代理的意图列表。默认情况下,Dialogflow 聊天机器人以两个意图开头。当您的聊天机器人不了解您的用户所说的内容时,您的聊天机器人会与默认后备意图相匹配。默认欢迎意图向您的用户致意。可以更改这些以定制体验。

Dialogflow模拟器位于页面的右侧。模拟器允许您通过说出或键入消息来试用聊天机器人。

creating-console-ui.png

查询聊天机器人

creating-006.png

聊天机器人最好被描述为NLU(自然语言理解)模块。这些可以包含在您的应用,产品或服务中,并将自然用户请求转换为可操作的数据。

是时候尝试你的聊天机器人了!在右侧的Dialogflow模拟器中,单击“立即尝试”,输入任何内容的文本字段,然后按Enter键。

您刚刚与Dialogflow聊天机器人代理商交谈过!您可能会注意到您的聊天机器人不了解您。由于您的输入与任何意图都不匹配,因此匹配默认回退意图,并且您在该意图内收到一个默认回复。

默认回退意图回复提示用户以可匹配的方式重新构建其查询。您可以更改Default Fallback Intent中的响应以提供示例查询,并指导用户发出可以与intent相匹配的请求。

创建你的第一意图

Dialogflow使用意图来分类用户的意图。意图有训练短语,这是用户可能对您的聊天机器人说的内容的示例。例如,想要知道代理人姓名的人可能会问:“你的名字是什么?”,“你有名字吗?”,或者只是说“名字”。所有这些查询都是唯一的,但具有相同的意图:获取聊天机器人的名称。

要覆盖此查询,请按照以下步骤创建意图:

  • 单击左侧菜单中Intents旁边的加号。

  • 将名称“name”添加到Intent name文本字段中。

  • 在Training Phrases部分中,单击文本字段并输入以下内容,在每个条目后按Enter键:

你叫什么名字?

你有名字吗?

名称

  • 在“响应”部分中,单击文本字段并输入以下响应:

我的名字是Dialogflow!

  • 单击“保存”按钮。

creating-008.png

现在尝试询问聊天机器人的名称。在右侧的模拟器中,输入“你叫什么名字?” 然后按Enter键。

即使您的查询与训练短语(“您的名字是什么?”与“您的名字是什么?”)略有不同,您的聊天机器人也会正确回复查询。它能够通过使用机器学习来解决这个问题。

Dialogflow使用训练短语作为机器学习模型的示例,以将用户的查询与正确的意图相匹配。机器学习模型根据聊天机器人中的每个意图检查查询,为每个意图提供分数,并匹配得分最高的意图。如果得分最高的意图得分非常低,则回退意图匹配。

后续还有下篇,内容抽取和上下文状态管理。

英文原文:https://dialogflow.com/docs/getting-started

欢迎关注磐创博客资源汇总站:

http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:

http://pytorch.panchuang.net/

构建一个简单的 Google Dialogflow 聊天机器人【上】的更多相关文章

  1. 通过python 构建一个简单的聊天服务器

    构建一个 Python 聊天服务器 一个简单的聊天服务器 现在您已经了解了 Python 中基本的网络 API:接下来可以在一个简单的应用程序中应用这些知识了.在本节中,将构建一个简单的聊天服务器.使 ...

  2. 【Android Developers Training】 3. 构建一个简单UI

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  3. gRPC初探——概念介绍以及如何构建一个简单的gRPC服务

    目录 引言 1. gRPC简介 2. 使用Protocol Buffers进行服务定义 2.1 定义消息 2.2 定义服务接口 3.构建简单的gRPC服务 3.1 编写proto文件,定义消息和接口 ...

  4. struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb

    在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...

  5. 构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)

    构建一个简单的Linux系统 MenuOs —— start_kernel到init进程 作者:刘世鹏20135304 <Linux内核分析>MOOC课程http://mooc.study ...

  6. 第三周——构建一个简单的Linux系统MenuOS

    [洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 第三周  构建一个 ...

  7. 构建一个简单的基于MVC模式的JavaWeb

    零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...

  8. 手把手教你用vue-cli构建一个简单的路由应用

    上一章说道:十分钟上手-搭建vue开发环境(新手教程)https://www.jianshu.com/p/0c6678671635 开发环境搭建好之后,那么开始新添加一些页面,构建最基本的vue项目, ...

  9. Ant—使用Ant构建一个简单的Java工程(两)

    博客<Ant-使用Ant构建一个简单的Java项目(一)>演示了使用Ant工具构建简单的Java项目,接着这个样例来进一步学习Ant: 上面样例须要运行多条ant命令才干运行Test类中的 ...

随机推荐

  1. 得亏了它,我才把潜藏那么深的Bug挖出来

    2020年写了很多事故解决的文章,并不是我绞尽脑汁想出来的,而是真的遇到了这些问题.通过文章的方式记录下来,分享出去,才有意义. 事故背景 首先看下面的图吧,这是我从cat上截的图. 可以看到是一个R ...

  2. SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

  3. SVN版本控制说明与相关指令

    SVN版本控制说明 目的 多个版本中并行开发,提高开发效率: 保证各个版本和各个环境(开发.测试.主干)的独立,避免相互影响: 通过分支与主干的合并,这样主干永远是最新.最高版本,并且都在后面的测试中 ...

  4. Kali虚拟机的扩容经历

    Kali虚拟机的扩容经历 0x01 起因 更新了一下软件包,竟然提示我空间不足. 升级了 687 个软件包,新安装了 82 个软件包,要卸载 0 个软件包,有 8 个软件包未被升级. 需要下载 1,5 ...

  5. Java避坑宝典《Java业务开发常见错误100例》上线了

    写这个专栏的缘起 之前我写过一篇博客:<朱晔的互联网架构实践心得S2E2:写业务代码最容易掉的10种坑>,引起的关注还是挺多的.后来和极客时间的编辑一拍即合决定以这个为题写一个专栏.其实所 ...

  6. 趣谈编程史第3期-大器晚成的新晋流量Python发展史

    写在前面 这篇博文主要介绍javaScript的发展史,根据作者在B站发布的同名视频的文案整理修改而成,对视频感兴趣的博友可访问https://www.bilibili.com/video/av860 ...

  7. 蓝牙技术 A2DP AVRCP BlueZ

    BlueZ 做为 linux 标准的协议栈,提供非常多的 profile ,各种的支持,ble , 蓝牙网络,文件传输,a2dp 音频传输. A2DP——Advanced Audio Distribu ...

  8. ALSA 声卡 驱动 linux 4.1.36 中变化

    linux 4.1.36 中变化 1ret = request_irq(IRQ_DMA2, s3c2440_dma2_irq, IRQF_DISABLED, "myalsa for play ...

  9. MyISAM 和 InnoDB

    1.MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级 ...

  10. C++类的多态

    目录 一.静态多态 二.动态多态 三.虚函数 四.纯虚函数 五.C++ 接口(抽象类) 六.应用经验 七.版权声明 多态按字面的意思就是多种形态.当类之间存在层次结构,并且类之间是通过继承关联时,就可 ...