使用Azure Bot Service开发聊天机器人
分类: Azure机器人 ◆ 标签: #Azure Bot Framework SDK #Azure Bot Service #机器人 ◆ 发布于: 2023-08-07 22:36:15

聊天机器人在电商时代有很多的应用,各种自动客服,订单系统,电话语音等。它适用各种重复的,枯燥的工作。在和人的交互过程中,聊天机器人可以通过语音,文字,图片,甚至是视频完成交互工作。同时可以接入自然语言处理模型,问答模型等等各种基于AI
的组件,使得聊天机器人更像人类,更好,更自然的完成交互的工作。
要设计一个聊天机器人的基础框架是繁复的,需要考虑很多场景,例如多场景对话,连续对话,跳跃性对话等都需要认真的考虑,技术上也受制各种技术集成,拔高了难度。推荐大家可以使用微软推出的Azure Bot Service
来简化聊天机器的开发,节省成本,何乐而不为。
我们先看一下Azure Bot Service
的介绍。
Azure Bot Service
的介绍
Azure Bot
由一系列的概念和工具组成,包括微软对于聊天机器人大部分的场景抽象以及针对这些抽象设计的工具。
微软提供的工具根据使用的人群和场景不同,主要分为:
Azure Bot Service
andAzure Bot Framework SDK
Power Virutal Agent
这其中Power Virutal Agent
是O365
的产品线,而且集成在Power
平台上,更多的面向终端用户,我们只讨论Azure Bot Service
和Azure Bot Framework SDK
。
微软把聊天的业务场景分成很多个部分:用户和聊天机器人交互的工具,例如微信,运行在web上的网页聊天工具,Skype
, QQ
, teams
等称之为Channel
, 每个Channel
支持的交互方式不完全相同,例如Teams
支持电话,微信支持视频通话等等。用于连接渠道您开发的Bot
和Channel
之间的转换和适配的中间件称之为Adapter
, 最后才是你的聊天机器人,总结一下,微软在设计聊天机器人时,设计了三个物理上的概念:
Channel
: 代表性的系统或者工具有微信,QQ
,Teams
,Facebook
,Web Chat
等等,用户可以通过这些Channel
连接到您的机器人系统上,当然你也可以直接通过机器人开发的rest api
直接向它发送消息。Adapter
: 适配器的作用是将通过渠道传送过来的消息,进行转换和包装,统一格式处理。同时在Adapter
这一层还设计了中间件的理念,利用Adapter
和middlewware
形成一个处理消息的pipeline
, 在pipeline
的最末端就是Bot
的处理函数了。Bot
: 最后就是我们开发的聊天机器人了,由于已经由Adapter
统一了格式,在bot只需要按照统一的标准处理就可以了。
除了上述三个物理概念之外,为了在逻辑业务上更好的处理聊天的场景,微软还设计了如下的概念:
Conversation
: 会话,每一个用户开始通过Channel
了解聊天机器人时,这个用户以及它使用的Channel
和对话的Bot
实例就形成了一个会话Conversation
, 只要通过去Channel
的用户ID
不变,Channel
不变,Bot
不变,那么这个会话就一直存在(当然技术上要持久化)Turn
: 作业(turn很不好翻译,本来想翻译为回合,但是计算机词典都翻译为作业
), 这个主要是指聊天的场景基本上用户发送一句,机器人回复一句或者多句,这个就规定为一个turn
。Activity
: 用户或者channel
和机器人交互的消息经过Adapter
打包,打包之后的对象就是Activity
, 也就是说和机器人之间交互的消息承载都是由Activity
完成。预定义了有多种类型的Activity
, 例如有MessageActivity
, 有ConversationUpdateActivity
, 有MemberAddActivity
等等。Turn Context
: 每次用户或者Channel
和机器人之间的交互都需要一个上下文用于传递环境,Turn Context
就是抽象出来的对象,由Adapter
生成并传递给Bot
。
Hello, Bot
为了快速的体验一下到底什么是Azure Bot
, 可以使用如下的步骤快速的测试一下,开始之前我们先需要准备几个工具:
Bot Framework Emulator
:Channel
的模拟器,您可以通过如下的地址下载:https://github.com/Microsoft/BotFramework-Emulator#readmeBot Framework Visual Studio
模板: 从这里下载:https://marketplace.visualstudio.com/items?itemName=BotBuilder.botbuilderv4Visual Studio
: 可以从这里下载,个人用社区版就很好用了:https://visualstudio.microsoft.com/
在安装好Visual studio
和Bot Framework Visual Studio
模板之后,启动Visual studio
, 创建新项目时选择Echo Bot
如下图:
按照步骤创建完成之后,运行该模板生成的应用,自动打开浏览器,并如下提示:
拷贝上述红框处的地址, 启动Bot Framework Emulator
, 如下图输入刚刚保存的连接,并Connect
:
连接上后,可以开始简单的测试一下你的第一个聊天机器人了:
Azure Bot Service
和Azure Bot Framework SDK
的关系
Azure Bot Framework SDK
用于开发自己的Bot
, Azure Bot Service
是Azure
提供的云服务,主要用于帮助你的Bot
适配不同的Channel
,作为一个统一入口,并且还会在Channel
和你的Adapter
以及Bot
之间relay
消息。
如果你的渠道单一,可以不需要创建Azure Bot Service
,Bot
完全可以运行在你自己的环境里, 就像上面的那个Hello Bot
,就是运行在本地。
今天就学习到这里。明天继续