利用Dialogflow构建聊天机器人

2023-10-30

图片

作者:Priyanka Vergadia, Developer Advocate, Google

           Anu Srivastava, Developer Advocate, AI/ML

 

在如今的办公环境下,在线协同工作至关重要,保持生产力也是关键,聊天机器人在协同工作中也发挥着至关重要的作用。为什么要使用聊天机器人?工作中我们经常需要将来自外部资源的信息整合到我们的沟通中,而聊天机器人可以帮助我们在一个地方找到全部的所需信息。在下面的内容中,我们将带领您了解一个机器人,而它的灵感来自于谷歌的一个真实用例。

 

在谷歌这样的大公司,要找出哪个人负责某个特定的产品领域可能比较困难。当客户团队遇到问题时,他们通常不得不通过许多 ad hoc trackers 去寻找答案,ad hoc trackers 例如这里 Sheets 中的一个示例(sample scrubbed data)。

当客户出门在外时,这会变得更加困难,尤其是如果客户不记得 Sheets 的 URL 以及不知道如何使用它来寻找答案时。不用在电子表格中进行筛选,而是直接发送聊天消息,看看应该联系谁来获得网络或安全方面的专业知识,那会怎么样?这就是 Dialogflow 和 Google Chat 相集成的好处。它可以帮助用户减少上下文切换,因为他们可以直接在谷歌聊天中提出问题,向与 Sheets API 集成在一起的 Dialogflow 内置聊天机器人提问,以此来找到答案。下面我们看看它是如何工作的!

如果您倾向于观看视频而不是阅读文章,我们在这个视频中分享了整个过程。

 

这个视频:https://www.youtube.com/watch?v=aRswG2oowEA&list=PLIivdWyY5sqK5SM34zbkitWLOV-b3V40B&index=15&t=16s

 

它是如何工作的

当用户在 Google Chat 中提出问题时,启动的聊天机器人会与 Dialogflow 集成,来进行自然的对话,Dialogflow 通过 Cloud Functions 实现与后端数据库或 Sheets集成(如图所示)。

图片

 

 Google Sheets 中提取信息

要从 Sheet 中提取信息,我们首先需要确切地知道哪些信息与完成请求有关。在确定了我们需要的信息之后,再使用 Sheets API 来提取它们。

 

② 定义输入的短语

虽然编写一个基本的机器人,要求输入的内容按照预定的顺序进行格式化,会比较容易。但这样的机器人会很难使用,因为用户必须记住顺序并且需要完全正确地拼写所有的内容。而且,如果一个工具太难用,大家就不会去使用它。选择一个聊天机器人的关键是可用性,这意味着处理自然对话中出现的短语的能力,例如:

“谁负责 Gmail 的数据管理?”

“我想认识数据管理大师。”

“告诉我谁是数据管理专家?”

这就是 Dialogflow 的用武之地。Dialogflow 是一种自然语言理解平台,它简化了移动应用、Web 应用、机器人等对话式用户体验的设计和集成。

我们用三个简单的步骤构建了我们的机器人,如果已经看完了“解构聊天机器人”系列视频,应该会觉得很熟悉。

解构聊天机器人系列视频:https://www.youtube.com/playlist?list=PLIivdWyY5sqK5SM34zbkitWLOV-b3V40B


Step 1 定义实体

Dialogflow 使用在自然对话上训练的模型。但是,在使用这些模型之前,机器人需要了解上下文中的关键短语,例如角色类型、技能和账户名称(例如,账户专家、Gmail 和安全)。

图片

Step 2 配置意图

意图本质上就是用户的问题。在这里,我们通过定义行动和参数来定义如何使用刚刚创建的实体。当机器人学习到了这些实体,这就是意图响应的来源。

 

图片 动作和参数

您定义的实体用于配置操作和参数。在本例中,角色、技能和账户都是实现这一意图所需的参数(用户可以按照任意顺序提供这些参数)。如果用户忘记了一个,我们会定义了一个提示从用户那里获取。

 

图片

图片 训练短语

由于不同的人说话方式不同,因此我们使用训练短语来提供用户请求的不同示例。Dialogflow 使用了预训练的 NLP 模型,并且这些训练短语就是现实中的问题,有助于为我们的用例训练一个特定的模型。

图片

Step 3 设置执行代码

执行(Fulfillment)是将一切粘合在一起的地方,在 Node.js Firebase 函数中连接所有的 API。在本例中,我们使用 Sheets API,但您可以连接到您选择的任何后端。详情请参考示例代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用Dialogflow构建聊天机器人 的相关文章

随机推荐

  • 排序算法浅识

    排序说简单也简单 说复杂某些地方也是有些绕 这里做做笔记 帮助自己记忆和理解常接触的排序算法到底是什么鬼 什么是排序 其实就是排大小啊大佬 排序的稳定性 为何排序的稳定性很重要 在初学排序时会觉得稳定性有这么重要吗 两个一样的元素的顺序有这
  • Android studio将一个项目作为module导入另一个项目

    1 把要导入的项目变为module 把项目build gradle文件下的 apply plugin com android application 改为 apply plugin com android library 同时删除文件中的
  • 信息检索——查询似然模型(例题)

    例题 信息检索导论 修订版 习题12 7 假定某文档集有如下4篇文档组成 为该文档集建立一个查询似然模型 假定采用文档语言模型和文档集语言模型的混合模型 权重均为0 5 采用MLE来估计两个一元模型 计算在查询click shears以及c
  • 阿里云服务器安装宝塔面板完整图文教程

    下面稍微介绍一下如何使用阿里云服务器安装宝塔面板 概述 如果还有不了解宝塔面板怎么使用的小伙伴 可以看下我总结的系列教程 保证从新手变老鸟 宝塔面板精选教程汇总 宝塔面板教程 1 基于云服务器搭建宝塔面板教程最全详解 宝塔面板教程 2 宝塔
  • 数据的相似性

    相异性矩阵 衡量数据对象之间相关的程度 d i j 表示第i个数据与第j个数据之间的距离 计算数据之间的距离 类别属性 我们可以用失配比的方法进行计算 两个数的失配比指它们中值 不相等 的属性个数占总属性个数的比例 如 计算距离时没有必要考
  • STM32 进阶教程 18 – ADC间断模式

    前言 STM32 的ADC拥有连续扫描模式 也有间断模式 间断模式较扫描模式需要更多的触发事件才能完成所有的通道转换操作 在实际工程应用中 可以利用间断模式实现一些特殊应用 关于间断模式 在STM32的数据手册中有如下描述 本节将给大家展示
  • 用xpath取出属性值的文本

    使用 xpath 取出属性值的文本的方法如下 在 xpath 表达式中使用 符号来选择元素的属性 例如 如果要选择元素的 class 属性 可以使用 class 使用文本函数来获取元素的文本值 例如 要获取 class 属性值的文本 可以使
  • 手写数据库连接池

    数据库连接是个耗时操作 对数据库连接的高效管理影响应用程序的性能指标 数据库连接池正是针对这个问题提出来的 数据库连接池负责分配 管理和释放数据库连接 它允许应用程序重复使用一个现有的数据路连接 而不需要每次重新建立一个新的连接 利用数据库
  • QPieSeries QPieSlice label 标签重叠解决方案

    demo 下载地址在最后 通常我们在用QPieSeries 做饼状图 并且饼状图几个部分差别不太大时 label 标签展示都是正常的 期望如下图 一般情况下做这种饼状图很简单 如 QPieSeries series new QPieSeri
  • postman测试文件下载时bug

    近日 写了一个图片下载的接口 遇到了中文乱码问题 笔者一直找解决方案 不断测试 结果 方案均无效 后来请教了大神 他在我做出代码中加了一行 fileName new String fileName getBytes UTF 8 ISO 88
  • mvn deploy时返回400解决方法.md

    使用mvn deploy命令 将打包后的jar包上传到私服时 出现了下面的问题 Return code is 400 ReasonPhrase Bad Request gt Help 1 一般通用有3个导致出现上面问题的原因 1 pom x
  • 关于IKEv2中安全策略索引SPI的生成

    首先引入一个PF key的概念 PF KEY Key Management API 提供IKE模块和IPSec核心之间的接口 在RFC 2367中 有一个SADB GETSPI消息 这个消息就是实现允许一个进程获取SPI值 该值标识所给的s
  • GTest基础学习-05-第5个单元测试-父test fixture和子test fixture的使用

    这篇来学习Gtest官方示例中的第5个 为什么直接跳过第4个 因为第四个是测试一个简单的计数器 看了下单元测试内容 没有新的知识点 就一个TEST 里面使用了连续3 4个EXPECT TRUE断言宏 完全没有任何新的知识点 就不再介绍第4个
  • html打印,可以控制换页

    显示效果 核心代码 div class pageBreak div 完整代码
  • 计算机网络之域名

    文章目录 计算机网络之域名 1 域名组成 2 域名分类 2 1顶级域名 2 2二级域名 2 3三级域名 2 4顶级域名其他分类 3 中文域名 4 www 计算机网络之域名 1 域名组成 2 域名分类 顶级域名包括顶级域名 二级域名 三级域名
  • docker学习(四)docker run用法

    目录 前言 一 参数列表 二 使用示例 前言 docker run 命令用于创建一个新的容器 启动一个新的进程 并为这个进程分配其独占的文件系统 网络资源等 通过参数设置可以覆盖镜像和容器的一些默认配置 一 参数列表 a 指定标准输入输出内
  • shell的内置命令

    shell有很多内置在其源代码中的命令 这些命令是内置的 所以shell不必到磁盘上搜索它们 执行速度因此加快 bash提供的help功能 能提供任何内置命令的在线帮助 表14 12列出了这些内置命令 表14 12 内置命令 命 令 功 能
  • eclipse常用设置

    eclipse常用设置 设置字体 window preferences General Appearace Colors and Fonts 设置字符编码 window preferences General Workspace Text
  • Spire.XLS 图表系列教程:C# 如何不使用工作数据创建Excel图表以及Excel雷达图

    更多资源查看 Spire XLS工作表教程 Spire Doc系列教程 Spire PDF系列教程 下载Spire XLS最新试用版 Spire XLS for NET 是一款专业的 NET Excel 组件 它可以用在各种 NET 框架中
  • 利用Dialogflow构建聊天机器人

    作者 Priyanka Vergadia Developer Advocate Google Anu Srivastava Developer Advocate AI ML 在如今的办公环境下 在线协同工作至关重要 保持生产力也是关键 聊天