亚马逊AWS官方博客

Citibot 聊天机器人搜索引擎如何运用 AI 技术查找更多答案

Original Link: https://aws.amazon.com/cn/blogs/machine-learning/how-citibots-chatbot-search-engine-uses-ai-to-find-more-answers/

 

本文为TensorIoT公司的Francisco ZamoraNicholas Burden,以及Citibot公司Bratton Riley共同撰写的客座文章。援引他们的表述,“TensorIoTAWS高级咨询合作伙伴,在物联网、机器学习、工业物联网以及零售等领域具有竞争力。作为前AWS员工建立的企业,TensorIoT已经为全球客户提供端到端的物联网与机器学习解决方案。Citibot则为民众及政府机构提供工具,借此实现高效、有效的沟通与民事改革。”

Citibot是一家科技企业,专为美国各级地方政府构建基于AI技术的聊天解决方案。借助Citibot,当地居民可以通过文本回复快速获取市政相关问题的答案、上报新问题并接收实时警报。为了增强这些交互操作,Citibot选择使用Amazon Lex服务,借此为文本及语音类应用程序构建对话界面。Citibot开发出一款聊天机器人,专门负责处理最基础的呼叫查询,保证政府雇员可以将更多时间与精力投入到更为重要的社区工作当中。

COVID-19疫情带来的挑战,再次凸显出公共事业机构对高扩展性自助服务工具的迫切需求,他们需要依靠这类工具向成员发布可靠信息。在COVID-19爆发之际,市民们开始大规模查询关于病毒预防与失业保险的信息,Citibot呼叫中心的等待时间也随之急剧增加。为了提升聊天机器人在处理全新查询类型时的灵活性与健壮性,Citibot开始向其中添加通用型搜索功能。Citibot希望超越第三方解决方案的樊篱,保证使用精心挑选的常见问答内容,同时结合来自疾控中心、联邦、各州及地方政府多个网站的发布数据,打造出一套能够切实服务民众的呼叫体系。

下图所示,为Citibot示例对话场景截屏。

为了设计这样一套通用型搜索解决方案,Citibot选择了TensorIoT。TesnorIoT是一家专门研究无服务器应用程序开发工作的AWS高级咨询合作伙伴。他们打造出一套解决方案,将TensorIoT的Web连接器工具与企业搜索服务Amazon Kendra匹配起来。TensorIoT的Web连接器工具内置于AWS当中,帮助Amazon Kendra对目标网页的内容进行索引,并将相关结果作为Amazon Lex intents无法直接提供答案时的备选搜索intent。

这一全新聊天机器人搜索解决方案,帮助当地居民快速找到所需答案,并将等待时间缩短达90%。这反过来减少了市政官员需要处理的交互数量,缓解了社区内部的不确定性,并使市政部门能够集中精力确保社区安全。随着疫情流行导致企业停工,这套解决方案也为无法访问互联网的居民提供一种非接触沟通方式,可随时通过电话在政府网站上搜索信息。

下图所示,为Citibot的通用搜索解决方案基本架构。

各项元素如何融合于一处

首先,TensorIoT部署了自定义Amazon Lex搜索intent,其将在聊天机器人接收到无法回答的问题或话语时触发。该团队使用AWS Lambda开发出intent对话与实现代码hook,用以管理对话流程与实现API。经过开发、测试与合并之后,这一全新搜索intent被正式纳入Citibot的开发版本,用以确保所有原始intent皆可正常起效。

接下来,TensorIoT需要创建搜索查询引擎。之所以选择Amazon Kendra,是因为这项服务能够将各类数据源与数据类型集成至Citibot的现有技术栈当中。TensorIoT与Citibot开发团队确定了政府数据源目标组,其中包括负责常规检查的疾控中心网站(用于获取COVID-19数据)与多个城市网站(用于获取市政数据)。以此为基础,聊天机器人即可随时更新关于病毒传播及社交隔离的最新指南。

下图所示,为Citibot通用搜索解决方案中所使用的各个数据源。

接下来,团队研究了最适合的信息保存与Amazon Kendra接入格式及数据存储容器选项。TensorIoT对Amazon Kendra的训练效果充满信心,指定由其系统处理并索引各数据源,并从各类数据格式(例如.pdf、.csv以及.html文件)中提取含义。为了提高 Amazon Kendra的处理效率,TensorIoT团队还通过智能方式将数据划分为更易于查询的信息块,通过中继机制将信息块返回至用户处。将.csv、.pdf与.html文件相结合,TensorIoT得以提供完整的数据内容,并为后续产品构建及开发奠定了坚实的基础。

TensorIoT团队随后使用NodeJS与JavaScript库Cheerio开发出通用型Web连接器,借此抓取受信任的网站并将信息结果保存在数据存储内。由于COVID-19相关信息经常变动,因此TensorIoT创建出一份Amazon DynamoDB表,用于存储所有网站内容并定期为更新信息编制索引。

根据来自目标网站的其他信息,TensorIoT与Citibot团队决定使用Amazon Simple Storage Service (Amazon S3)存储桶进行数据存储。Amazon Kendra则为保存在AWS内的所有非结构化数据提供基于机器学习(ML)的搜索功能,并为Amazon S3、SharePoint、Salesforce、ServiceNow、RDS数据库以及OneDrive等流行资源提供易于使用的原生连接器。通过统一从同一S3存储桶内提取来自疾控中心网站的.html页面与.pdf文件,开发团队得以将索引与数据源保持同步,随时提供可用数据。他们还使用Amazon Kendra从抓取到的.html页面中提取元数据文件,通过城市名称等文件属性进一步改善答案结果。

下图所示,为Citibot用于调整搜索结果的属性示例。

在没有进行任何模型训练的情况下,TensorIoT与Citibot能够直接将Amazon Kendra指向他们的内容存储位置,并从最相关的文件内容中提取答案为自然语言查询问题提供特定答案(例如「如何保护自己免受COVID-19病毒侵害?」)。

为了测试这套解决方案的实际效果,工程师们使用带有测试输入的示例事件脚本进行了场景模拟,借此确认每个问题或每段话语能否获得有效的文本摘录内容及答案链接。此外,该团队还使用负面反馈API,用于标记用户表示不满意的答案,引导Citibot重新访问这类未能起到帮助效果的搜索答案。这部分数据帮助他们针对特定问题,对聊天机器人所给出的回应做出持续改进。

在精选内容搜索方面,开发人员可以上传.csv常见问题解答文件,借此对各类常见问题进行快速、高效解答。他们还上传了一个包含相关问题与答案的独立.csv文件,配合一项完整的搜索引擎微服务以提高用户应答的准确性、简单性与连通性。

在短短几周之内,TensorIoT还构建了多个自定义查询逻辑与反馈提交API,并将其添加至Amazon Lex机器人当中,希望在无需人工干预或广泛搜索的前提下提高用户所获得的答案质量。Amazon Kendra通过API(例如提交反馈API)公开这些服务,允许最终用户与搜索结果进行交互。凭借着一系列自定义Amazon Lex intent与Lambda函数,该团队得以高效处理传入查询、构建起一项强大的搜索服务。

下图所示,为这套解决方案使用Amazon Lex与Lambda的具体方式。

TensorIoT解决方案在设计之初就考虑到整合需求,保证Citibot能够轻而易举地向其中添加新的城市,并面向各自社区传递信息。TensorIoT团队需要解决的下一个挑战,在于利用特定城市信息增强搜索结果的相关性。与Amazon Lex中其他会话及请求属性相结合,TensorIoT为Amazon Kendra提供一套搜索过滤器,能够针对特定城市进行数据查询优化。如果未指定城市,则系统默认使用用户发起当前呼叫时所处的位置。通过部署TensorIoT自定义搜索intent、搜索过滤器、数据源填充以及新的API选项,该团队一步步将这套搜索引擎集成到现有聊天机器人方案当中。

实际部署

为了部署这套TensorIoT解决方案,开发团队将新的Amazon Lex自定义搜索intent与Citibot整合起来,并测试了机器人成功回应查询的能力。TensorIoT通过Twilio使用Citibot提供的示例电话号码,配合往来短信验证每段对话的答疑效果。

借助Amazon Kendra的支持,TensorIoT团队不再需要任何第三方搜索引擎,而是将精力集中在开发用于信息收集的自动化解决方案身上。在聊天机器人更新完成之后,该团队通过软件开发工具包(SDK)的版本升级完成了服务的重新部署。升级之后的聊天机器人可以使用Amazon Kendra搜索功能,根据文档整理内容为更广泛的用户提问提供答案。经过此次迭代,Citibot的服务质量明显高于各地之前使用的呼叫应答工具。

当结合使用Amazon Lex和Amazon Kendra时,以特定设计的内容形式存储信息特别有用。Amazon Kendra拥有强大的定制化信息检索能力,而Amazon Lex则通过无代理语音交互将信息以语音形式播放给最终用户。

总结

在今天的用例中,我们了解到TensorIoT如何使用多项AWS服务提升解决方案的实际价值。除COVID-19疫情之外,各城市也可以继续使用由Amazon Kendra驱动的聊天机器人,帮助居民快速了解特定公共设施的开放时间、道路封闭情况以及紧急事件相关信息。根据实际用例,大家可以轻松创建自定义AWS Kendra主题,借此满足用户对于各类信息的查询需求。

事实证明,TensorIoT搜索引擎能够高效解决各类现实问题,保证居民社区通过文本内容保持知情权与治理联系。本文中的示例应用主要用于增强客户支持服务,但其中的解决思路也同样适用于学校、银行、本地企业以及各非营利性组织的内部知识库搜索场景。借助AWS与TensorIoT,Citibot等厂商得以运用Amazon Kendra的强大技术能力,显著改善现有聊天机器人的运行效果。

关于作者
Francisco Zamora,TensorIoT公司软件工程师。
Nicholas Burden,TensorIoT公司技术布道师。
Bratton Riley,Citibot公司CEO。