亚马逊AWS官方博客
使用 Amazon Connect/Lex/Lambda 免费套餐玩转智能客服
前言
您是否想要提升您的客服的能力,又不希望产生高昂的费用呢?那么您来对地方了!在这篇技术博客中,我们将探索 Amazon Connect、Amazon Lex 和 AWS Lambda 三位一体的强大服务,共同构建智能客服解决方案的基础。更重要的是,我们将在免费套餐的限制下完成所有操作,使其成为各类企业都能轻松实现自己的智能客服。
方案简介
在当今竞争激烈的商业环境中,提供卓越的客户体验是成功的关键。智能客服技术的出现为企业带来了前所未有的机遇,能够提高客户满意度,加速问题解决过程,并提升服务效率。Amazon Connect 是亚马逊推出的全球领先的云端联系中心服务,它为企业提供了高度灵活且易于扩展的平台,让企业能够轻松地建立联系中心,实现多渠道的客户交互,而且目前您在任何区域首次部署 Amazon Connect 云联系中心的前 12 个月,将收到:
- 每月 90 分钟的 Amazon Connect 服务使用时间
- AWS 区域所在国家/地区的直接拨号呼入(DID)号码
- 每月 30 分钟的入站 DID 通话时间
- 每月 30 分钟到 AWS 区域所在国家/地区的号码的出站通话时间
对于美国区域,您还将收到:
- 一个美国免费电话号码
- 每月 30 分钟由美国拨出的入站免费通话时间
Amazon Connect 更多免费套餐信息可以参考:https://aws.amazon.com/cn/connect/pricing/。
此方案结合 Amazon Lex,一个基于自然语言理解(NLU)的服务,我们可以打造出智能对话式接口,使客户能够用自然语言与系统进行交互,无需学习复杂的命令或术语。您现在使用 Amazon Lex 的前 12 个月,可以免费享受:
- 每月 10000 个文本请求
- 每月 5000 个语音请求
您还可以使用自动化聊天机器人设计器,前两个月可获得每月两小时的培训时间。
而 AWS Lambda 作为无服务器计算服务,不仅能实现高效的代码运行,还能将这些服务整合在一起,形成一个高度灵活和高度可定制的智能客服系统。现在使用 Lambda,您将永久获得如下免费套餐:包括每月 100 万次免费请求和 400000 GB 秒的计算时间,可用于由 x86、Graviton2 处理器或两者整合提供支持的函数。此外,免费套餐包括每月 100GiB 的 HTTP 响应流,不包括每个请求的前 6MB(免费)。
在本文中,我们将深入探讨如何充分利用 Amazon Connect、Amazon Lex 和 AWS Lambda 的免费套餐,将它们集成到一个创新的智能客服解决方案中。我们将带您一步一步了解如何配置和部署这些服务,并展示它们如何协同工作,为您的企业带来出色的客户体验。无需昂贵的投资,您也可以实现智能客服的未来,为客户提供无与伦比的服务,从而在市场竞争中脱颖而出。
方案拓扑
在此智能客服解决方案中,我们将模拟一个智能银行客服的场景,Amazon Connect 承担呼叫中心职责,Amazon Lex 则提供智能对话机器人的任务,Lambda 将用于连接 Amazon Connect 和 Amazon Lex,并实现自定义的业务逻辑。通过使用 Lambda,我们可以为客户提供个性化的交互体验。例如,当客户打电话给联系中心时,会将客户需求转发到 Lambda 函数,该函数可以检查客户的查询,并根据不同情况进行处理。如果客户正在查询账户余额,Lambda 可以调用相关的后端服务获取数据,并将结果返回给客户,下面我们就开始进行相关配置和部署。
具体实施步骤
注:此文章的所有操作请都在 us-east-1 区域(弗吉尼亚北部)完成。
步骤一:创建 Lambda 函数
- 首先,登录到 AWS 控制台,选择 us-east-1 区域,在服务搜索里面中找到“Lambda”,然后点击进入“Lambda”控制台。
- 在左侧菜单中点击函数,在 Lambda 控制台的顶部,点击“创建函数”按钮。
- 在“创建函数”页面中,选择“从头开始制作”选项,输入自定的函数名称,这里我们使用“BankingBotEnglish”,然后选择“Python 3.10”,选择“x86_64”构架,点击“创建函数”。
- 在接下来函数的具体显示页面,代码源部分,粘贴复制下面的代码,记住输入完毕之后一定要点击“Deploy”:
至此,Lambda 函数部分已经创建完毕,我们可以从代码中看出,这里是个简单的测试环境,我们生成了随机数,并且赋值给了账户的金额,实际生产环境,Lambda 可以通过读取数据库的方式获得这些值,我们继续下面的步骤。
步骤二:创建 Lex 机器人
打开 Amazon Lex V2 console , 选择机器人,然后选择创建机器人:
如上图选择创建空白机器人。
机器人配置部分,我们输入机器人名称,BankingBot,说明部分可选。
IAM 权限部分,我们选择创建具有基本 Amazon Lex 权限的角色。
儿童在线隐私保护法部分,我们选择否,其他保持默认,然后选择下一步。
在下一个页面,我们选择语言为英文,语音交互部分可以根据喜好任选,这里我们选择 Joanna,然后就可以点击完成了。至此我们就已经完成了 Lex 机器人最基础的部分,下面我们需要关联刚才建立的 Lambda 函数到 Lex 机器人。
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后在右边的菜单“部署”下面的“别名”,可以看到名为“TestBotAlias”的别名,点击它,然后在“语言”部分,可以看到“English”,点击“English”,出现如下界面:
选择刚才建立的 Lambda 函数“BankingBotEnglish”,版本选择“$LATEST”,然后保存即可,这样就完成了 Lambda 函数的关联,接下来我们需要配置 Lex 机器人的对话环节。
接下来,我们需要配置如下几个意图(Intent),意图是用户想要执行的动作,而插槽(Slot)是机器人程序实现意图所需的输入数据,也就是从对话中获取相关的数值。对于这个方案,需要创建以下意图,允许用户与智能客服进行交互:
- Welcome:此意图是为了欢迎用户。
- CheckBalance:这个意图是检查用户指定的帐户上的余额,并引用两个插槽中的输入数据:accountType 和 dateofBirth。
- FollowupBalance:该意图提供查询一个账户的明细,并引用两个插槽的数据:accountType 和 dateofBirth。
- TransferFunds:此意图在支票账户和储蓄账户之间转移资金,并引用三个插槽的输入数据:sourceAccountType、targetAccountType 和 transferAmount。
- FallbackIntent:当没有其他意图与用户输入数据匹配时,此意图提供默认响应。
- ExitIntent: 当拨打者想结束对话时,此意图可以终止对话。
在以下步骤中,您将为 BankingBot 机器人创建这五个意图和关联的插槽。
创建 Welcome 意图
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后点击右边的菜单“英语(US)”下面的“意图”,然后点击添加意图(如果初次使用,会存在一个“NewIntent”,也可以点击它进行修改)。
在 Amazon Lex 意图编辑器的详细信息部分,将意图名称由“NewIntent”修改为“Welcome”,如下图所示:
在“示例语言”部分,我们选择“纯文本”,并且粘贴下面的句子,如截图所示:
当然,你可以输入更多的拨打者可能会说的话,根据实际场景,当拨打者说类似的话就可以触发这个意图,机器人就会进行相关应答。
然后在“关闭响应”部分,我们粘贴下面的句子,也可以根据实际情况编辑:
然后点击“保存意图”,并且点击“Build”,Build 完毕之后,可以点击“test”进行测试,当你输入上面配置的欢迎词样例中的句子的时候,机器人就会进行响应,这里就不赘述了。
创建 CheckBalance 意图
在创建这个意图之前,我们需要定义一些插槽的类型。
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后点击右边的菜单“英语(US)”下面的“插槽类型”,然后点击“添加插槽类型”,选择“添加空白插槽类型”,插槽类型名称我们输入“accountType”,点击添加,如下图所示:
接下来出现的插槽配置界面,插槽值解析部分,我们选择限制为插槽值:
对于插槽类型值,添加“Checking”、“Savings”和“Credit”的值。您还可以在第二列中添加同义词,以帮助机器人识别对信用槽的附加引用。例如,添加 credit card, Visa 和 Mastercard。
然后我们点击“保存插槽类型”,然后继续创建意图了。
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后点击右边的菜单“英语(US)”下面的“意图”,然后点击添加意图,意图名称输入“CheckBalance”,然后继续。
在“示例语言”部分,我们选择“纯文本”,并且粘贴下面的句子,如截图所示:
在“插槽”部分,我们点击添加插槽,我们需要添加两个插槽:
- 插槽名为“accountType”,插槽类型 accountType,“提示”下方栏输入“Sure. For which account would you like your balance?”
- 插槽名为“dateofBirth”,插槽类型 Amazon.Date,“提示”下方栏输入“For verification purposes, what is your date of birth?”
此处我们可以先保存意图,然后继续。
接下来我们会准备 FollowupCheckBalance 意图,您需要将 CheckBalance 意向上下文保存为输出以备将来使用。这样,当与 BankingBot 对话时,用户可以使用 FollowupCheckBalance 意图请求第二个帐户余额,BankingBots 将使用 CheckBalance 上下文来了解用户的出生日期,而不会再次提示相同的验证信息。
在“上下文”部分中,选择“输出上下文”的下拉菜单中的“新建上下文标签”,名称输入“contextCheckBalance”,然后添加:
接下来,我们需要将此意图和 Lambda 函数关联。
在“履行”的高级选项里面,选中“使用 Lambda 函数进行履行”,然后点击“更新选项”。
保存意图,然后点击“Build”,Build 完毕之后,可以点击“test”进行测试,就可以测试 CheckBalance 这个意图了,你可以尝试查询自己各种账户里面的余额,当然智能客户会提示你输入生日。
创建 FollowupBalance 意图
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后点击右边的菜单“英语(US)”下面的“意图”,然后点击添加意图,意图名称输入“FollowupBalance”,然后继续。
我们先处理上下文,在“上下文”部分中,选中“输入上下文”的下拉菜单中的“contextCheckBalance”,如下图所示:
在“示例语言”部分,我们选择“纯文本”,并且粘贴下面的句子,如截图所示:
在“插槽”部分,我们点击添加插槽,同样添加两个插槽:
- 插槽名为“accountType”,插槽类型 accountType,“提示”下方栏输入“You’d like the balance for which account?”
- 插槽名为“dateofBirth”,插槽类型 Amazon.Date,“提示”下方栏输入“For verification purposes, what is your date of birth?”
展开 dateofBirth 插槽,点击“高级选项”,滚动到最下方,在默认值部分,填入“#contextCheckBalance.dateofBirth”,然后点击“添加默认值”,然后点击“更新插槽”:
同样,在“履行”的高级选项里面,选中“使用 Lambda 函数进行履行”,然后点击“更新选项”:
保存意图,然后点击“Build”,Build 完毕之后,可以点击“test”进行测试,就可以测试 FollowupBalance 这个意图了,你查询一个账户余额之后,再查询另一个账户,系统不会重复提示输入生日的验证信息,因为有上下文记录了。
创建 TransferFunds 意图
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后点击右边的菜单“英语(US)”下面的“意图”,然后点击添加意图,意图名称输入“TransferFunds”,然后继续。
在“示例语言”部分,我们选择“纯文本”,并且粘贴下面的句子,如截图所示:
在“插槽”部分,我们点击添加插槽,我们需要添加三个插槽:
- 插槽名为“transferAmount”,插槽类型 AMAZON.Number,“提示”下方栏输入“How much would you like to transfer?”
- 插槽名为“sourceAccountType”,插槽类型 accountType,“提示”下方栏输入“Which account would you like to transfer from?”
- 插槽名为“targetAccountType”,插槽类型 accountType,“提示”下方栏输入“Which account are we transferring to?”
在“Comfirmation”部分:
- “确认提示”我们输入:“Got it. So we are transferring {transferAmount} from {sourceAccountType} to {targetAccountType}. Can I go ahead with the transfer?”
- “拒绝响应”我们输入:“The transfer has been cancelled.”
在“关闭响应”的消息部分,我们输入“The transfer is complete. {transferAmount} should now be available in your {targetAccountType} account. ”
保存意图,然后点击“Build”,Build 完毕之后,可以点击“test”进行测试,就可以测试 TransferFunds 这个意图了,我们可以尝试从一个账户转移部分资金到另一个账户。
创建 FallBack 意图
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后点击已有的 FallbackIntent 意图。
在“关闭响应”的消息部分,我们输入“Sorry I am having trouble understanding. Can you describe what you’d like to do in a few works? I can help you find your account balance, transfer funds, and make a payment.”
保存意图,然后点击“Build”,Build 完毕之后,可以点击“test”进行测试。
创建 ExitIntent 意图
在 Amazon Lex V2 主界面,我们可以看到刚才建立的机器人的名称,点击它,然后点击右边的菜单“英语(US)”下面的“意图”,然后点击添加意图,意图名称输入“ExitIntent”,然后继续。
在“示例语言”部分,我们选择“纯文本”,并且粘贴客户想终结对话是说的话,一般到这一步的时候,一般智能客服的提示语为“Is there anything else I can do for you?”之类的话,所以一般可以说“No”, “Nothing”来结束对话:
保存意图,然后点击“Build”,Build 完毕之后,可以点击“test”进行完整的 Lex 机器人测试,这里就不做赘述了。
步骤三:创建 connect 实例并且进行相关配置
创建 Amazon Connect 实例
首先我们进入 Amazon Connect 的主界面,并且点击 create instance。
Amazon Connect 的身份管理有多种方式,我们根据实际选择,这里我们就选择使用 Amazon Connect 自身存放,然后点击下一步:
如上图,我们需要输入管理员用户,请记录信息,接下来的步骤会使用,然后点击下一步:
设置通话的时候,我们将入站和出站都选中,然后点击下一步:
下一步是设置数据存储,是存放 connect 运行过程中的信息,保持默认即可,点击下一步,下一步就是检查所有刚刚配置过的信息,确认无误之后,我们点击创建实例即可。
将 Lex 机器人和 Connect 关联
我们要在客户拨打电话的过程中引入 Lex 机器人,那么就需要先配置 Amazon Connect 可以访问刚才建立的 Lex 机器人,返回 Amazon Connect 的主界面,您会看到如下的创建的实例:
点击刚才建立的实例名称,然后进入实例配置界面,点击左侧的“Flows”选项,然后关联 Lex 机器人:
如上图所示,选择刚才建立的机器人,然后别名选择 TestBotAlias,点击“+ 添加 Amazon Lex 自动程序”,这里系统会自动保存。
创建通话对话流程
接下来,我们需要创建客户和智能客服的通话的对话流程。
再次返回 Amazon Connect 的主界面,点击实例的访问 URL,并且输入刚刚建立的管理员用户名,密码,进入 Connect 实例操作界面。
进入实例操作界面之后,我们可以点击右上角的地球图标,根据需求修改默认语言,这里我们可以选择中文(简体):
点击右侧的“路由选择”菜单,点击“流”,然后点击“创建流”:
先点击左上角的铅笔形状的图标,修改流的名称,这里我们输入“Bankbotflow”
在流的名称下面的“数据块”,数据块可以理解通话流程的各个环节的功能块,在搜索栏里面可以搜索各种功能块,比如这里输入了“设置语音”,可以看到相关的有两个数据块,我们可以将对应的数据块通过拖拽的方式加入右边的对话流设计面板。
这里可以看出,Amazon Connect 这种可视化的对话流设计是非常友好的,即使没有任何代码经验的用户也可以一步一步设计一个完整的对话流程。我们通过各个数据块实现通话各个环节的功能,然后把它们连接起来就可以实现一个完整的智能客服对话流程,当然期间我们对于有些需要智能对话的环节,我们就会引入 Lex 机器人,当我们配置完成之后的对话流程图如下:
下面我们来一步一步介绍这个流程如何建立:
首先我们需要设置智能客服的语言,这里我们和 Lex 机器人保持一致,选择 Joana。
在“数据块”搜索栏输入“设置语音”,如下图所示,将“设置语音”拖拽到对话流设计栏,然后这个数据块默认就是设置为 Joana 的发音,并将“条目”的箭头拖拽到“设置语音”的输入箭头位置:
在“数据块”搜索栏输入“播放提示”,如下图所示,将“播放提示”拖拽到对话流设计栏,单击它的标题部分(就是中文字“播放提示”位置),编辑设置为“文字转语音或聊天文本”,“手动设置”部分填入:“Welcome to Demo bank services.”,保存,并将“设置语音”数据块的成功箭头拖拽到“播放提示”的输入箭头位置:
在“数据块”搜索栏输入“获取客户输入”,如下图所示,将“获取客户输入”拖拽到对话流设计栏,单击它的标题部分,编辑设置为“文字转语音或聊天文本”,“手动设置”部分填入:“What can I do for you?”,在编辑的下方点击“Amazon Lex”,选择前面步骤建立的 Lex 机器人,选择“TestBotAlias”别名,保存,并将“播放提示”数据块的成功和错误的箭头都拖拽到“获取客户输入”的输入箭头位置:
再次拖拽一个“播放提示”数据块到对话流设计栏,单击它的标题部分,编辑设置为“文字转语音或聊天文本”,“手动设置”部分填入:“Sorry, I didn’t find a match.”,保存,并将刚才建立的“获取客户输入”数据块的错误的箭头都拖拽到此数据块的输入箭头位置,并将此数据块的成功和错误的箭头都拖拽到刚才建立的“获取客户输入”数据块的输入箭头位置:
在“数据块”搜索栏输入“设置联系人属性”,如下图所示,将这个数据块拖拽到对话流设计栏,单击它的标题部分,编辑栏点击“添加其他属性”,“命名空间”选择“用户定义”,“键”的值填入“Loopprompt”,选择“手动设置”,输入“Is there anything else I can do for you?”,保存,并将“获取客户输入”数据块的成功的箭头拖拽到此数据块的输入箭头位置:
再次拖拽一个“设置联系人属性”数据块到对话流设计栏,单击它的标题部分,编辑栏点击“添加其他属性”,“命名空间”选择“用户定义”,“键”的值填入“Loopprompt”,选择“手动设置”,输入“What can I do for you?”,保存,先不连接任何其他数据块,等一会儿再进行操作:
再次拖拽一个“获取客户输入”数据块到对话流设计栏,单击它的标题部分,编辑设置为“文字转语音或聊天文本”,选择“动态设置”,“命名空间”选择“用户定义”,“键”的值填入“Loopprompt”,保存,在编辑的下方点击“Amazon Lex”,选择前面步骤建立的 Lex 机器人,选择“TestBotAlias”别名,点击下方的“添加意图”按钮,添加五个意图,分别是:ComfirmIntent,CheckBalance,FollowupBalance,TransferFunds,ExitIntent,并将此数据块的 CheckBalance,FollowupBalance,TransferFunds 这几个意图以及“默认”和“错误”的箭头都拖拽到第一个建立的“设置联系人属性”的输入箭头位置,将此数据块的 ComfirmIntent 意图的箭头拖拽到第二个建立的“设置联系人属性”的输入箭头位置,并将两个“设置联系人属性”数据块的成功和错误的箭头都拖拽到此数据块的输入箭头位置:
再次拖拽一个“播放提示”数据块到对话流设计栏,单击它的标题部分,编辑设置为“文字转语音或聊天文本”,“手动设置”部分填入:“Thank you for choosing our services. If you need any assistance in the future, please don’t hesitate to reach out. Have a great day!”,保存,并将刚才建立的“获取客户输入”数据块的 ExitIntent 意图的箭头都拖拽到此数据块的输入箭头位置:
在“数据块”搜索栏输入“断开连接”,如下图所示,将最后一个建立的“播放提示”数据块的成功和错误的箭头都拖拽到此数据块的输入箭头位置,就完成了所有的对话流的设计:
点击右上角的“保存”按钮保存,并且点击“发布”按钮,会提示“已成功发布流!”:
申请号码并且关联对话流
选择左侧的“通道”菜单,点击“电话号码”,初始使用无任何号码,点击右侧的“申请号码”,可以免费申请/使用一个美国的号码:
下面的联系流部分,选择刚才建立的联系流,然后保存:
至此,我们已经实施完毕,我们可以来测试效果,拨打这个号码,可以和智能客服对话,完成查询,转账等简单的业务功能。
写在最后
至此,我们的智能客服机方案已经搭建完毕,通过本文的介绍,我们可以得出结论,AWS 智能客服解决方案以其强大的功能和灵活的免费套餐,为企业提升客服能力带来了巨大的优势。Amazon Connect、Amazon Lex 和 AWS Lambda 三位一体的服务为智能客服打下坚实的基础,具备以下优势:
- 灵活的定制能力:Amazon Connect 作为云端联系中心,提供了高度定制化的客服流程和交互体验,能够根据企业的实际需求进行灵活调整,让客服系统与业务高度匹配。
- 智能语义理解:借助 Amazon Lex 的自然语言处理技术,企业能够轻松构建智能对话机器人,实现对用户的智能理解和回复,从而提升客户满意度和服务效率。
- 高效的自动化处理:AWS Lambda 作为无服务器计算服务,为整个客服解决方案提供了强大的自动化处理能力,让企业能够在不增加高昂费用的前提下,实现更多的自动化客服功能,无缝将各种外部系统接入此方案。
- 可靠的云端架构:三个服务均基于 AWS 强大的云端基础设施,提供高可用性和可靠性,确保客服系统的稳定运行和优质服务。
- 免费套餐优势:最值得一提的是,这些服务都在免费套餐内提供部分功能,使得智能客服解决方案不再局限于大企业,而是让各类企业都能轻松实现自己的智能客服,降低了技术应用门槛。初期完全免费,按需付费,无任何预置费用。
在未来,随着技术的不断进步和 AWS 平台的持续优化,智能客服解决方案将会变得更加强大和普及,为企业提供更便捷、智能、高效的客户服务体验,助力企业取得更大的商业成功。立足当前,我们鼓励各类企业抓住这个机遇,利用 AWS 智能客服解决方案,为客户提供更优质的服务,实现持续发展和竞争优势。