The Bot Framework: My Favorite Samples

dev_botframeworkI have gotten the opportunity to work on multiple projects with the Bot Framework lately.  These have been a mixture of both my own projects and work for customers, some in C# and some in node.  Over that time, I’ve accumulated a list of samples and hands-on labs that have been extremely useful.  I’ve divided them into C# samples, node samples, and hands-on labs.  If you have further resources, feel free to leave a comment. 

 

Big Bot Framework Sample Repositories

First of all, there are two big Bot Framework Samples repositories.  They both contain both C# and node samples under the CSharp and Node folders. 

https://github.com/Microsoft/BotBuilder (check the Samples folder)

https://github.com/Microsoft/BotBuilder-Samples

 

C# Samples

Mat’s AuthBot: this is a strong example of how to provide Azure Active Directory authentication for bots. 

AnnotatedSandwichBot: this is a wonderful example of using FormFlow, where a bot can guide you through a wizard-type conversation where the user essentially needs to fill out a form.  It can prompt for missing information, validate inputs, ask clarifying questions, and navigate between the steps. 

Bot to Human Handoff: the C# intermediary sample shows how to build a call-center support bot, where the bot provides Tier 1 support and it hands off to a human if it can’t solve the problem. 

PictureBot: this bot (which can be built following this hands-on lab) helps you find, “order”, and “share” pictures.  It utilizes ScorableGroups for processing the user’s input (trying first regular expressions, then LUIS, then dropping to a “I don’t understand” message). 

 

Node Samples

Ryan’s EventBot: this is a bot that was made for the AIWorld conference.  It provides information on speakers, sessions, conference location, and other relevant information.  It’s a great example of a bot calling multiple services (LUIS and Azure Search). 

Hannah’s Bot to Human Handoff: this is a fabulous example to follow if you want to build a call-center support bot, where the bot provides Tier 1 support and it hands off to a human only if it can’t solve the problem. 

BackChannel: this bot uses DirectLine to send and receive messages to communicate with a webpage that embeds the bot through WebChat. 

 

Hands-On Labs

If you are getting started with building bots, working through a hands-on lab can be a big help.  Here are some good ones. 

Both C# and node: https://github.com/DanielEgan/BotWorkshop

C# only: https://github.com/noodlefrenzy/CognitiveServicesTutorial