Let us assume that Cognigy is set as Bot framework. (It could equally be Azure Bot Service or chatfuel.com or whatever else.)
The workflow engine mentioned can be anything from Power Automate to Logic Apps to Catalytics to whatever else.
Search anything from ElasticSearch to good old Lucene (or similar) to Azure Search.
Now there are a couple of options, by scenario.
All you need can gathered mainly via the Bot Framework.
Should there be any service orchestration needed, e.g. pulling data from other systems, that would happen right out of the Bot Framework.
KB = Knowledge Base, a persistence store where intent are mapped to responses.
Merits:
Easy and straight-forward to implement. Most Bot Frameworks are dead-simple to configure.
Constraints:
- Continuous data import into the KB might be hard to achieve …
- …because a Bot Framework is not built as workflow/integration engine necessarily but only provides some rudimentary technical capabilities for that, not to mention continuous deployment or existence of controls.
- Therefore, a Bot Framework as user channel endpoint management tool, should be rather “dumb” and leave complex orchestration to other tools.
You want to make semi-structured data available to achieve easier access to relevant data, fostering (web) search services to retrieve results. Think of “FAQ bots”.
The intent KB in this scenario is with the NLP service.
Merits:
Allows for targeted search results delivered to any channel the Bot Framework can manage.
Constraints:
- If the data is not publicly available, some services like QnA maker which bundle NLP + Search, may struggle.
- The data is ideally scraped or imported from existing sources — if you have to build up the KB from scratch, there is no point in using Search and you could equally manage your KB out of the Bot Framework or via your NLP service.
- Lots of moving parts of course, therefore be careful about total complexity.
You want to apply NLP processing beyond what your Bot Framework offers and probably further transformations / processing of the user input along the way.
The intent KB in this scenario is with the NLP service.
Merits:
Allows for targeted search results delivered to any channel the Bot Framework can manage.
Constraints:
- The Bot Framework often offers at least a basic NLP capability, that is the case e.g. for Cognigy — consider wisely to what extent you want to manage NLP and whether it justifies using an “external” service.
- Couple of moving parts here, to reduce complexity consider throwing out the “middleware” which is the workflow engine part. Do note however this will be poor decision in case you end up doing more service orchestration than initially expected. (Mitigation tactic: If that situation emerges, quickly pull in a worfklow engine before proceeding.)
A nice reference architecture to compare to would be: