当前位置: 首页 > 科技观察

案例分享:用SAPConversationalAI搭建聊天机器人_0

时间:2023-03-17 10:01:20 科技观察

【.com快译】如果你是第一次搭建聊天机器人(Chatbot)的新手,那么面对各种自然语言理解、对话流程和消息转移平台等概念可能会有压力。在这篇文章中,我将一步一步地指导您在SAPConversationalAI上构建第一个聊天机器人,并实现以下目标:让Bot理解人类语言。由强大的人工智能提供支持的复杂对话流。将Bot部署到外部渠道(例如:FacebookMessenger、Twitter等)。让我们从一个简单的机器人开始。下图是它与人类对话的界面:在这里,Bot需要达到的智能水平是:理解各种问候语和告别语。了解用户对笑话的要求,能够从列表中随机挑选一个笑话并回复。理解至少两种反馈(大笑或咧嘴笑)的含义,并能够用有趣的GIF或深深的道歉来回应。在FacebookMessenger上部署机器人。先决条件1.在SAPConversationalAI上创建一个免费帐户。2.登录后点击“Startwithatemplate”按钮,或直接点击右侧选项卡上的“+NEWBOT”按钮。3.您可以为机器人选择一项或多项预定义技能。这将帮助您更快地开始。在这里,我们只选择了Greetings,但您可以稍后添加其他技能。4.将其命名为“joke-Bot”。5.将其描述为“我的第一个有趣的笑话-Bot”。6.可以设置6个主题来提高Bot的训练。同时,您可以定义主题关键词为:“时尚”、“游戏”或“工作”。7.根据数据的用途,选择适当的数据策略选项。注:考虑到可能会询问用户的个人健康信息,我们没有勾选“健康”类Bot。8.将默认语言设置为英语。9、由于暂时没有隐私信息,您可以设置为公开状态,后期酌情调整。至此,我们已经完成了搭建Bot的准备工作。Bot构建阶段通常,Bot在平台上会经历以下五个阶段:1.训练-教会Bot需要了解的内容。2.构建-使用BotBuilder工具创建对话流。3.代码-使用外部API或数据库连接到机器人。4.连接——将机器人发送到一个或多个消息传递平台。5.监控——不断训练机器人在各种情况下变得更聪明、更灵活。因为我们现在不需要任何外部信息,所以我们在这里跳过“代码”部分。当然,如果你想了解更多Bot与代码的联系,请参考:https://cai.tools.sap/blog/nodejs-chatBot-movie-Bot/。第1步:训练Bot理解人类语言作为Bot,它需要能够理解它收集的信息并区分不同的意图。在这里,意图是指具有相同含义的不同表达的句子。因此,当用户向Bot发送一些文本消息时,我们的算法会将它们与意图中的短语进行比较,检查并匹配最接近的短语,然后确定文本消息的意图是什么。例如:你是机器人吗?你回复这么快,我相信你一定是某种机器人。我在和人说话吗?可以看到上面三句话的措辞不同,但都在问同一个问题:Areyouarobot?因此,如果您的Bot可以识别该问题,请准备好一个明智的答案,例如“我是机器人,我很自豪。”“叉”入意图(ForkIntents)在与用户交流时,所有类型的Bot都能识别诸如:“问候”、“同意”、“不同意”等基本内容。因此,如果你在前期为Bot设置了预定义的“Greetings”技能,它就已经具备判断saygoodbye和greeting两种意图的能力。而且,由于SAPConversationalAI具有协作性,您无需每次都重新创建新的意图。您可以完全“分叉”(克隆)其他人创建的意图。例如,当我们了解到用户想听笑话时,我们可以在社区中搜索已经创建的此类意图。如上所示,您可以在搜索栏中输入“笑话”以获得结果列表。如果您想查看其具体内容,也可以直接单击不同意图的名称。创建一个新的意图如果你想定制一个新的意图,你需要从头开始构建它。在这里,我们想让Bot明白对方听到笑话笑了。因此,您可以单击搜索字段右侧的“+创建”并为您的意图命名。重复上面的过程,就可以创建出让对方觉得可笑的intents:第二步:添加表达式intents创建好了,我们需要用各种表达式来表达。我们可以点击不同的意图,添加不同的表达语句。我的建议:请为单个意图添加至少30个表达式,最好是50个。以下是一些表达式示例:lol哈哈哈,这很有趣。ROFL(笑得在地上打滚)你真棒!我的朋友,你明白了!这是一个天大的笑话。我已经很久没有笑得这么开心了。不好笑看来你缺乏幽默感。这个既不好又令人反感。这意味着什么?这个笑话一点都不好笑,再试一次。提示:您可以点击界面中蓝色的“您有X个表情建议来丰富您的意图”,查看更多可添加的表情示例。这可以加快Bot的训练速度。第3步:测试机器人在控制台上,单击右上角的TEST气泡图标。输入一个您从未受过训练的句子,例如:“你能给我讲个笑话吗?”根据您键入的内容,机器人会检索意图并做出响应。如果现有算法未能检测到适当的意图,或者检测到无效的意图,那么您需要添加新的或修改现有的表达式以进一步训练它。这可能看起来很乏味,但这是确保机器人能够正确识别用户句子的唯一方法。当Bot的意图检测效果达标后,我们就可以进入下一阶段:构建Bot的对话流程。第4步:构建和管理对话流现在,让我们在BotBuilder中找到“构建”选项卡,这将帮助我们根据Bot的技能构建对话流。什么是技能?每种技能都代表Bot“知道”如何做的事情,它们将通过相互组合逐渐变得更加复杂。创建新机器人时,您已经为其选择了预定义的技能。当然,为了避免“重复制造轮子”,你也可以在平台上寻找并“分叉”别人创造的技能。示例:如果您在创建时选择了预定义技能“问候”,它将出现在您的界面上。点击其名称可获得详细信息如下:通常,一个技能会包含四个部分:Readme:描述该技能。触发器:定义在收到用户的什么样的消息后,应该激活该技能。要求:描述需要为此技能收集哪些进一步的信息,以及收集这些信息的条件。行动:在满足要求的情况下应该采取什么行动?浏览问候技能,会发现其结构为:如果问候或告别意图匹配成功,则触发。由于不需要收集更多信息,因此没有其他要求。这意味着它会在被触发后立即采取行动。在这里,它有两个可能的动作:如果匹配的意图是问候,它会从列表中随机选择一条欢迎消息并发送;如果意图是告别,它会从另一个列表中选择一条消息并发送。第5步:建立自己的技能让我们回到“构建”选项卡,单击左侧的“+创建”技能来建立自己的技能。这里有三种不同类型的技能:商业、浮动和回退。商业和浮动之间没有结构差异。它们足以涵盖最常用的技能。当收到来自用户的消息但无法触发任何技能时,回退技能就派上用场了。在大多数情况下,您只能使用其中一种类型。当然,您也可以通过提示用户机器人可以做什么来建议用户改写问题。在这里,我们的技能是float类型的。我将其命名为“告诉我一个笑话”。通过单击新创建的技能和“触发器”选项卡,我们可以针对比赛的意图激活不同的技能。如上图所示,由于默认是AND条件,而我们想要在任何一个intent匹配时激活我们的技能,不要忘记将条件更改为OR(点击蓝色按钮“AND”)。由于本案例没有额外的要求,所以我们不做额外的设置。当然,你也可以通过询问更多信息来改进Bot,比如:你喜欢什么类型的笑话,或者为成人笑话增加年龄要求等。接下来,我们通过单击“操作”选项卡创建第一个消息组。单击“添加新消息组”和“添加条件”以添加消息触发条件,例如:如果存在@ask-joke。这里的“@”代表意图的类型。我们稍后再谈。然后您可以选择“发送消息”作为操作,以及文本的格式。***,你可以输入你最喜欢的笑话。当然,你也可以在两条消息之间设置5秒的延迟,方便用户花时间阅读Bot回复的那些长消息。第6步:给Bot不同的可能答案单击消息上的“+”,您可以将新消息添加到随机列表中。这样你就不会一直发送一些千篇一律的笑话。如果您再次点击下方的“SENDMESSAGE”,您还可以同时发送多条消息。下面介绍另外两个intent。请单击“添加新消息组”并将条件设置为:如果@laughs存在。如果我想在这种情况下发送各种GIF图片,那么我可以点击“发送消息”和“图片格式”。同样的,第三个意图我也可以这样做。第7步:与Bot聊天接下来,我们需要让Bot在真实情况下与人类用户聊天。当然,我建议大家在构建的过程中尽量和Bot聊天,尽早发现那些逻辑错误。尝试通过单击右下角的蓝色按钮“CHATWITHYOURBOT”来发送一些消息。同时,您还可以使用“清除”来清除屏幕。第八步:连接Bot到消息平台一切准备就绪后,我们就可以将Bot部署到公共消息平台了。让我们转到“连接”选项卡,选择您喜欢的消息传递平台,然后按照其分步说明进行操作。值得注意的是,不同的平台会有所不同。示例:Telegram虽然易于配置,但不支持GIF图像。因此,您应该适当地调整您的机器人。如果你不知道从哪里开始,我建议你使用FacebookMessenger,它是一个非常强大的平台,拥有大量的用户。第9步:监控和训练机器人“监控”选项卡可以帮助您不断提高机器人的智能。它收集机器人收到的所有消息并显示匹配的意图。通过密切监控,您可以动态调整和分配匹配无效或不存在的意图。如上图所示,对于最后一条消息,Bot未能匹配意图。如果此消息仍然存在,我们需要为其创建一个新的意图。展望如果你成功完成了以上九个步骤,想要不断完善聊天机器人,你还可以从以下三个方面着手:学习如何从消息中提取丰富的关键信息。用代码连接Bot,实现与外部API的交互。让Bot支持多种语言来扩大您的受众。***,别忘了“分叉”别人创造的善意和技巧。相信通过不断的迭代重构,你的Bot会变得更加智能。原标题:BuildYourFirstChatBotWithSAPConversationalAI,作者:OmerBiran