top of page

‘Cuse Bot: Chat Bot Service for iGrad Enrollment Management

Writer's picture: Akash KandarkarAkash Kandarkar

Updated: Apr 14, 2023



Objective Our project saw the team interact with iGrad enrollment management to use Cloud Services to help streamline tasks in the enrollment office. The iGrad team receives 50-100 emails a week revolving around admissions inquiries; topics commonly include GRE and language score requirements, information about program curricula and duration, requests for application waivers, etc. All of these can easily and efficiently be addressed using chatbots, thereby freeing human resources to work on more complex matters. It was important to the iGrad team that the bot be customizable insofar as adding and altering question and answer pairs is concerned; another major requirement was that the bot be deployable on a variety of services including Zoom, MS-Teams, and MS- Outlook. After understanding the use case iGrad needed, our team zeroed in on using MS Azure to develop a prototype chatbot. We chose Azure for a variety of reasons, but the most important was the fact that Azure Bot Services allow for easy integration with Microsoft’s products and with Zoom. The bot we developed can interact with prospective students and answer frequently asked questions; to develop and deploy the same, we made use of the following Azure services.


Services Azure Cognitive Services Azure Cognitive Services are artificial intelligence (AI) cloud-based services that assist developers in integrating cognitive intelligence into applications without needing specific AI or data science expertise. REST APIs and client library SDKs in well-known development languages are available for them. Within the suite of Cognitive Services, we used the Language Studio to create a Language Service, link it to our repository, and build a Knowledge Base. Within the Language Studio, one can add question-answer pairs, edit them, and test responses. Once we were happy with our question-answer pairs, we could then deploy the Knowledge Base and have it ready to link with our bot. A key feature here was the fact that once a Knowledge Base is built and deployed, and bots connect to it, one can still edit the Knowledge Base, and once re-deployed, all associated bots are also updated.

Azure Bot Services Azure Bot Services offers an integrated development environment to facilitate bot creation and allows developers of various technical levels to create conversational AI bots thanks to its connection with Power Virtual Agents, a fully hosted low-code platform, without writing a line of code.

While developers have the option to develop bots using the Azure Bot Service GUI, more advanced users may opt to use the Bot Framework SDK (hosted within Azure Bot Services) to use code to develop more robust bots with more complex conversational routes. Azure Bot Services also allows users to use additional services to fully integrate with the Power Virtual Agents platform. This allows users to integrate with MS LUIS, a conversational AI that performs extractive conversation analysis and leads to more human like interaction. For our task, we used Azure Bot Services GUI to build a web app bot.

Azure VM Azure Virtual Machine is an on-demand, scalable computing resource offered in Azure. Virtual machines are frequently utilized to host applications needs a flexible and easily scalable computing solution without investing in the necessary hardware. Hosting our bot on a virtual machine allowed us to prototype easily, to demonstrate our proof-of-concept, and to explore the complexities of bot frameworks and connections therefrom. The Virtual Machine also allowed us to create a landing page and can be used in the future to add authentication mechanisms and to collect user contact data.


The Process Our first task saw us build a repository in MS-Azure; this served as the focal point for our project, and all subsequent services belonged to this repository group. We also had to build and deploy a Search Service within the language group to allow the bot to query the knowledge base and respond to user queries effectively. We then went to language.cognitive.azure.com where we created a language service within our resource group. This language service is the driver for our bot, and within this language service, we created our knowledge base – a question and answer document (we loaded in 18 pairs of questions and answers). Within the language service studio, one can test the deployment of their bot, make any edits, add, and remove question pairs, and otherwise define conversational logic as needed. Once ready, we deployed the knowledge base, and used that as a foundation for our bot- service.

The secret keys from our deployed knowledge base, and from the language service were then passed to Azure Bot Service. Through Azure Bot Service, we created an Azure Bot in our repository; this also allowed us to test Bot connectivity and operations in an inbuilt Web Chat Test (hosted on the MS-Azure portal). Once we had the bot ready, we used the secret keys from the bot, and embedded them into an iframe for a website. This served as our interface to the public and

allowed us to create a landing page, as well as to host the bot with custom frames. This HTML page was then hosted on an Azure VM. To do so, we installed an Apache 2 Server on the Virtual Machine, the website was hosted on this server, and this allowed us easy access to the chatbot, and enabled simple deployment of the same. Consequent to completing the steps above, we were able to construct an NLP chatbot engine framework, and to link that to Azure Bot Services to develop a web app bot. This bot was then linked with and deployed on an Azure Virtual Machine. While our initial objective was to enable simple question answering, we realized that the bot’s default response - working however, we realized that the bot’s default response – Nothing found in Knowledge Base, was in no way an adequate response to a query beyond that which had been programmed; to combat this, we linked the iGrad appointment scheduling page to our default “nothing found in knowledge base” answer, thus allowing students to interact with advisors in case our bot didn’t have the information they sought.

User story - 1 Student asking about admission process deadline, even though the question is not complete or accurate about what admission deadline, the bot responds with the relevant answer from our knowledge base User story - 2 Apart from general questions, specific topic related questions are also addressed by the chat bot. In this example, the chat bot answers student queries about application fee waivers, but also links the student to an email address in case they require further assistance.

User story - 3 Finally, the bot can also take inputs of questions not in the knowledge base, in which case it will allow users to schedule an appointment with an advisor. Since the iGrad team already has a scheduler linked in SLATE, we elected to route students to this Schedule Appointment page instead of building our own.

Flow of Conversation Through the Bot Any inquiry sent to the bot has the bot initially query the Knowledge Base. Should an answer be found in the knowledge base, the bot will seek and fetch that as a response; should a question be tangentially related, or use a few misused terms, the bot will still be able to identify the appropriate response. If the user asks something that does not exist in our Knowledge Base, the bot reverts to its default response of giving users instructions about setting up an appointment and providing the necessary link to furnish said appointment.

Architecture The bot’s architecture revolves around 3 primary components as mentioned - the knowledge base, the bot, and our VM. Effectively the cloud project Q&A bot app service interacts with the app service plan of the same name; this is linked to the cloud proj questions Cognitive Language Service, which is linked to the cloudprojquestions... Search Service. All of this is hosted in an Azure Bot – cloud-project-qna-bot. This bot links to our Virtual Machine, which is linked to a network interface, a network security group, a virtual network, and a public IP address. It is this Public IP address that allows the public at large to interact with our bot.

Challenges

  • Robotic Conversation Flow The chatbot is fundamentally an example of Robotic Process Automation, and not of Intelligent Process Automation. This in turn means that a lot of the conversation is mechanical and robotic – it lacks the flow expected of human conversation.

  • Upscaling the Size of the Knowledge Base Upscaling the bot’s Knowledge Base requires great care with phrasing (if using the current model) or extensive models training (if incorporating an NLP engine) to ensure that topic overlap is minimized.

  • Data Entry Extracting Frequently Asked Questions can often be a time-taking and onerous process and requires onerous work from business teams and automate the entire process.

  • Configuring the UI When trying to install npm and set up the chatbot configuration for the ReactJS front- end framework, we ran into difficulties with code build of Node, NPM and React. As a result, we switched to the JS framework and utilized Apache 2 to host the framework.

Future Advancements

  • Use of trained NLP engines To contend with the lack of flow in conversation, we have a few options; full integration with Power Virtual Agents will allow us to leverage Power Virtual Agents, and Microsoft’s LUIS NLP engine. We could also integrate an abstractive NLP engine like that in the GPT family for more human-like conversation flow.

  • Clustering Questions Developing a clustering system to identify question and answer clusters and to gauge how common certain questions are as against others could also be incredibly useful; this would allow for a fully automated process and eliminate any speedbumps that may arise from delays at the business end.

  • Inbuilt Scheduling Another possible integration involves scheduling; we currently route students to an iGrad webpage that hosts a scheduler linked to SLATE student services; a possible improvement to our chatbot involves integrating this scheduler completely with our bot such that instead of routing to a webpage, users may set up an appointment from the bot itself.

  • Light and Robust Interface Finally, we believe that there could be improvements made to the User Interface and Experience of the bot – this could involve hosting the bot on iSchool websites, matching colors, altering chatbot size and font, and allowing for more conversational – flowing prompts.

48 views0 comments

Recent Posts

See All

Comments


Contact Me

Thanks for submitting!

bottom of page