AWS Lex - select 来自用户问题的查询

AWS Lex - select query from user question

我正在构建一个接受以下输入的聊天机器人:

"How do I take a screenshot on iphone"

然后搜索

"take a screenshot on iphone"

我遵循了关于如何制作 Document Search Bot and a Question and Answer Bot 的教程,但两者都依赖于提供关键字或完整的示例问题。

机器人是否可以在不提供任何关键字等的情况下凭直觉判断查询内容?

在 Lex 控制台中设置问答意图

1 创建新意图

单击左侧导航中“意图”旁边的 + 图标。
将出现一个弹出窗口,因此请单击“创建意图”。
然后输入一个名字,例如:QueryLookup。然后从左侧的意图列表中单击该意图。


2 创建一个新的 Slot Type

单击左侧导航中“广告位类型”旁边的 + 图标。
将出现一个弹出窗口,因此请单击“创建广告位类型”。
为插槽类型命名(例如:QueryPhrases)、描述(可选),然后选中“扩展值”框。
然后输入一些您希望用户询问的示例值。为它赋予各种值,如单个单词或多个单词或完整句子。这有助于训练 Lex 从整个用户输入中识别哪些查询。完成后,单击“将插槽添加到意图”按钮。


3 添加和编辑广告位

第 2 步会自动为意图添加槽。给定的默认名称是 slotOne,但您可以通过单击突出显示的插槽名称来更改它。默认情况下,“必需”复选框处于选中状态。输入提示,以防您需要引出此插槽(请用户专门提供)示例:What would you like to know about?


4 添加 Lambda 函数

选中两个 Lambda 函数复选框:(1)“初始化和验证代码挂钩”和 (2)实现。在下拉菜单中 select 列表中的 Lamda 函数。这是您根据 Lex 解释的查询进行处理的地方。


5 添加样本话语

返回新意向的顶部,添加“示例话语”。这些训练 Lex 如何匹配用户输入以触发此意图并捕获 query 插槽。考虑用户在此意图中请求某些东西的方式。从你的例子:

"How do I take a screenshot on iphone"

只需将要标识的查询词或短语替换为广告位名称即可。同时删除问号。

"How do I {query}"

然后尽可能多地编写这些变体。


6.保存并构建

保存意图、构建和测试或先发布再测试。 Lex 现在将能够理解 "How do I..." 类型的问题,触发这个新的 "QueryLookup" 意图,识别 "QueryPhrase" 并将其保存在插槽 "query" 中。然后,Lex 会将此信息传递给您的 Lambda 函数,您可以在其中处理、执行查找并构建您的响应。

这是关于在您的 Lambda 函数中接收该信息(有时称为“事件”或“请求”)以及如何响应的文档。

Lambda Function Input Event and Response Format:

This section describes the structure of the event data that Amazon Lex provides to a Lambda function. Use this information to parse the input in your Lambda code. It also explains the format of the response that Amazon Lex expects your Lambda function to return.