The three components that comprise this bot:
LUIS integration: I was pleasently surprised at how easy it was to go from a very shakey model to one that is fairly robust by iteratively training on new endpoint utterances. My model has two intents {setName , setMusic} and three entities {userName, artistName, musicGenre}.
Azure deployment: This ate up a lot of time. Figuring out which keys go where, which tool(s) to use (VSCode vs. terminal vs. opening up a new project in Azure portal)...it was not fun. Bumped up against this issue several times and had to workaround.
The Dialog/Basic-Bot: Integrating LUIS makes some things easier, but there's still much room for growth when it comes to more tightly controlling the converstaion/dialog flow. Also, it is important for effectivley coupling with the LUIS service (ex. when/if to modify a UserProfile based on the likelihood of the intent). It is important for the most seamless UX. Would also be nice to integrate cards with the videos built-in.
A working (🤞) sample can be found at https://bookra.github.io/Microsoft-DJ-Bot/
Questions or comments? omar.abdelbadie1@gmail.com
This simple nodeJS botBuilder was built upon the Yeoman bot generator. I pulled out most of the boilerplate comments in bot.js
so I can help myself (and demonstrate that I can ) understand the framework.
If you are not my future boss (:wink:) you can go to the Main Bot Framework Page or the GitHub repo for more info.
Upon cloning this repo, run npm i && npm start
, then open dj_bot.bot
in the Microsoft botBuilder Emulator.
There are definitely several ~bugs~ TODOs that I would prefer to get done, but I promised that I would submit this within 48hrs (the 0.1 tag has less bugs but is also more basic). In order of importance, these are the top 5 things I would change/add/learn to improve my Music-slinging bot:
bot.onTurn()
when it comes to checking turnContext.responded
. OR it could be fixed a la this article.I have accrued some (semi-)techical writing online to help people learn/troubleshoot problems in development. Here are two examples of my communication (can supply more upon request):
Any other questions? Feel free to reach out: omar.abdelbadie1@gmail.com