在botbuilder中使用api.ai意图

时间:2017-06-16 03:05:40

标签: node.js botframework dialogflow

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.

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

到目前为止,我唯一想到的就是修改api-ai-recognizer,使其在遇到版本时只返回smalltalk作为意图。这样,意图对话框只需要识别一个意图。因为它们以相同的方式处理,所以此时无关紧要。