My colleagues and I are working on building a very large application using Microsoft bot framework and Microsoft LUIS. Essentially we are trying to create a bot where people from across the organization can message the bot (through slack) and receive pertinent information. Different types of requests pertain to different subject matter domains (sales, marketing, logistics and R&D). How does one chain together multiple LUIS models, entities and sub entities so that that a request does not query every entity before getting to the correct entity?
Right now, if a user asks “How much have we spent year to date on research?” it first queries the sales entity, then marketing entity, then the logistics entity and finally it queries the R&D entity before it gets a response. I’m trying to limit the number of API requests. I currently know of 3 possible solutions that deal with this routing issue and none of them appear to rely on LUIS for routing to the appropriate entity.
Solution 1 involves having the bot give a UI selector corresponding to each domain.
Solution 2 involves hooking up an NLP library to extract the subject from a sentence and then match the subject using a weighted dictionary library.
Solution 3 is involves setting up pure RegEx. This is my least favorite solution for obvious reasons.
A link to an enterprise grade reference application using Microsoft bot framework and Microsoft LUIS would be an ideal answer.