更新之后微软机器人框架不太会用?所有的改动都在这一篇
文章作者:Pablo Gomez Guerrero
原文链接:《How to Work with Microsoft Bot Framework Since Last Update》
翻译:一熊翻译组 Mason
如果你有使用微软机器人框架的话,你很有可能已经看见提示你迁移机器人的边栏了。你也可能会发现创建机器人的网页似乎和之前不大一样,有一些东西也不见了。尽管在更新前已创建机器人的「设定」与「测试」部分在 dev.botframework.com 上仍旧可用。然而,如果你创建一个新的机器人,设定部分已经有了改动。
没准就算在已创建的机器人设定中,如果他们还没有被迁移,网页看起来也会很奇怪。接下来,就让我来告诉你这是怎么一回事:
1.开始
创建机器人的方式有了一点改变。现在微软会重新定向至 Azure 并强制发送一个订阅至 Azure 以生成一个机器人服务。Azure 会给你一个 170 欧元的贷记额度用来做订阅,至少我的情况是这样。
一旦进入 Azure 中,你会发现三种创建机器人的方式:
- Web App 机器人
- 机器人频道注册
- 功能机器人
在说明中,我们会看到一些如何使用新版本机器人的理论与实践。
2.理论
a. Web app 机器人
这是一个网页聊天机器人的经典实例。你可以根据多种使用场景来在 Node.js 与 C# 的模板中进行选择。我们选择在微软上用一个称为 LUIS(语言理解系统)的认知服务来生成机器人,因为该服务会给予我们的机器人意图识别的功能。
一旦机器人创建成功后,还需要想两个名字:一个给它自己,一个给 web app。
b.托管
托管你的机器人的唯一方式是 Azure。当你选择模板时,它会自动生成一个代码托管区域。以前曾经有过在别的服务器上托管并用 HTTPS url 地址配置设定的方式。
c.代码
共有三种方式允许你在 Azure 平台上托管代码:
- 在线编辑代码
- 下载与上传压缩文件
- 建立持续实现。它启动于第一次下载压缩文件并在 Azure 支持的第三方库上新建文件夹时,然后需要一些认证,便可以每在特定分支有变化时部署机器人的新版本。
对于持续实现,这里有一组可以帮助你在每次需要时部署的供应商。
d.频道注册
设定一个新频道也需要在 Azure 上进行。 可用的频道没有更改,事实上,看起来菜单中的选项也和此前的机器人页面大抵相同,只是在前端上更改了 CSS。
这一小小的改动让平台因 Azure 看起来更棒,反之,以前的机器人则看上去就显得有些古怪了。网页上看起来都一样,不再为旧版本机器人在 CSS 上做任何优化。
e.测试
这一部分并没有大的改动。现在已经全部集成进了 Azure。
f.LUIS
因为我们已经选择了由 Azure www.luis.ai 构建的意图识别机器人来服务我们的所需,它会通过新事项会链接机器人与意愿,服务我们的需求。
然而对于 LUIS 应用程序为什么总是创建在美国域名下的 www.luis.ai 上并没有给出明确的解释说明。我们此前在选项中选择了西欧地区,因此我认为它本应创建在 eu.luis.ai 上。可能 Azure 团队仍在这上面改进,这只是一个 beta 版本。
3.实践
举一个工作上的例子,我们选择了功能机器人服务后,就不必再担心 Web 应用程序或任何服务器的设定。Azure 的功能会做这些工作,它会按照规范执行代码指令。当在 Azure 上创建机器人时,这一执行会过程十分顺畅并透明,功能也会如期运行。
在下面这段代码中,我们仅仅使用了我们在文档中发现的最简单的机器人代码。
'use strict';
const builder = require('botbuilder');
const restify = require('restify');
const server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, () => {
console.log('%s listening to %s', server.name, server.url);
});
// Create chat connector for communicating with the Bot Framework Service
const connector = new builder.ChatConnector({
appId: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD,
});
// Listen for messages from users
server.post('/api/messages', connector.listen());
// Receive messages from the user and respond by echoing each message back (prefixed with 'You said:')
const bot = new builder.UniversalBot(connector, (session) => {
session.send('You said: %s', session.message.text);
});
在添加一些改动实现自动部署后,实现部署细节的可视化也是可能的。
4.改动与提升
a.测试
对于测试服务器来说,现在,以往的那些复杂的准备都不再需要了。将域名指定给机器人就可以在一开始进行测试。
b.自动部署
我的看法是,这是最受影响的一项。从现在开始,机器人可以通过第三方供应商在其处更新代码与在 Azure 上进行配置的方式完成部署。
c.通用模板
在新版本,微软为最受欢迎的使用场景加入了一些通用模板。目前,可用语言为 Node.js 和 C#。
d.在线代码编辑器
微软同样针对快速修复或小的紧急产品改动收录了一款在线编辑器。
e.托管
看起来微软现在拥有使用其框架创建的所有机器人,因为服务器不会再托管配置了。我不认为这是一个改进,但不得不说在一些小的项目中,这看起来是一个最便捷快速的选择。
5.结论
看起来来微软在人工智能领域的更迭中有了一个清晰的闭环产品线目标,调整了一些特性并且有了进一步的把控。我希望新的这些特性可以超越现有的这一代。
一熊翻译组隶属于一熊科技,我们不生产科技杂文,我们只是 GFW 上语种间的搬运工,欢迎点击「一熊翻译组」来加入我们。主线产品「倍洽」日前迎来新版本上线,欲体验智能聊天机器人所带来的未来气息,与全新工作体验的无穷魅力,欢迎点击「倍洽」,从创建属于你的第一个团队开始……