欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人。

在该系列文章中,每一篇都将通过添加更多的功能来构建机器人。当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather Bot)。在本系列中将学会以下内容:

1)创建一个简单的对话天气机器人

2)在机器人中提出问题,并获取从HTTP API获取响应

3)在机器人中增加帮助提示和取消功能

4)使用语言生成功能(LG: Language Generation)

5)把机器人的回复转换为卡片

6)添加LUIS功能,理解自然语言

准备条件

为机器人对话流加入“帮助”和“取消”按钮功能,哪怕是一个简单的机器人,提供帮助功能也是最佳体验。同时,也需要在人机对话流程中随时“取消”功能。

安装Help and Cancel包

第一步:启动Bot Composer,从左边的导航条中进入“Package Manager”目录

第二步:与VS 2019的Package界面一样,在搜索框中输入“Help”,选中“Microsoft.Bot.Components.HelpAndCancel”包

第三步:点击右边的安装按钮,可根据需要选择版本

第四步:安装过程中,会弹出“安装须知”。在底部点击OK,进入安装等待。安装完成后,回到机器人编辑主区域,编辑器会自动为机器人添加两个对话组件“ Help ” 和“ Cancel ”。

设置“Cancel”和“Help”对话组件

第一步:在weather_bot的编辑区,点击“...”按钮并选择“+ Add new trigger”, 在新建窗口中输入如下值:

  • What is the name of this trigger (RegEx): cancel
  • Please input regEx pattern: cancel|stop|quit|取消 , 正则表达式将匹配所设置的这四个关键字,并触发cancel操作。

第二步:点击“Submit”后,在新建的cancel的触发器中,点击“+”按钮添加一个开始对话( Dialog Management --> Begin a new dialog)

第三步:在“Dialog name”的下拉列表中选择“CancelDialog”。即完成了Cancel功能的设置。

第四步:重复以上1,2,3步骤,为Help对话组件进行设置。在weather_bot的编辑区,点击“...”按钮并选择“+ Add new trigger”, 在新建窗口中输入如下值:

  • What is the name of this trigger (RegEx): help
  • Please input regEx pattern: help|support|advice|帮助 , 正则表达式将匹配所设置的这四个关键字,并触发help操作。

第五步:点击“Submit”后,在新建的help的触发器中,点击“+”按钮添加一个开始对话( Dialog Management --> Begin a new dialog)

第六步:在“Dialog name”的下拉列表中选择“HelpDialog”。即完成了Help功能的设置。

在机器人对话中启用打断功能

getWeather对话组件知道如何获取天气预报,但是它不知道如何在对话中响应帮助请求。所以为了让机器人能在进行正常对话的过程中对发出的“Help”请求进行处理,需要对getWeather启用允许打断功能(Interruption)。当帮助流程处理完后,它会自动回到天气预报对话中,无需再使用“天气”或“weather”关键字来进行唤醒。

第一步:再getWeather对话组件中,选择“BeginDialog”事件

第二步:选中第一个“Prompt for text”任务框,在它的右边属性窗口中,选中“Other”选项卡。

第三步:在“Prompt Configurations”中找到“Allow interruptions”并把值设置为 true

注:这一步的目的是告诉 Bot 咨询父对话框的识别器,允许 Bot 也可以在用户的提示下响应帮助。

请查看启用“Help and Cancel”的演示动画:

测试机器人

第一步:在编辑器的右上角点击 “Start Bot”按钮,启动机器人

第二步:启动后,会弹出一个“Local bot runtime manager”的窗口,选择“Open Web Chat”,打开一个页面聊天窗口

第三步:在对话框中输入“weather” 或者“天气”来触发机器人的对话

第四步:输入“help”,“support”,“advice” 或“帮助”,机器人将提供帮助响应

第五步:输入“cancel”,“stop”,“quit” 或“取消”,机器人将发送一个取消的响应,然后等待用户的Yes/No确认

在下一篇中将演示:使用语言生成功能(LG: Language Generation)

(以上内容均是参考微软官方的机器人文档进行的中文操作步骤,原文连接见参考资料)

参考资料

Tutorial: Add Help and Cancel to your bot using interruptions:https://docs.microsoft.com/en-us/composer/tutorial/tutorial-add-help?tabs=v2x

[完]

【Azure 机器人】微软Azure Bot 编辑器系列(3) : 机器人对话流中加入帮助和取消按钮功能 (The Bot Framework Composer tutorials)的更多相关文章

  1. 【Azure 机器人】微软Azure Bot 编辑器系列(5) : 机器人的卡片式回复 (The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  2. 【Azure 机器人】微软Azure Bot 编辑器系列(2) : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  3. 【Azure 机器人】微软Azure Bot 编辑器系列(6) : 添加LUIS,理解自然语言 (The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  4. 【Azure 机器人】微软Azure Bot 编辑器系列(1) : 创建一个天气对话机器人(The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  5. 【Azure 机器人】微软Azure Bot 编辑器系列(4) : 使用语言生成功能[LG: Language Generation] (The Bot Framework Composer tutorials)

    欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...

  6. 微软BI 之SSRS 系列 - 如何在 MDX 查询中获取有效的 MEMBER 成员属性作为参数传递

    这篇小文章的来源是 天善问答,比如在报表中要根据点击某一个成员名称然后作为参数传递给自身报表或者下一张报表,这个在普通的 SQL 查询中没有任何问题.但是在 MDX 中查询是有区别的,比如在 MDX ...

  7. 微软BI 之SSIS 系列 - 在 SQL 和 SSIS 中实现行转列的 PIVOT 透视操作

    开篇介绍 记得笔者在 2006年左右刚开始学习 SQL Server 2000 的时候,遇到一个面试题就是行转列,列转行的操作,当时写了很长时间的 SQL 语句最终还是以失败而告终.后来即使能写出来, ...

  8. 微软BI 之SSIS 系列 - 理解Data Flow Task 中的同步与异步, 阻塞,半阻塞和全阻塞以及Buffer 缓存概念

    开篇介绍 在 SSIS Dataflow 数据流中的组件可以分为 Synchronous 同步和 Asynchronous 异步这两种类型. 同步与异步 Synchronous and Asynchr ...

  9. 微软BI 之SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表

    基于数据仓库上的 SSRS 报表展示,一般可以直接通过 SQL 查询,存储过程,视图或者表等多种方式将数据加载并呈现在报表中.但是如果是基于 Cube 多维数据集的数据查询,就不能再使用 SQL 的语 ...

随机推荐

  1. JavaScript 包管理器 -Yarn

    Fast, reliable, and secure dependency management. 官网地址 Github 特性 离线模式:如果您之前下载了软件包,则可以在没有任何互联网连接的情况下安 ...

  2. 【报错】org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSocketHandlerMapping' defined in class path resource

    环境:maven+eclipse+jdk1.8 [tomcat使用的是maven自带的插件,实质原因就是出在tomcat版本问题] 背景:在进行SSM集成WebSocket的时候,项目启动报org.s ...

  3. 公网IP和私有IP的区别和用途

    在Internet网络上有上千百万台主机,为了能够将这些主机区分开来,于是就给每台主机都分别配了一个专门的地址,称为IP地址. 通过IP地址就可以访问到每一台主机.IP地址由4部分数字组成,ghost ...

  4. Spring-Cloud之Ribbon原理剖析

    我们知道Ribbon主要的工作就是进行负载均衡,帮助我们无需再关注微服务中集群的地址信息,因此在源码剖析中我们就主要关注这部分的内容. 内置的负载均衡规则 RoundRobinRule:直接轮询的方案 ...

  5. 中文NER的那些事儿2. 多任务,对抗迁移学习详解&代码实现

    第一章我们简单了解了NER任务和基线模型Bert-Bilstm-CRF基线模型详解&代码实现,这一章按解决问题的方法来划分,我们聊聊多任务学习,和对抗迁移学习是如何优化实体识别中边界模糊,垂直 ...

  6. 使用BeanUtils.copyProperties踩坑经历

    1. 原始转换 提起对象转换,每个程序员都不陌生,比如项目中经常涉及到的DO.DTO.VO之间的转换,举个例子,假设现在有个OrderDTO,定义如下所示: public class OrderDTO ...

  7. UVA 160 - Factors and Factorials

     Factors and Factorials  The factorial of a number N (written N!) is defined as the product of all t ...

  8. UVA OJ 10035 - Primary Arithmetic

    Primary Arithmetic Children are taught to add multi-digit numbers from right-to-left one digit at a ...

  9. [bug] java.text.ParseException: Unparseable date: "2020-01-01"

    原因 输入的字符串应和目标字符串格式长度都一样 如返回的字符串是:2019-11-11,但解析的格式是:yyyy-MM-dd  HH:mm:ss,导致错误 参考 https://blog.csdn.n ...

  10. strcpy和memcpy的区别-(转自stone Jin)

    strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...