概述

本教程将向您展示如何构建一个简单的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. 一篇文章带您读懂List集合(源码分析)

    今天要分享的Java集合是List,主要是针对它的常见实现类ArrayList进行讲解 内容目录 什么是List核心方法源码剖析1.文档注释2.构造方法3.add()3.remove()如何提升Arr ...

  2. Java 线程基础知识

    前言 什么是线程?线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元.一个标准的线程由线程 ID,当前指令指针 (PC),寄存器集合和堆栈组成.另外,线 ...

  3. JDK 1.8 新特性之Date-Time API

    来源:请点击查看 1.8之前的日期类: 线程不安全:java.util.Date 这个类线程不安全,而且所有日期类都是可变的. 时间处理麻烦:默认的开始日期从1900年,不支持国际化,不提供时区支持, ...

  4. 002-DOM事件实例-实现一个可以拖拽的登陆窗口

    前言:这是跟着慕课网一个老师的视频做的,这几天在重新的梳理自己,写完这个例子要系统的学一下jQuery,我司现在用的还是比较多,毕竟用了它不用考虑IE兼容性,可以让开发更有效率. 1.项目需求及基本的 ...

  5. 适合MCU用的C语言快速互转HEX(16进制)和原始字符串/数组方法

    缘由 这个起因是昨晚群里有人在讨论怎么把字符串转成HEX方法最佳,讨论到最后变成哪种方法效率最优了.毕竟这代码是要在MCU上面跑的,要同时考虑到时间和空间的最优解. 当然讨论的是有结果的,具体实现的方 ...

  6. javascript的装饰者模式Decorator

    刚开始看这段代码有点绕,现在回过头来看,so easy! Function.prototype.before = function(beforefn){ var _self = this; retur ...

  7. Java多线程并发01——线程的创建与终止,你会几种方式

    本文开始将开始介绍 Java 多线程与并发相关的知识,多谢各位一直以来的关注与支持.关注我的公众号「Java面典」了解更多 Java 相关知识点. 线程的创建方式 在 Java 中,用户常用的主动创建 ...

  8. OpenMP Programming

    一.OpenMP概述 1.OpenMP应用编程接口API是在共享存储体系结构上的一个编程模型 2.包含 编译制导(compiler directive).运行库例程(runtime library). ...

  9. model进阶

    本节目录 一 QuerySet 二 中介模型 三 查询优化 四 extra 五 整体插入 一 QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMI ...

  10. 【SpringBoot基础系列-实战】如何指定 bean 最先加载(应用篇)

    [基础系列-实战]如何指定 bean 最先加载(应用篇) 在日常的业务开发中,绝大多数我们都是不关注 bean 的加载顺序,然而如果在某些场景下,当我们希望某个 bean 优于其他的 bean 被实例 ...