API.ai的预建包允许您轻松获得很长的意图列表。目前,我正在尝试使用他们的smalltalk
软件包,该软件包具有大约100个意图,并对每个软件包做出响应。
我正在使用api-ai-recognizer
包来监听意图。这很好,但现在我必须匹配那些意图,以便我可以定义对话框(这只不过是使用履行)。这就是我遇到麻烦的地方。
intents = IntentDialog({recognizers: [apiairecognizer(CLIENT_TOKEN)]})
intents.matches('smalltalk', smalltalk_handler) // No luck
intents.matches(/smalltalk/, smalltalk_handler) // No luck
intents.onDefault(default_handler)
在default_handler中,我捕获了args
:
{"score":1,
"intent":"smalltalk.greetings.how_are_you",
"entities": [
{
"entity":"Lovely, thanks.",
"type":"fulfillment",
"startIndex":-1,
"endIndex":-1,
"score":1
},
{
"entity":false,
"type":"actionIncomplete",
"startIndex":-1,
"endIndex":-1,
"score":1
}
]}
根据matches的工作原理,这是有道理的。 但这确实意味着我不知道如何实际使用完整的意图列表,而没有明确地复制每一个意图。
只是为了澄清,如果我使用的确切意图:
intents.matches('smalltalk.greetings.how_are_you', smalltalk_handler)
我收到了很好的答复:Lovely, thanks.
有什么建议吗?
答案 0 :(得分:0)
到目前为止,我唯一想到的就是修改api-ai-recognizer
,使其在遇到版本时只返回smalltalk
作为意图。这样,意图对话框只需要识别一个意图。因为它们以相同的方式处理,所以此时无关紧要。