搜索
首页科技周边人工智能如何使用Azure Bot Services创建聊天机器人的分步说明

译者 | 李睿​

审校 | 孙淑娟​

信使、网络服务和其他软件都离不开机器人(bot)。而在软件开发和应用中,机器人是一种应用程序,旨在自动执行(或根据预设脚本执行)响应用户请求创建的操作。在本文中, NIX United公司的.NET​开发人员Daniil Mikhov介绍了使用微软Azure Bot Services创建聊天机器人的一个例子。本文将对想要使用该服务开发聊天机器人的开发人员有所帮助。

为什么使用Azure Bot Services? ​

在Azure Bot Services上开发聊天机器人的优势在于微软公司对其产品的高度支持。该公司的专家积极与技术社区沟通,并迅速识别和修复服务中的漏洞。此外,微软公司提供了创建自定义JSON文件的能力,以配合​一些信使的API,让开发人员在创建聊天机器人时有很多可能性。

记住Azure Bot Services的其他优点也很重要:

  • Azure Bot Services允许开发人员使用开源SDK工具(软件开发工具包)来创建、测试和部署聊天机器人。
  • 与认知服务的集成是指在工作中使用机器学习工具来解决典型任务的服务。认知服务确保了聊天机器人和用户之间更好的交互过程。
  • 多平台是指将聊天机器人连接到多个通道而无需更改原始代码的能力。
  • 大量的开源示例以促进开发过程和快速启动(GitHub上有很多现成的代码示例)。

开发人员可以通过添加新功能来扩展Azure平台上的聊天机器人基础设施。例如,可以添加更多通道并使用每个通道进行测试。可以使用Cosmos DB服务来存储对话状态和用户输入的信息。要训练聊天机器人,可以添加语言理解 (LUIS)。它使用机器学习算法来更好地与用户交流。然而,LUIS并不是免费的,并且不是每个客户都想分配额外的资金。

Azure Bot Services中的聊天机器人剖析 ​

在Azure上创建的聊天机器人的功能结构可以表示为:

如何使用Azure Bot Services创建聊天机器人的分步说明

可以在右侧看到连接到聊天机器人的可能通道列表。这个列表会随着新的平台不断更新。其底部是Azure平台可以使用的Microsoft认知服务。这些服务允许通过语音请求、面部表情、手势等与聊天机器人交流。

Bot Builder SDK用于在Azure上开发聊天机器人。该产品处于公共领域,其主要优势是开发人员的持续支持。在GitHub上的一个单独的分支中,可以获得关于该服务的最新信息,或者向其开发人员提问。

创建聊天机器人​

在编写代码之前,分析一下在Azure Bot Service上创建聊天机器人之前应该考虑的细微差别:

  • 破坏功能的更新。微软公司正在不断更新其产品。新的更新经常会破坏以前可以工作的部分代码。所以一定要了解新的Bot Builder SDK版本的补丁列表,而用来开发聊天机器人的其他手册可能会变得无关紧要。
  • 不明显的解决方案。在使用Bot Builder SDK时,应该始终对实验持开放态度,并愿意以不同于以往的方式进行操作。
  • 多功能性。同一个聊天机器人可以上传到不同的频道(Telegram、Skype、Slack等等),而不需要更改源代码。在开发聊天机器人时应该记住,每个平台都有细微差别,这需要开发人员在创建应用程序的工作逻辑时采用不同的方法。

(1)聊天机器人能正确理解人们的问题吗?

与聊天机器人的交流是通过用户界面进行的。用户界面允许开发人员采用聊天机器人能理解的语言与它交流。为此,微软Azure使用了一个对话框系统,它遵循特定的层次结构:

如何使用Azure Bot Services创建聊天机器人的分步说明

在这里可以看到与聊天机器人建立对话的三种基本方法:

  • 提示——聊天机器人通过提示和回答与用户交互。例如,以数字提示的形式给出聊天机器人信息。Prompt检查用户是否正确地回答了提示。如果成功,与聊天机器人的对话将继续进行。如果从用户那里收到不正确的回答,他将被提示输入有效的数据。
  • 瀑布——瀑布是一种通过一系列连续任务/问题从用户那里收集信息的方法。瀑布对话框的每个步骤都是作为异步函数实现的。在每个阶段,聊天机器人要求用户输入数据,等待响应,然后将结果传递到下一步。第一个函数的结果作为参数传递给下一个函数,以此类推,直到传递完整个问题循环。
  • 组件——组件是将一个庞大的对话框分解成更小的、易于管理的部分的一种方法。组件允许开发人员创建一个可重用的对话框,并在以后的各种独立场景中使用它。例如,可以使用它来创建一个对话框,该对话框将依次向用户询问街道名称/地址/邮政编码。

在最下面的一行,可以看到为聊天机器人创建自定义请求的允许方法:

  • 文本查询(文本)
  • 号码查询(数量)
  • 日期/时间请求(日期时间)
  • 确认请求(确认)
  • 选择请求(选择)
  • 附件要求(附件)

在本质上,查询是分阶段的对话框:在第一个阶段,聊天机器人请求输入数据在第二个阶段,它向用户返回有效值,或者在收到无效值时重新启动数据查询循环。

(2)控制器和模板

以下看看Daniil Mikhov创建的“稍后提醒我”聊天聊天机器人示例中的代码,它的主要任务是提醒他将来需要采取的任何行动。

为了创建聊天机器人,Mikhov使用了Visual Studio提供的Empty Template,它包括几种类型的控制器:BotController和NotifyController。

BotController为聊天机器人接收消息并将它们传递给聊天机器人框架。聊天机器人还包含几个部署模板,用于更轻松地将应用程序部署到Azure平台。

如何使用Azure Bot Services创建聊天机器人的分步说明

Notify Controller确定何时向用户发送消息。将在后面更详细地讨论这个问题。

(3)启动功能和填充ToDoDialog选项卡

转到Startup.cs选项卡,查看它的内容。在这里可以看到注册的错误处理程序AdapterWithErrorHandler。如果错误发生在程序中,应用程序对错误的反应是必要的。注意注册ConversationState——使用它来让聊天机器人了解正在与哪个用户交流,以及在对话的哪个阶段。

如何使用Azure Bot Services创建聊天机器人的分步说明

以下看看ToDoDialog.cs选项卡的内容。Mikhov声明了waterfallSteps,这是瀑布对话框的一组步骤,已经在上面提到过了。在waterfallSteps中,指定在每个步骤中使用哪些异步函数来构建用户和聊天机器人之间的对话。

如何使用Azure Bot Services创建聊天机器人的分步说明

以下可以看到聊天机器人将使用什么类型的输入提示。这里的内容是相当标准的:聊天机器人会问人们一些关于事件的问题,然后提供安排提醒。

如何使用Azure Bot Services创建聊天机器人的分步说明

现在运行聊天机器人,并使用Bot Framework Emulator界面测试它的操作。

(4)在聊天机器人框架模拟器中首次启动和测试

当运行这个应用程序时,会出现一个链接到聊天机器人将等待用户消息的URL。

如何使用Azure Bot Services创建聊天机器人的分步说明

在开始测试之前,在聊天机器人框架模拟器中指定这个链接:

如何使用Azure Bot Services创建聊天机器人的分步说明

在第一个通信步骤中,聊天机器人要求用户输入需要提醒的事件名称。为此,调用以下代码

如何使用Azure Bot Services创建聊天机器人的分步说明

现在,当调用聊天机器人时,它将返回以下文本:请输入事件描述。在声明想要进行提醒的事件(例如买牛奶)后,调用第二步的代码,在这里,聊天机器人将提供三个提醒时间选项中的一个:

如何使用Azure Bot Services创建聊天机器人的分步说明

注意stepContext的使用。它保存关于对话框的所有信息,记录中间值。为了实现可能的提醒时间列表,使用了ChoicePrompt。这个方法将为用户提供三个选项和一个可能的提醒时间(2分钟,5分钟,或第二天的同一时间)。本来可以有更多的选择,但只选了三个。

采用选择来表示每个新的选择时间,可以得到:

如何使用Azure Bot Services创建聊天机器人的分步说明

在聊天机器人框架模拟器中,这段代码将像这样呈现:

如何使用Azure Bot Services创建聊天机器人的分步说明

可以使用Parse对结果进行解析。在此提醒的是,解析是一个自动收集数据并对其进行结构化的过程。然后聊天机器人会询问用户是否确定所选的提醒时间,使用ConfirmPrompt来确认协议:

如何使用Azure Bot Services创建聊天机器人的分步说明

从视觉上看,这个方法如下所示:

如何使用Azure Bot Services创建聊天机器人的分步说明

最后一步是从stepContext中取出之前填写的信息,并生成一个SavedNotificationModel,必须向其添加一个conversationReference。如果没有它,聊天机器人将无法恢复与用户的对话,也无法确定是哪个用户专门解决了这个问题。

如何使用Azure Bot Services创建聊天机器人的分步说明

Mikhov使用字典方法作为这些事件的临时存储库,多亏采用它,聊天机器人将其唯一的instanceId分配给每个特定的对话框:

如何使用Azure Bot Services创建聊天机器人的分步说明

这将结束与聊天机器人的对话。可以向用户显示文本,指示对话框的结束并创建相应的提醒请求:“谢谢。通知已成功保存”。

如何使用Azure Bot Services创建聊天机器人的分步说明

(5)聊天机器人如何穿越时间 ​

为了及时定位聊天机器人,Mikhov创建了notiffiedcontroller方法NotifyTimeCheck()。这种方法允许系统地轮询应用程序,如果某个事件即将发生,聊天机器人将从字典中检索该事件并向用户发送通知。

如何使用Azure Bot Services创建聊天机器人的分步说明

为了获得通知,将调用BotAdapter的ContinueConversationAsync()方法,并将ConversationReference传递给它。ContinueConversationAsync()的第一个参数必须始终是聊天机器人服务的appId(应用ID),否则,它将无法工作。

此外,还需要提醒聊天机器人,当某个时间到达时,必须将事件提醒给特定的用户。开发人员可以使用Azure Function(BotTimerFunction),它将由一个时间触发器(TimerTrigger)触发。

如何使用Azure Bot Services创建聊天机器人的分步说明

每隔一分钟,函数将向这个端点发送一个请求,并开始检查指定的事件。如果它到达了正确的时间框架,聊天机器人将通知用户预定的事件即将发生。

如今,WhatsApp、Facebook Messenger、Telegram和其他通信工具不仅是交流平台,也是业务平台。聊天机器人帮助企业有效地在线销售和推广商品和服务。实现日常流程的自动化,及时向客户提供必要的产品信息,接收和处理请求——所有这些适当配置的聊天机器人的功能将有助于将用户转化为客户。因此,作为开发人员,应该记住这个工具现在是多么流行,能够创建这样的应用程序并因此成为受欢迎的专家是多么酷的事。

原文标题:How to Create a Chatbot Using Azure Bot Service: Step-by-Step Instruction作者:Daniil Mikhov


以上是如何使用Azure Bot Services创建聊天机器人的分步说明的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
一个提示可以绕过每个主要LLM的保障措施一个提示可以绕过每个主要LLM的保障措施Apr 25, 2025 am 11:16 AM

隐藏者的开创性研究暴露了领先的大语言模型(LLM)的关键脆弱性。 他们的发现揭示了一种普遍的旁路技术,称为“政策木偶”,能够规避几乎所有主要LLMS

5个错误,大多数企业今年将犯有可持续性5个错误,大多数企业今年将犯有可持续性Apr 25, 2025 am 11:15 AM

对环境责任和减少废物的推动正在从根本上改变企业的运作方式。 这种转变会影响产品开发,制造过程,客户关系,合作伙伴选择以及采用新的

H20芯片禁令震撼中国人工智能公司,但长期以来一直在为影响H20芯片禁令震撼中国人工智能公司,但长期以来一直在为影响Apr 25, 2025 am 11:12 AM

最近对先进AI硬件的限制突出了AI优势的地缘政治竞争不断升级,从而揭示了中国对外国半导体技术的依赖。 2024年,中国进口了价值3850亿美元的半导体

如果Openai购买Chrome,AI可能会统治浏览器战争如果Openai购买Chrome,AI可能会统治浏览器战争Apr 25, 2025 am 11:11 AM

从Google的Chrome剥夺了潜在的剥离,引发了科技行业中的激烈辩论。 OpenAI收购领先的浏览器,拥有65%的全球市场份额的前景提出了有关TH的未来的重大疑问

AI如何解决零售媒体的痛苦AI如何解决零售媒体的痛苦Apr 25, 2025 am 11:10 AM

尽管总体广告增长超过了零售媒体的增长,但仍在放缓。 这个成熟阶段提出了挑战,包括生态系统破碎,成本上升,测量问题和整合复杂性。 但是,人工智能

'AI是我们,比我们更多''AI是我们,比我们更多'Apr 25, 2025 am 11:09 AM

在一系列闪烁和惰性屏幕中,一个古老的无线电裂缝带有静态的裂纹。这堆积不稳定的电子设备构成了“电子废物土地”的核心,这是身临其境展览中的六个装置之一,&qu&qu

Google Cloud在下一个2025年对基础架构变得更加认真Google Cloud在下一个2025年对基础架构变得更加认真Apr 25, 2025 am 11:08 AM

Google Cloud的下一个2025:关注基础架构,连通性和AI Google Cloud的下一个2025会议展示了许多进步,太多了,无法在此处详细介绍。 有关特定公告的深入分析,请参阅我的文章

IR的秘密支持者透露,Arcana的550万美元的AI电影管道说话,Arcana的AI Meme,Ai Meme的550万美元。IR的秘密支持者透露,Arcana的550万美元的AI电影管道说话,Arcana的AI Meme,Ai Meme的550万美元。Apr 25, 2025 am 11:07 AM

本周在AI和XR中:一波AI驱动的创造力正在通过从音乐发电到电影制作的媒体和娱乐中席卷。 让我们潜入头条新闻。 AI生成的内容的增长影响:技术顾问Shelly Palme

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境