我正在构建一个聊天机器人,它接受如下输入:
"How do I take a screenshot on iphone"
然后搜索
"take a screenshot on iphone"
我遵循了有关如何制作文档搜索机器人和问答机器人的教程,但两者都依赖于提供关键字或完整的示例问题。
无论如何,机器人是否可以在不提供任何关键字等的情况下直觉查询是什么?
单击+
左侧导航中“意图”旁边的图标。
将出现一个弹出窗口,因此单击“创建意图”。
然后输入一个名字,例如:QueryLookup
. 然后从左侧的意图列表中单击该意图。
Slot Type
单击+
左侧导航中“插槽类型”旁边的图标。
将出现一个弹出窗口,因此单击“创建插槽类型”。
为槽类型命名(例如:)QueryPhrases
、描述(可选),然后选中“扩展值”框。
然后输入一些您希望用户询问的示例值。给它各种值,如单个词或多个词或完整的句子。这有助于训练 Lex 从整个用户输入中识别哪些查询。完成后,单击“将槽添加到意图”按钮。
第 2 步将自动向意图添加一个槽。给出的默认名称是slotOne
,但您可以通过单击突出显示的插槽名称来更改它。默认情况下选中“必需”复选框。输入提示以防您需要引出此插槽(请专门要求用户提供)示例:What would you like to know about?
选中两个 Lambda 函数复选框:(1) “初始化和验证代码挂钩”和 (2) Fulfillment。并在下拉菜单中从列表中选择您的 Lamda 函数。这是您将根据 Lex 解释的查询进行处理的地方。
回到新意图的顶部,添加“Sample Utterances”。这些训练 Lex 如何匹配用户输入以触发此意图并捕获query
插槽。考虑用户在这个意图中要求某些东西的方式。从你的例子:
“如何在 iPhone 上截屏”
只需将您想要识别的查询词或短语替换为您的插槽名称即可。还要去掉问号。
“我如何{查询}”
然后尽可能多地写出这些变体。
保存 Intent、Build 和 Test 或 Publish-then-Test。Lex 现在将能够理解"How do I..."
类型问题、触发这个新"QueryLookup"
意图、识别"QueryPhrase"
并将其保存在 slot 中"query"
。然后,Lex 会将此信息传递给您的 Lambda 函数,您可以在其中处理、查找并构建您的响应。
以下是有关在您的 Lambda 函数中接收该信息(有时称为“事件”或“请求”)以及如何响应的文档。
本节介绍 Amazon Lex 提供给 Lambda 函数的事件数据的结构。使用此信息来解析 Lambda 代码中的输入。它还解释了 Amazon Lex 期望您的 Lambda 函数返回的响应格式。