主页 > 知识库 > 智能机器人(智能机器人的功能有哪些)

智能机器人(智能机器人的功能有哪些)

热门标签:上高县地图标注app 推销外呼系统怎么样 伊春外呼系统接口对接 在腾讯地图标注自己公司 阳谷县地图标注app 外呼系统也需要办卡吗 连云港电销 智能外呼系统宁波 如何部署智能ai电话机器人

Microsoft Bot Framework、LUIS、Azure Bot Service 和 Azure Functions 均已推出。最近到处有人在说智能机器人:智能机器人是新应用。原因之一就是,智能机器人能够让你轻松、高效地完成常见任务。想一想: 只需让某种数字助理为你执行相关操作,即可预订航班或餐厅餐位,无需从必应或 Google 跳转到两三个或更多网站。但应用开发者欣然接受这种趋势可能还有更加重要智能机器人的原因: 移动应用的开发成本日益上涨。仅生成一个适用于各种平台(iOS、Android 和 Windows)的移动应用的费用介于 30,000 至 500,000 美元之间。

确实有一些跨平台技术(如 Unity 或 Xamarin)可有助于降低开发适用于多个平台的移动应用的成本。但智能机器人正发展成为另一选择方案,通过采用交谈界面来改变范例。这种方法利用了人类数千年以来的沟通方式,包括语音和文本(想一想 Skype 或 Messenger)。还可以使用图像、视频和传统控件(如按钮和卡片操作)增强交谈 UI (CUI) 的功能。智能机器人侧重于简约和输入的自然属性,而不是使用传统控件来精心制作 UI。

有何优势? 由于组织摒弃了为每个屏幕范例生成不同 UI 的做法,改为采用适用于所有设备和外形规格(无论是否有屏幕)的交谈界面,因此总共可能可以节省数十亿美元。例如,我生成了一个 Active Fitness 智能机器人,可以帮助你寻找附近的跑步、骑自行车、徒步、滑雪和其他路线。(若要将此智能机器人添加到 Skype,请访问bit.ly/2knZVbr。) 虽然这款应用具有丰富的 UI 和控件,但智能机器人旨在理解交谈输入,如图 1 所示。

图 1:显示路线的 Active Fitness 智能机器人

影响力不仅仅局限于应用开发。智能机器人可以解决网站越来越难以导航的难题,其中许多内容使用旧的或过时的 Web 框架或标准。例如,试着在任意客户服务网站上完成一个任务,可能要花上半个小时来尝试导航网站菜单。

智能机器人还有独特的影响力。设想一下,有一个纸牌游戏应用(如 Solitaire)。在有智能机器人之前,我不得不生成每个平台对应的版本。而现在智能机器人则突破了平台锁定的困境。突然间,我的基于 Windows 的应用成为我所有好友的 iPhone 和 Android 手机上的智能机器人。为什么会这样呢? 这是因为智能机器人适用于以下各种渠道:Skype、Telegram、Facebook、Messenger、Slack 和其他到处可见的应用平台。

我想使用 Microsoft Bot Framework 生成世界上最受欢迎的游戏是件很酷的事情。图 2 展示了我尝试生成的随时可以玩的 Solitaire 智能机器人。(若要将此智能机器人添加到 Skype,请访问bit.ly/2jrzP7S。)

图 2:我在 Skype 上的 Solitaire 智能机器人每周处理 500,000 个请求

若要开始创建智能机器人,请转到 Microsoft Bot Framework 网站 (dev.botframework.com)。可以使用 Microsoft .NET Framework 或 Node.js(以你喜欢使用的技术为准)生成智能机器人。最近,Microsoft 新增了 Azure Bot Service (bit.ly/2knEtU6),作为另一种方便使用的智能机器人实现方式。Azure Bot Service 提供基于浏览器的体验,方便你使用易用模板生成智能机器人。此服务使用 Azure Functions,这是一种基于事件的无服务器代码体系结构,可提供“函数”,方便你节省资金并更好地扩展智能机器人。

下面介绍了 Azure Functions 的亮点: 开始生成智能机器人时,我意识到,每当需要生成智能机器人时,都不得不新建一个 Web 应用来提供应用容器。如果是一个应用,这没有关系,但如果有多个智能机器人,每个都需要单独的基础结构,情况就不一样了。相反,使用 Azure Functions,可以在云中托管小段代码,而无需考虑整个应用基础结构。

智能和智能机器人开发

就像应用一样,智能机器人旨在尽力帮助你完成特定的任务。例如,我的 Solitaire 智能机器人可以和你一起玩纸牌,甚至可以教你游戏的规则和技巧。它确实不太可能通过图灵测试(Alan Turing 于 20 世纪 50 年代提出的关于衡量计算机智能的测试),但这对于大多数智能机器人来说都是过分之举。

同样,当地车管所的智能机器人应该知道如何提交驾照登记付款,或如何帮助你交罚单或提交驾照延期换证申请。天气智能机器人需要回答与天气相关的问题,并还包括能确定地理位置和用户对特定天气数据的需求的智能组件。

智能机器人可以通过交谈界面自动完成许多任务,但也可以通过图像、按钮和其他控件增强功能,使之更方便移动设备用户使用。只有当对话变得开放时,智能机器人的智能服务才能真正派上用场。使用对话框提供一组预定义的答案是相对容易的标准编程任务。另一方面,响应人类对话意味着智能。幸运的是,Microsoft Bot Framework 提供以下两项支持: LuisDialogs 支持基于自然语言的对话,而更传统的控件则支持用户通过按按钮、传送视图或其他控件来选择选项。

智能是许多智能机器人采用的交谈 UI 的核心,以便能够与人类用户进行直观式交互。借助越来越多的 Microsoft 认知服务 (bit.ly/2jx1kMQ),可以将智能功能直接引入智能机器人中。这些服务包括但不限于:

构想

语音

语言

知识

搜索

位置

请参阅 Alessandro Del Sole 关于认知服务的精彩文章 (msdn.com/magazine/mt742868)。

让智能机器人更智能需要采取下面一些常见措施,这不仅可能会促使其通过图灵测试,还一定会改进与智能机器人的对话:

对话框、图像和其他能够收集规范化数据、传达消息和简化对话的方式

本地化

可提高智能机器人基本功能的帮助和对话框管道

让问题不重复的用户数据(如地理位置)

你并不想太过雄心勃勃来尝试创建像 Douglas Adams 描绘的城市大小一般“深思”计算机(出自“银河系漫游指南”)的智能机器人。而且,当我开始生成智能机器人时,我仅关注对完成主要任务必不可少的功能(例如,玩纸牌游戏或建议最佳跑步路线),然后再通过智能组件增强功能。

借助 LUIS 实现语言智能

要添加到交谈界面的首个智能组件是 Microsoft 语言理解智能服务 (LUIS)。此服务的工作方式为分析你向其发送的对话或句子,然后提取特定于应用的实际意向和实体。若要将 LUIS 对话框添加到智能机器人,只需创建继承 LuisDialog 的类,在 luis.ai 中注册 LUIS 应用,然后向对话框提供应用 ID 和密钥即可:

[LuisModel("YOUR_LUIS_APP_ID>", "YOUR_LUIS_APP_KEY>")]

[Serializable]public class IntelligentLanguageDialog : LuisDialogobject>

有关更深入的 LUIS 指南,请查看 Ashish Sahu 在 2017 年 1 月 MSDN 杂志中发表的文章 (msdn.com/magazine/mt745095)。

在我的 Active Fitness Trails 智能机器人(图 3)中,我定义了与健身活动相关的意向,我期望用户在智能的智能机器人对话中提供地理位置和健身活动信息。例如,我希望用户能够说出“向我显示美国科罗拉多州的滑雪路线”,智能机器人应该理解这句话,然后提供一组路线。我的 Active Fitness 应用用户每天都会查找数百万条路线,通过查询 Active Fitness,他们可以映射我的 LUIS 模型中的 GetActivityLocation 意向,这将把地理位置和活动实体返回给智能机器人。

图 3:LUIS 中的模型

设想一下,我需要编写多少代码才能从非规范化用户输入中提取所有此类数据! 即使是一个很短的人类句子,往往也很复杂,只有机器学习工具才能理解和处理。添加这一简单句子的所有可能变体,你会发现智能机器人的智能服务并不是一件容易完成的任务。幸运的是,LUIS 可充当智能对话分析器和提取程序,为你完成所有苦差事。你只需将此组件添加到智能机器人即可。

定义模型后,我便可以提供有助于 LUIS 了解我的意向以及如何为智能机器人获取实体的言辞,从而定型模型。为模型定型我的 GetActivityLocation 意向时,我提供了以下言辞: “显示附近的骑自行车路线”、“显示奥地利最新的滑板滑雪路线”和“美国犹他州最长的滑雪路线在哪里?” 如图 4 所示,当 LUIS 处理实体时,它会突出显示我在模型中指定的实体。如果 LUIS 无法识别实体,该怎么办? 在这种情况下,需要通过手动映射实体来定型模型。例如,我需要将我的智能机器人定型为识别“滑板滑雪”活动。

图 4:LUIS 中的模型定型

接下来,定义用于处理 LUIS 模型返回的意向的方法。可以定义用于处理模型中的 None 意向或其他任何意向的方法,如图 5 所示。

图 5:处理意向

[LuisIntent("None")] publicasyncTask NoneIntent(IDialogContext context, LuisResult result) { awaitcontext.PostAsync( $"You have reached the none intent. You said: {result.Query}"); //context.Wait(MessageReceived); } // Go to https://luis.ai and create a new intent,// then train/publish your luis app.// Finally, replace "GetActivityLocation" with the name of your newly// created intent in the following handler.[LuisIntent("GetActivityLocation")] publicasyncTask GetActivityLocation(IDialogContext context, LuisResult result) { awaitcontext.PostAsync( $"You have reached the GetActivityLocation intent. You said: {result.Query}"); //context.Wait(MessageReceived); }

每当模型确定输入与 GetActivityLocation 意向匹配时,都会调用我的智能机器人方法。LUIS 在 LuisResult 对象中返回结果,其中包括地理位置和活动等实体。例如,我想检查实体是否包含国家/地区。为此,我使用 LuisResult 对象的 TryFindEntity 方法,查找“builtin.geography.country”类型的实体。LUIS 提供了大量预建实体,这大大简化了你的工作。有关这些实体的完整列表,请访问 bit.ly/2kWgCHR。

请注意,builtin.geography 实体包含子实体,例如,国家/地区和城市。包含子实体的实体称为复合实体。在此示例中,我特别感兴趣的是国家/地区子实体,如图 6 所示。

图 6:查找国家/地区

// Go to https://luis.ai and create a new intent, then train/publish your luis app.// Finally, replace "GetActivityLocation" with the name of your// newly created intent in the following handler.[LuisIntent("GetActivityLocation")] publicasyncTask GetActivityLocation(IDialogContext context, LuisResult result) { awaitcontext.PostAsync( $"You have reached the GetActivityLocation intent. You said: {result.Query}"); //EntityRecommendation country; if(result.TryFindEntity("builtin.geography.country", outcountry)) { awaitcontext.PostAsync($"Country: {country.Entity}"); } context.Wait(MessageReceived); }

智能机器人实用提示

Microsoft 正在努力推动智能机器人开发取得进展,发布了语言理解智能服务 (LUIS) 和 Azure Bot Service 等工具,以帮助简化这一新款软件的创建和管理。值得庆幸的是,现如今大多数应用都可以轻松转换成智能机器人,其中的交谈 UI (CUI) 非常适合多任务、多类型的应用。为了能够最有效地开发智能机器人,请注意以下几点:

以扩大覆盖面为目标: 智能机器人最引人注目的一点是,可在所有 PC、平板电脑和智能手机上的渠道(如 Skype、Facebook、Messenger 和 Telegram)中运行。通过向多个渠道发布智能机器人,最大限度地扩大受众覆盖面。此外,利用可用的服务,将智能机器人本地化成多种语言。

注重交谈体验: 充分利用交谈界面,它非常适合多任务、多类型的应用。为了提供最佳体验,请重点关注交谈界面(如聊天、语音和语言),而不是按钮等传统 UI 控件。

利用服务: 新推出的 Azure Bot Service 是一个基于云的平台,可最大限度地减少基础结构开销,并允许你扩展智能机器人项目。此服务的幕后支持技术为 Azure Functions;使用此技术,开发者可以在云中托管小段代码。

以任务为中心: 生成智能机器人时,以每个智能机器人需要解决的一个或多个特定任务为中心。不要过于复杂,AI 不一定越多越好。从智能机器人需要解决的主要任务着手,然后再注入智能组件。

开放式对话: 利用 LUIS 中内置的智能组件来支持开放式对话,并为智能机器人提供输入。为了提供最佳体验,请注意定型 LUIS 模型,以一组简明的实体和意向为中心。模型越不“模糊”,AI 的效果就会越好!

当然,我还需要知道活动实体(可以使用 Active Fitness 跟踪超过 50 个活动,如跑步、骑自行车、滑雪和滑板滑雪)。因此,当我问: “奥地利最好的滑雪路线在哪里?” 我期望 Active Fitness 智能机器人返回“滑雪”活动实体,如图 7所示。

图 7:使用智能机器人仿真器演示 GetActivityLocation 意向的实际效果

结果就是,我更新了 GetActivityLocation 方法,使其能够返回活动。请注意,与 builtin.geography.country 不同,活动不是内置实体。不过,我在定型模型时提供了一些言辞,LUIS 能够相当好地获取实体,如图 8 所示。

图 8:使用言辞定型模型

// Go to https://luis.ai and create a new intent, then train/publish your luis app.// Finally, replace "GetActivityLocation" with the name of your newly// created intent in the following handler.[LuisIntent("GetActivityLocation")] publicasyncTask GetActivityLocation(IDialogContext context, LuisResult result) { awaitcontext.PostAsync( $"You have reached the GetActivityLocation intent. You said: {result.Query}"); //EntityRecommendation country; if(result.TryFindEntity("builtin.geography.country", outcountry)) { awaitcontext.PostAsync($"Country: {country.Entity}"); } EntityRecommendation activity; if(result.TryFindEntity("activity", outactivity)) { awaitcontext.PostAsync($"Activity: {activity.Entity}"); } context.Wait(MessageReceived); }

Bot Framework 提供了深入的通用 C# 和 Node.js 代码示例,网址分别为 bit.ly/2gHupjg和 bit.ly/2kWolWx。

实现地理位置智能

虽然许多智能机器人根据地理位置进行响应,但编写地理位置响应代码可能会很麻烦。在前面的示例中,我使用了 LUIS 智能组件来获取 LUIS 从对话中解析的内置地理位置实体。幸运的是,Microsoft 必应地理位置控件现在包含在 Bot Framework 中。这样一来,开发者便可以更轻松地收集地理位置数据。

Bot Framework 的地理位置控件还提供包含地图的直观界面(见 图 9)。如果智能机器人需要在 Skype、Facebook 和 Messenger 等渠道中通过易用或本机的界面提供包含邮政编码、城市、区域和地区数据的地址,这就可能非常方便。

图 9:使用包含必应地图的直观界面的地理位置控件

若要开始使用必应地理位置控件,只需为 .NET 项目(通过 NuGet)或 Node.js 项目(通过 npm)获取必应地图 API 密钥和地理位置对话框组件,然后在代码中初始化并调用地理位置对话框的实例即可:

varoptions = LocationOptions.UseNativeControl | LocationOptions.ReverseGeocode;varrequiredFields = LocationRequiredFields.Locality | LocationRequiredFields.Region | LocationRequiredFields.Country;varprompt = "Where are you looking for trails?";varlocationDialog = newLocationDialog( apiKey, this.channelId, prompt, options, requiredFields);context.Call(locationDialog, this.ResumeAfterLocationDialogAsync);

LocationDialog 提供用于请求各种地址字段和自定义提示的选项。结果返回时,可以在 Resume 方法中进行处理,如图 10 所示。

图 10:在 Resume 方法中处理地理位置结果

privateasyncTask ResumeAfterLocationDialogAsync( IDialogContext context, IAwaitablePlace> result) { varplace = awaitresult; if(place != null) { varaddress = place.GetPostalAddress(); varformattedAddress = string.Join(", ", new[] { address.Locality, address.Region, address.Country }.Where(x => !string.IsNullOrEmpty(x))); awaitcontext.PostAsync( "Where are you looking for trails "+ formattedAddress); } context.Donestring>(null); }

超越 LUIS

除了 LUIS 之外,认知服务还提供了其他许多 API,可用于赋予智能机器人技能,而开发者个人或企业可能因非常复杂而难以实现这些技能。幸运的是,你不必自行实现它们:

借助推荐 API,可以添加产品(如经常一起购买的产品)推荐或个性化用户推荐。

影像 API 向智能机器人赋予高级图像和视频技能,以识别对象、人脸、年龄、性别或情绪。

学术知识 API 可以添加学术知识、创建问答,并能向智能机器人赋予特定的知识库技能。

值得一提的是,智能机器人还支持第三方 API 和服务。可以使用自己的服务和 API,让你的智能机器人与众不同,并解决以前从未解决过的问题。Bot Framework 确实通过简单的交谈界面和易用 API 带来了新的机遇,同时见证了人类知识的进步,并打开了辅助功能的大门。

新增精彩功能

除了针对 .NET Framework 和 Node.js 以及 REST API 定期更新 Bot Framework 之外,Microsoft 最近还新增了功能,让智能机器人开发更上一层楼。

Bot Framework 最新增添的功能之一是 Azure Bot Service,此服务现在可方便你轻松利用云的便利性和可扩展性来开发智能机器人项目 (bit.ly/2knEtU6)。Bot Service(如图 11 所示)使用 Azure Functions 和一系列快速启动模板,以帮助你充分利用智能机器人代码,并让智能机器人扩展到任意级别 (bit.ly/2kuo9Bb)。例如,可以选择基本、表单、主动、LUIS 或问答智能机器人模板,每个模板都可以生成一个随时都能运行的智能机器人,你可以根据需要对其进行扩展。

图 11:直接在浏览器中编辑 Bot Service 代码

Azure Functions 是 Azure Bot Service 的幕后支持技术,根据无服务器体系结构和按需计算来提供事件驱动的体验。这确实意味着,不再需要为每个智能机器人提供昂贵的应用托管基础结构。相反,可以让智能机器人更轻量级、更易于扩展,并节省在开发上花费的精力和时间,同时简化与认知服务的连接。

QnA Maker (qnamaker.ai) 是另一个值得一提的附加服务。QnA Maker 是 Azure Bot Service 提供的模板智能机器人项目,用于十分常见的情景,即智能机器人回答现有知识库中的典型问题。

总结

使用 Microsoft Bot Framework,可以快速轻松地开始生成智能机器人,为新的和现有的应用或服务提供交谈界面。这样,可以打造全新体验,通过 Skype、Facebook、Messenger、Telegram 和其他渠道覆盖数十亿用户。Microsoft 认知服务提供许多智能 API,方便你添加到智能机器人中。

Bot Framework 生态系统正在快速发展。为了利用这一点,可以添加认知服务附带的服务或使用第三方提供商的 API,让智能机器人更智能且能力更强。一切始于非常简单的智能机器人,你和你的用户会有许多发现。智能机器人确实是新应用(或现有应用的扩展),并且添加了智能组件,真的是非常强大。此外,智能机器人还减少了在开发上花费的时间、精力和成本。

介绍我的智能机器人

我在过去几个月里开发了几个智能机器人,所以我决定在一个方便访问的地方(图 A 中的列表)集中介绍它们。看一看我的智能机器人,看能否激发你开发自己的智能机器人。(单击提供的链接,可以将相应的智能机器人添加到 Skype。)

图 A:我的一系列智能机器人

智能机器人

说明

Solitaire ()

Solitaire 被认为是世界上最受欢迎的纸牌游戏。现在,使用常用的聊天客户端(如 Skype)即可享受游戏乐趣,无需启动应用。

Active Fitness ()

查找世界各地的跑步路线、骑自行车路线、徒步路线或滑雪路线,所有这些都来自全球顶级的健身社交网络。

UNO ()

在 Skype、Messenger 或 Telegram 上玩这款世界著名的纸牌游戏。

Freecell ()

Freecell 是一款很棒且极具挑战性的纸牌游戏,有多个难度等级。从简单等级开始,学学如何玩它。

Crazy Eights ()

看一看这款易上手的纸牌游戏。

Card Games Chest ()

学着玩一些最受欢迎的纸牌游戏,包括 Solitaire、UNO、Crazy Eights、101、Freecell 和 Mau-Mau。

Kevin Ashley(@kashleytwit) 是 Microsoft 架构技术推广者。他是《Windows 8 专业编程》(Wrox,2012 年)一书的合著者,而且是最受欢迎的应用、智能机器人和游戏的开发者之一,其中最著名的应用当属 Active Fitness (activefitness.co)。他经常参加不同活动、行业演出和网络广播,并进行技术方面的演讲。他的职责在于,与创业公司和合作伙伴密切合作,并在软件设计、业务和技术战略、体系结构和开发方面提供相关建议。你可以访问他的博客 (kevinashley.com),也可在 Twitter (@kashleytwit) 上关注他。

衷心感谢以下 Microsoft 技术专家对本文的审阅:Mat Velloso

原文地址:https://msdn.microsoft.com/en-us/magazine/mt795186

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

如需要了解产品详情,可电话咨询专业客服人员:15358521011(微信同号)

标签:徐州 鹰潭 文山 乌兰察布 淮安 东营 龙岩 黄山

巨人网络通讯声明:本文标题《智能机器人(智能机器人的功能有哪些)》,本文关键词  智能,机器人,机器,人的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《智能机器人(智能机器人的功能有哪些)》相关的同类信息!
  • 本页收集关于智能机器人(智能机器人的功能有哪些)的相关信息资讯供网民参考!
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266