WIT.AI, My ABotMe Chatbot

I recently attended a 3 days course on Microsoft AI Engineer. One of the syllabus was regarding Language Understanding (LUIS) which is used to develop chat bot.

A chat-bot is start by getting requirement for all the “Intent” or use case you’re trying to achieve with chat-bot. Example, book a flight ticket, or check availability, etc. Filtering out all the entities that is needed for additional information regarding the intent.

Anyway, there is tons of materials to help get started. Thus, I’ll now go straight into the topic I want to write about.

Alternative to LUIS, there is Wit.AI which is now free. And is suit the purpose for me to build a resource free fun hobby project.

This ABotMe is basically a simple chat-bot which you can use to chat about me. Do note that it only response to specific “Intent” that I have train and build.

I started by identify the topic I want the chat to response. They are skill, software projects, hobbies, or work experience.

Fill up all the possible ways people can ask on the topic of this.

Another things to know is regarding “Fallback Interaction“. This can be not understanding user input or the intent is missing the entities needed for you to response.

For that, you can see that I have to add special handling, so that the AskSkill intent know how to continue prompt for additional info from the user.

switch (intent.value) {
  case 'Greeting':...
  case 'AskCareer':...
  case 'AskHobby':...
  case 'AskProject':..
  case 'AskSkill':
    const skill = _.get(data, 'entities.skill[0]', null);
    if (skill == null) {
      Logic.reply('What skill of me, you want to know about?');
      Logic.pendingSkill = true;
    }
    else
      Logic.responseSkill(skill);
  break;
  default: Logic.reply('Sorry, could\'t understand your question');
}

Extra

Since this is a chat-bot, I also try to prevent bot from talking with bot.

For that I have added reCaptcha as well right before user proceed to chat with my chatbot.