【Azure 机器人】微软Azure Bot 编辑器系列(4) : 使用语言生成功能[LG: Language Generation] (The Bot Framework Composer tutorials)
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人。
在该系列文章中,每一篇都将通过添加更多的功能来构建机器人。当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather Bot)。在本系列中将学会以下内容:
4)使用语言生成功能(LG: Language Generation)
5)把机器人的回复转换为卡片
6)添加LUIS功能,理解自然语言
准备条件
- 完成系列(1,2)中的简单对话机器人创建(https://www.cnblogs.com/lulight/p/14891002.html)与 发送HTTP请求(https://www.cnblogs.com/lulight/p/14897260.html)
- LG: Language Generation (https://docs.microsoft.com/en-us/composer/concept-language-generation?tabs=v2x) 在Bot中定义多种形式的短语,根据机器人运行时的参数组合生成回复内容。
开发机器人面临的主要问题之一:就是如何让机器人理解用户在对话和整个上下文中的意思,然后用有效信息进行回复?为了能够实现这些复杂任务,Bot Composer集成了Lanaguage Generation库。它可以更好地控制机器人如何处理用户输入并提供有意义的响应。本文展示了如何在机器人中使用LG(语言生成)。
Language generation 语言生产
让我们从修改单调的“Welcome Message”入手。
第一步:启动Bot编辑器,打开 weather_bot 项目
第二步:在“Geeting问候语”触发器组件中,选中True分支下的“Send a response”任务
第三步:在任务的右边属性栏中,依次点击“Add alternative”,在新出现的文本框中依次加入下面的问候语(Welcome Message)
Hi! I'm a friendly bot that can help with the weather. Try saying WEATHER. Hello! I am Weather Bot! Say WEATHER to get the current conditions. Howdy! Weather bot is my name and weather is my game. Try saying WEATHER. 兄台,请说“天气”! 敬天爱人从知天始。
注:机器人在回复用户时,随机选择以上的语句进行问候。设置完成后,效果图如下:

添加LG: Language Generation
当前,机器人报告天气的方式还是非常机械化的。我们可以通过利用LG功能改进机器人的回复内容。
第一步:在Bot编辑器左边导航目录中选择“机器人响应 Bot responses”。(你会注意到之前添加的所有消息都将出现在这里。同理,在这里进行修改也会同步到机器人中)
第二步:选中“GetWeather”,然后点击右边栏中的“显示代码”按钮,以文件格式的方式来添加新的语言片段。并在文末中增加新的LG。
# DescribeWeather(weather)
- It is "${dialog.weather}" in ${user.postalcode} and the temperature is ${dialog.fahrenheit}°F or ${dialog.celsius}°C. Have a nice day.
注:新的LG模板名为DescribeWeather。这里会根据weather这个对象的内容填充模板,生成有好的回复。
第三步:回到Bot的编辑区域,选择“getWeather”的BeginDialog组件,并选中“Send a response”任务块。
第四步:把原来的回复内容用LG模板替换掉
- 删除旧的回复消息
- 输入“ ${DescribeWeather(dialog.weather)} ”。这种语法允许将 DescribeWeather 模板嵌套在另一个模板中,可以通过这种组合 LG 模板方式以创建更复杂的模板。
好了,LG模板的创建以及使用步骤完成。请查看演示动画:

测试机器人
第一步:在编辑器的右上角点击 “Start Bot”按钮,启动机器人
第二步:启动后,会弹出一个“Local bot runtime manager”的窗口,选择“Open Web Chat”,打开一个页面聊天窗口
第三步:在对话框中输入“weather” 或者“天气”来触发机器人的对话
第四步:输入“98052”观察Bot的返回内容

在下一篇中将演示:把机器人的回复转换为卡片
(以上内容均是参考微软官方的机器人文档进行的中文操作步骤,原文连接见参考资料)
参考资料
Tutorial: Add language generation to your bot:https://docs.microsoft.com/en-us/composer/tutorial/tutorial-language-generation?tabs=v2x
Language generation: https://docs.microsoft.com/en-us/composer/concept-language-generation?tabs=v2x
[完]
【Azure 机器人】微软Azure Bot 编辑器系列(4) : 使用语言生成功能[LG: Language Generation] (The Bot Framework Composer tutorials)的更多相关文章
- 【Azure 机器人】微软Azure Bot 编辑器系列(1) : 创建一个天气对话机器人(The Bot Framework Composer tutorials)
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...
- 【Azure 机器人】微软Azure Bot 编辑器系列(5) : 机器人的卡片式回复 (The Bot Framework Composer tutorials)
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...
- 【Azure 机器人】微软Azure Bot 编辑器系列(6) : 添加LUIS,理解自然语言 (The Bot Framework Composer tutorials)
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...
- 【Azure 机器人】微软Azure Bot 编辑器系列(2) : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorials)
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...
- 【Azure 机器人】微软Azure Bot 编辑器系列(3) : 机器人对话流中加入帮助和取消按钮功能 (The Bot Framework Composer tutorials)
欢迎来到微软机器人编辑器使用教程,从这里开始,创建一个简单的机器人. 在该系列文章中,每一篇都将通过添加更多的功能来构建机器人.当完成教程中的全部内容后,你将成功的创建一个天气机器人(Weather ...
- 通过Azure bot framework composer 设计一个AI对话机器人bot(查询天气)
本文介绍通过机器人框架设计器 (Bot framework composer)接近拖拉拽的方式设计一个聊天机器人,该聊天机器人的主要功能是发起http请求查询天气.当然,稍微变通下,可以用来查询几乎任 ...
- (视频) 《快速创建网站》1. 网站管理平台WordPress & 微软Azure 云计算简介
网站并不神秘,过节了,在家闲的没事的,自己建个网站玩玩吧.每段视频不超过15分钟,地铁/公交/睡前/醒来看一段,几天之后变身建站专家,找老板加薪去! 在普通人眼里,创建网站是专业开发人员和IT工程师才 ...
- 免费电子书:微软Azure基础之Azure Automation
(此文章同时发表在本人微信公众号"dotNET每日精华文章") Azure Automation是Azure内置的一项自动化运维基础功能,微软为了让大家更快上手使用这项功能,特意推 ...
- Azure Messaging-ServiceBus Messaging消息队列技术系列4-复杂对象消息是否需要支持序列化和消息持久化
在上一篇中,我们介绍了消息的顺序收发保证: Azure Messaging-ServiceBus Messaging消息队列技术系列3-消息顺序保证 在本文中我们主要介绍下复杂对象消息是否需要支持序列 ...
随机推荐
- 【python】Leetcode每日一题-颠倒二进制位
[python]Leetcode每日一题-颠倒二进制位 [题目描述] 颠倒给定的 32 位无符号整数的二进制位. 示例1: 输入: 00000010100101000001111010011100 输 ...
- Wampserver-删除虚拟主机
对hosts操作 到目录C:\Windows\System32\drivers\etc中修改hosts 比如你想删除iwh2.com 选中这2行进行删除,保存退出 对httpd-vhosts操作 到目 ...
- Postman报文进行解密之RSA私钥解密
接口返回的数据也是加密的,需要对数据解密才能看到返回的数据是否正确,就需要用RSA解密. 返回数据的解析可以在postman的Tests进行后置处理,获取加密后的返回数据: var data = JS ...
- 记一次 .NET 车联网云端服务 CPU爆高分析
一:背景 1. 讲故事 前几天有位朋友wx求助,它的程序CPU经常飙满,没找到原因,希望帮忙看一下. 这些天连续接到几个cpu爆高的dump,都看烦了,希望后面再来几个其他方面的dump,从沟通上看, ...
- (转)如何优雅的使用rabbit mq
RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具.消息队列的使用场景大概有3种: 1.系统集成,分布式系统的设 ...
- Redis数据持久化—RDB持久化与AOF持久化
目录 Redis数据持久化-RDB持久化与AOF持久化 RDB持久化 RDB文件的创建 RDB文件的载入 自动间隔性保存 检查保存条件是否满足 AOF持久化 AOF持久化的实现 AOF文件的载入与数据 ...
- 25.数据结构,LinkedList ,泛型,类型通配符
3.数据结构 数据结构是计算机存储,组织数据的方式.是指相互之间存在的一种或多种特定关系的数据元素的集合 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率 ---------常见的数据结构 ...
- 24.Qt Quick QML-Canvas和Context2D详解
1.Canvas介绍Canvas是一个允许绘制直线和曲线.简单和复杂的形状.图形和引用的图形图像.它还可以添加文本.颜色.阴影.渐变和图案,并执行低级别像素操作.Canvas输出可以另存为图像文件或序 ...
- Ubuntu 软件更新 系统升级
注意:操作前请先切换root权限 sudo su 1.软件更新 更新源 apt-get update 更新软件 apt-get upgrade 2.系统升级 安装系统更新 apt-get dist-u ...
- 云计算OpenStack核心组件---nova计算服务(7)
一.nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. ...