1 min read

BotBuilder on demand entity recognition

So the "global recogniser" from 3.5 isn't really all that "global" it seems. When in the middle of a dialog exchange, it won't actually recognise entities and pass them through to the next function in the waterfall. This is a huge bummer, because if you want to ask for a github repo for example, you've just got to hope they don't include anything else in the text.

After a lot of frustration, I've thrown together my own version and you can find it here.

It's very simple and you can easily wrap it in something like Bluebird.js if you want it to be promise based.

Simply call init(luisModel) with the URL of your LUIS model. Then, whenever you want to force a recognise for a particular entity, just call recognize(session, entity, callback). The session is the dialog session and the entity is the name of the LUIS entity such as "builtin.alarm.time".

Hopefully in the future all text will be passed through LUIS for entity recognition but I'm not hopeful it'll happen anytime soon.