构建一个简单的 Google Dialogflow 聊天机器人【上】
概述
本教程将向您展示如何构建一个简单的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 聊天机器人【上】的更多相关文章
- 通过python 构建一个简单的聊天服务器
构建一个 Python 聊天服务器 一个简单的聊天服务器 现在您已经了解了 Python 中基本的网络 API:接下来可以在一个简单的应用程序中应用这些知识了.在本节中,将构建一个简单的聊天服务器.使 ...
- 【Android Developers Training】 3. 构建一个简单UI
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- gRPC初探——概念介绍以及如何构建一个简单的gRPC服务
目录 引言 1. gRPC简介 2. 使用Protocol Buffers进行服务定义 2.1 定义消息 2.2 定义服务接口 3.构建简单的gRPC服务 3.1 编写proto文件,定义消息和接口 ...
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- 构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)
构建一个简单的Linux系统 MenuOs —— start_kernel到init进程 作者:刘世鹏20135304 <Linux内核分析>MOOC课程http://mooc.study ...
- 第三周——构建一个简单的Linux系统MenuOS
[洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 第三周 构建一个 ...
- 构建一个简单的基于MVC模式的JavaWeb
零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...
- 手把手教你用vue-cli构建一个简单的路由应用
上一章说道:十分钟上手-搭建vue开发环境(新手教程)https://www.jianshu.com/p/0c6678671635 开发环境搭建好之后,那么开始新添加一些页面,构建最基本的vue项目, ...
- Ant—使用Ant构建一个简单的Java工程(两)
博客<Ant-使用Ant构建一个简单的Java项目(一)>演示了使用Ant工具构建简单的Java项目,接着这个样例来进一步学习Ant: 上面样例须要运行多条ant命令才干运行Test类中的 ...
随机推荐
- brup安装证书抓取https
brup安装证书抓取https 0x00下载 下载安装brup 前提是需要java环境 0X01配置brup 配置brup的代理设置 0X02设置浏览器 我使用的是火狐,以下都以火狐为例 0X03证书 ...
- PHP 解决对文件操作的高并发问题
解决方案: 对文件进行加锁时,设置一个超时时间.超时设置为1ms,如果这段时间内没有获得锁,就反复获得,直到获得对文件的操作权为止.如果超市限制已到,就必须马上退出,让出锁让其他进程进行操作. ...
- java基础进阶篇(二)_Arraylist ------【java源码栈】
前言 ArrayList 在开发中用到的频率很高,其中原生态提供的方法有一些很好用的重载版本,其中有的坑该跳得跳啊. 一.ArrayList的6种初始化方法1.构造方法 参数为空2.构造方法 参数为L ...
- java 几种锁实现
public class SyncronizedTest { private int value = 1; private AtomicInteger value1 = new AtomicInteg ...
- 从0系统学Android--5.2 发送广播
从0系统学Android--52 发送广播 本系列文章目录:更多精品文章分类 本系列持续更新中.... 初级阶段内容参考<第一行代码> 5.3 发送自定义广播 前面已经学习了如何接受广播了 ...
- iOS中使用block进行网络请求回调
iOS中使用block进行网络请求回调 HttpRequest.h // // HttpRequest.h // UseBlockCallBack // // Created by Michael o ...
- activiti设置customSessionFactories时的一个小坑
现象:activiti设置customSessionFactories不起作用,流程还是走原来的查询方法原因:新实现的XXXEntityManagerFactory的getSessionType方法返 ...
- Linux中MySQL二进制安装步骤
MySQL二进制安装步骤 安装依赖环境 [root@node3 ~]# yum -y install libaio 将mysql-5.7.26-linux-glibc2.12-x86_64.tar.g ...
- Python基础篇(二)_基本数据类型
Python基础篇——基本数据类型 数字类型:整数类型.浮点数类型.复数类型 整数类型:4种进制表示形式:十进制.二进制.八进制.十六进制,默认采用十进制,其他进制需要增加引导符号 进制种类 引导符号 ...
- js 验证输入框是否为空
很多时候,菜鸟在对输入框是否输入值进行验证时,总会把输入“空字符串”这一状况给忽略掉.嗯,我就这样,所以记下,以后回忆下还是不错滴 <input type="text" id ...