描述或注释的 Amazon Lex 内置插槽类型是什么?

What is Amazon Lex inbuilt slot type for description or notes?

我已将我的 AWS Lex 机器人配置为 'Schedule A Meeting' 和 'Add Notes' 任务。

在安排会议时,我有一个插槽 'Meeting Description',用户可以在其中添加单个单词到句子中。同样,对于添加注释,我有 'Notes'.

对于这个插槽,我没有找到任何内置插槽类型,如 'AMAZON.Description' 或任何可以存储单词或句子的类型。我尝试使用 'AMAZON.VideoGame'、'AMAZON.FoodEstablishment' 等。但发现这些间歇性问题。有时它们起作用,有时它们不起作用。

有人知道我可以为我的箱子使用哪种类型的插槽吗?请分享。

如果您想捕获任何输入,您将需要使用自定义 SlotType。

当你"train"这个SlotType给它赋值时,你应该包括各种各样的,比如数字、单个字母、单个单词、短语和整个句子。

即便如此,也不一定总能满足您的需求。因此,比这更好的是使用您的 Lambda 函数自己解析和验证整个输入。最有可能的是,只需将您的插槽值设置为整个输入字符串即可。

例如:

User: "Add to my notes"
Bot: "Ok, what would you like me to save in your notes?"
User: "Buy more toilet paper."

现在用户希望整个短语都在注释中。您必须像这样在自定义 SlotType 中使用话语:

I want to {note}
Go {note}
Buy {note}
{note}

这些话语有时会遗漏一些词,在示例中,仅放置 "more toilet paper" 而没有 "buy" 作为您的插槽值。这就是为什么您要自己解析整个输入的原因。因此,在 Lambda 中,您可以从 inputTranscript.

获取整个输入
userInput = event.inputTranscript            // "Buy more toilet paper"
slotNote = event.currentIntent.slots.note    // "more toilet paper"

然后你可以比较这两者并自己做一些花哨的验证,或者直接将用户输入保存到注释槽中。

userInput = event.inputTranscript            // "Buy more toilet paper"
event.currentIntent.slots.note = userInput   // overwrites note slot value with correct full user input.