AI: 如何快速开发智能机器人 Bot Intelligence
AI: Azure Bot Service 快速开发。
前几篇介绍,文字,文本,图像,人脸的分析和识别的。这里根据前几个内容汇集在一起做综合实践。
注意:本文视角 Consulting。 介绍如何综合使用和扩展这部分内容。开发细节篇幅太长,我会分散到其他文章里。作为一个技术流,本文仅仅列出功能和实现思路。至于PPT架构、方案等需要*发挥。但不要无限催牛。
Azure Bot Service提供了在一个地方构建,测试,部署和管理智能机器人的工具。通过SDK提供的模块化和可扩展的框架,开发人员可以利用模板创建提供语音,语言理解,问题和答案等的机器人。
MPP 对Bot 解释:在和同事、客户及合作伙伴沟通、申请帮助时候,功能检测,内容语音视频搜索等等。可以借助系统来完成。如果通过程序对数据的分析,分类,识别,训练学习等。让程序自动来完成,就变等了智能机器人。
- 发出沟通
- 回应。
- 机器人
- 什么是 Bot?
是一种应用程序,用户可以使用文本,图形(卡片)或语音以对话的方式与其进行交互。它可能是一个简单的问答对话框,或者是一个复杂的机器人,它允许人们使用模式匹配,状态跟踪和与现有业务服务良好集成的人工智能技术以智能的方式与服务进行交互。您可以选择使用您最喜欢的开发环境或命令行工具来创建您的bot在C#或Node.js. 我们为bot开发的各个阶段提供工具,您可以使用这些工具来构建您的bot以帮助您开始。
- Bot Framwork
可以是用Bot提供的SDK或 Azure Bot Service来创建自己的机器人,将其发布出来,让任何你需要的地方调用。可以集成到流行的社交媒体里,例如 Skyper,微信等平台。Bot connerctor 服务来处理和做信息交互,变成一个你和其他人设备交换的渠道。交换内容包含,图片、文字、文章和视频等等。。。这就开始了人机对话,其实AI Azure 就变的如此简单。
例如:
- 下面的例子创建一个基本的Bot
这里个例子是Azure 创建的。顺便吐槽一下,我的Azure 国际版被强行迁到国内版了,也许我的账号混了,很多实验没有了。郁闷,可惜。
先创建一个Web App bot
- 可以使用C# 或 not.js 来做附加操作。
- 首先要创建一个在线的代码编辑器,来编写代码,存储文件,同步更新机器人访问模式等。
- 由于本文并没有涉及更多的功能开发,详细代码请参考:https://docs.microsoft.com/zh-cn/azure/bot-service/bot-service-overview-introduction?view=azure-bot-service-3.0
- 这里是Bot app.js 参考代码,仅为程序员提供参考,管理者请忽略。详细内容可以在Bot Server 里参看。
/*-----------------------------------------------------------------------------
This Bot demonstrates how to use a waterfall to prompt the user with a series
of questions.
This example also shows the user of session.userData to persist information
about a specific user.
# RUN THE BOT:
Run the bot from the command line using "node app.js" and then type
"hello" to wake the bot up.
-----------------------------------------------------------------------------*/
var builder = require('../../core/');
// Bot Storage: Here we register the state storage for your bot.
// Default store: volatile in-memory store - Only for prototyping!
// We provide adapters for Azure Table, CosmosDb, SQL Azure, or you can implement your own!
// For samples and documentation, see: https://github.com/Microsoft/BotBuilder-Azure
var inMemoryStorage = new builder.MemoryBotStorage();
// Setup bot and root waterfall
var connector = new builder.ConsoleConnector().listen();
var bot = new builder.UniversalBot(connector, [
function (session) {
builder.Prompts.text(session, "Hello... What's your name?");
},
function (session, results) {
session.userData.name = results.response;
builder.Prompts.number(session, "Hi " + results.response + ", How many years have you been coding?");
},
function (session, results) {
session.userData.coding = results.response;
builder.Prompts.choice(session, "What language do you code Node using?", ["JavaScript", "CoffeeScript", "TypeScript"]);
},
function (session, results) {
session.userData.language = results.response.entity;
session.send("Got it... " + session.userData.name +
" you've been programming for " + session.userData.coding +
" years and use " + session.userData.language + ".");
}
]).set('storage', inMemoryStorage); // Register in memory storage
保存完成之后回到,控制面板。左侧导航菜单机器人管理,可以分析,测试和通道。由于展开后篇幅太长。请自己去玩玩。
- Bot 通道(Channels)
关于这个内容,channel9有更专业的视频介绍(40分钟):https://channel9.msdn.com/Blogs/Azure/Introducing-the-Azure-Bot-Service
默认通道提供了这些:核心是可以自己添加。
智能机器人(Bot Intelligence)
简单的说就是把Bot Service 通过通道,接口和认知服务集成起来。让Bot 能理解自然语言,视频,文本和图像。为用户提供一种很自然的方式与机器一起工作。
- QnA Service
到目前为止,环境、程序、通道和应用已经打通。但是这又怎样,依旧不能交付给最终用户。继续完善,先创建一个QnA 服务。
MSAI 厉害的地方提供了很多关于AI的辅助应用,新人容易头晕。研究她,必须有足够的耐心。QnA 网站,可以参考如下URL:
https://www.qnamaker.ai/.
- 创建一个QnA服务
- 创建一些基础的问答列表。
- 语义分析与匹配。
- 训练
- 学习。
- 发布。
本文我是以consultanting 视角。代码细节不再这里赘述,可以参考:https://docs.microsoft.com/en-us/azure/cognitive-services/QnAMaker/how-to/troubleshooting-runtime#how-to-get-latest-qnamaker-runtime-updates
这里仅仅是一个发布示例抓图:
- Cortana Skills
她可以在日常生活中给我们很大的帮助。她可以通过网络和你自己开发的API相管理。你也可以为她开发更多功能,解锁更多姿势。这是也许是她的市场潜力。
这里仅介绍刚才跟例子做的QnA 通道。链接自己写的服务。
单击Cortana,然后配置。
找到自己发布URL关联进去,发布以后,就可以在自己的本地系统里使用她了。
更多信息请参考。https://developer.microsoft.com/en-us/cortana
本文继续完善中。。。。。。