



如果你希望为使用聊天机器人的用户构建对话体验,那么将有大量的开发工具可选。目前有若干个具有不同功能集的平台,每个平台在提供服务方面都是独一无二的。
智能聊天机器人(chatbot)是一种在过去10年中不断成长的聊天机器人,它已经成功地为聊天机器人更容易被专业网站和行业所接受铺平了道路。那么这些机器人能提供什么样的智能?它们能达到什么业务目标呢?
让我们尝试用一个场景来回答这两个问题。
假设你拥有一家百货商店,并且在其中雇用了几名员工,以便他们可以将客户引导到正确的区域。有一天,你意识到这些员工实际上增加了商店的拥挤程度。为了替换他们,你开发出了一个能够日常回答问题的应用程序,例如,当客户询问“麦片在哪里”时,该程序会回答:“粮油区在商店的西北部,就在水果区旁边。”
因此,聊天机器人表现出理解用户需求的能力,在本示例中就是寻找麦片。然后,聊天机器人能够确定麦片属于粮油类。根据其对商店库存的了解,它能够将客户引导至正确的区域。为了能够进行关联,甚至将单词从一种语言翻译成另一种语言,深度学习在聊天机器人的内部运作中起着至关重要的作用。
接下来,我们将探索各种支持人工智能的工具,这些工具可用于创建聊天机器人并将其部署到手机上。
Wit.ai平台由Facebook打造,提供了一套围绕自然语言处理(natural language processing,NLP)和语音转文本(speech-to-text)服务的API。
Wit.ai平台是完全开源的,并在NLP领域提供了一些最先进的服务。它可以轻松与移动应用程序和可穿戴设备集成,甚至可用于家庭自动化。该平台提供的语音转文本服务使其非常适合创建使用语音界面的应用程序。
有了Wit.ai平台之后,开发人员可以轻松设计完整的对话,甚至可以为他们的聊天机器人添加个性。Wit.ai支持130多种语言的对话和语音转文本服务,这使其成为专注于全球语言可访问性应用程序的绝佳选择。
要了解有关该平台的更多信息,可访问以下网址。
https://wit.ai/
Dialogflow从Api.ai重命名而来,提供基于深度神经网络的自然语言处理(NLP)技术,可用于创建与多个平台无缝集成的对话接口,如Facebook Messenger、Slack、WhatsApp、Telegram等。
Dialogflow项目在Google云平台(GCP)上运行,并且能够从与构建对话相关的所有GCP产品中获益,例如获取用户的位置、在Firebase或App Engine上部署Webhook,并在Android和iOS上初始化Actions on Google。有关该平台的更多信息,可访问以下网址。
https://dialogflow.com/
接下来,我们将深入研究Dialogflow及其功能,以了解如何为移动设备开发类似Google Assistant的应用程序。
前面已经简要介绍了一些可以根据需要使用文本和语音开发聊天机器人和对话接口的工具。本节将深入讨论Dialogflow,下文还将使用它来快速开发工业级聊天解决方案。
在开始开发Dialogflow聊天机器人之前,需要理解Dialogflow的工作原理,并阐释一些与Dialogflow相关的术语。
使用Dialogflow的应用程序中的信息流如图3-1所示。
图3-1中的术语解释如下。
用户(user):用户是使用聊天机器人/应用程序的人,负责提出用户请求(User Request)。用户请求是用户说出的必须由聊天机器人解释的口头单词或句子。需要针对它生成适当的响应。
集成(integration):这里的集成是一个软件组件,负责将用户请求传递给聊天机器人逻辑并将代理响应(Agent Response)传递给用户。这种集成可以是你创建的应用程序或网站,也可以是Slack、Facebook Messenger等现有服务,或者只是调用Dialogflow聊天机器人的脚本。
代理(agent):我们使用Dialogflow工具开发的聊天机器人即称为代理。聊天机器人生成的响应称为代理响应。
图3-1
意图(intent):intent的主要作用是解决Android应用的各项组件之间的通信。因此,Intent在这里起着一个媒体中介的作用,它是用户尝试在其用户请求中执行的操作的表示。用户说出的自然语言输入必须与意图相匹配,以确定要为任何特定请求生成的响应类型。
实体(entities):在用户请求中,用户有时可能会使用处理响应所需的单词或短语。这些是以实体的形式从用户请求中提取的,然后根据需要使用。例如,如果用户问“在哪里可以买到芒果?”,则聊天机器人应该提取“芒果”这个词,以便搜索其可用的数据库或互联网以提出适当的响应。
上下文(context):要理解Dialogflow中的上下文,可考虑以下场景。你问你的聊天机器人:“中国第一位诺贝尔奖获得者是谁?”机器人生成适当的响应(莫言)。接下来,你再问聊天机器人:“他今年多大?”如果聊天机器人无法维护上下文,那么它就不知道这里的“他”指的是谁。因此,上下文是指在聊天会话(chat session)或一部分会话中维护的对话状态,除非上下文被与聊天机器人的对话中的新事物覆盖。
执行(Fulfillment):Fulfillment是一个软件组件,用于处理聊天机器人内的业务逻辑。它是一个API,可以通过Webhook访问,获取有关传递给它的实体的输入,并生成一个响应,然后聊天机器人使用它来生成最终的代理响应。
在理解了Dialogflow的基本术语和工作流程后,接下来我们构建一个基本的Dialogflow代理,它可以为用户请求提供响应。