To install StudyMoose App tap and then “Add to Home Screen”
Save to my list
Remove from my list
VMware vSpherevCenter is a management platform to manage the software defined datacentre that we offer to our customers, but we often hear customers complain about complexity of having to navigate multiple tabs to grab the infrastructure related information. We also hear customers complain about the user experience and the difficulty in performing common tasks using the current UI-vSphere client. Customers who are IT admins also face issues with management since they need to be logged into their internal network constantly via VPN to be able to execute any commands, like for example 'Creating a Virtual Machine in my Bangalore Datacentre'.
Executives who would wish to review the Infrastructure and workloads in a meeting must be aware of the technical terminologies and navigation paths on the UI.
This is where our idea of a virtual assistant was born. Imagine, if you could execute any task on your private cloud environment using just your phone from anywhere in the world. You could provide commands to create, manage and delete Virtual Machines, identify costs of your private cloud using just one interface.
The main features of our solution are:
Create a chat with python, using deep machine learning capability to interpret the user queries in natural language and interact with vCenter server appliance to extract the required information and present it back to the user on ChatbotUI
Chapter 2: Architecture Overview
Overall architecture is designed using Django web framework and offers the web services for the chatbot user interface.
Django view which is the logic for processing the user’s request.
Once the request is consumed, we use NLTK libraries for python for text processing for classification technique. NTLK is an ideal suite for our project since its one of the leading platforms to work with python programs for human language data.
The challenges of classifying and contextualizing the user unput is taken care by importing Keras/Tensorflow model. Tensor flow is an end to end open source platform for machine learning and assisted by Keras for deep learning to make chatbot made as much as interactive as possible.
The vectors then are tagged with labels which will then interact with the vSpherevCenter using vSphereSDK for python to call specific API and fetch the data. The response is re processed and a standardized statement is offered back to the user.
Why custom model when compared to already available chatbot libraries?
Advantage of using this model is to process the user provided statements and even gives the power of extendibility future development of the project. Therefore, the custom models and patterns for natural language processing becomes part of core module which can be customized and worked upon more optimally for our custom use cases.
Now we also get benefit of using custom models which can help bot ask user which context they are referring to
- EX. user: How many hosts in a cluster.
bot: Please specify name of cluster.
user: vm-cluster-1
bot: there are 4 hosts in this cluster.
The list of libraries used is as below:
( Nltk - For Natural Language “ Lemmantization ” ) ( Django Predictor view ) ( Tensorflow )
– Processing the data to convert string into tensor vectors
Django Predictor view ) ( vSphere SDK API ) ( User ) ( Keras )
– Training and predicting model using recurrent
NeuralNetw o r k s Django Predictor view ) ( Creating standardized statement for users on the response from vSphere SDK API for python )
Figure 1: Architecture
Keras deep learning library is used in this project to build a classification model. Keras performs the training running on top of the machine learning platform tensorflow. The datastruture of Keras are mainly layesrs and models and we use sequential model to begin with. Figure 2: Shows the keras model import
The Chatbot intents and patterns for learning are defined in a JSON file. Advantage of using this model is there is no requirement for big vocabulary. The Classification model is then created using this small volabulary. A small snippet from code is attached below in figure: 3
( root: {} 1 key intents: [] 14 items 0: {} 4 keys 1: {} 4 keys 2: {} 4 keys tag: ' Number_of_hosts ' pattern: [] 5 items 0: 'How many hosts in Cluster' 1: 'List the hosts in the cluster' 3: 'List the esxi host in the cluster' 4: 'How many hosts managed by vCenter' reponses : [] 1 item context: [] 1 item )
Figure 3: Snippet from the patterns and intent
Patterns are then processed to build vocabulary. The stemmer which was imported earlier is used to process each word and produce a root which will help in achieving more combinations for the strings from user input. Figure 4 shows the stem and sort classes
( words = [ stemmer.stem ( w.lower ()) for w in words if w is not in ignore_words ] words = sorted(list(set(words))) #Sort classes Classes = sorted(list(set(classes))) )
Figure 4: Words processing and sorting classes
The words as it is are meaning less for the machines learning. The works are translated to bucket of words with arrays. Figure 5: Show the training class to bucketize the words from each sentence.
( for doc in documents : bag = [] pattern_words = doc[ 0] pattern_words = [ stemmer.stem ( word.lower ()) for word in pattern_words ] for w in words: bag.append (1) if w in pattern_words else bad.append (0) )
Figure 5: Bucketizing words from user input sentences
The training data, patterns and intents is converted into array [0,1,0,1…, 0]). Model is built with Keras, based on three layers. Classification output will be multiclass array, which would help to identify encoded intent. The array is then labeled with tags to invoke specific vSphere API to fetch the data from the vCenter server inventory.
After indexing the data and creating an array with labels, the vectors obtained from the processing through tensorflow models, basically the logic is ready. Next step in the workflow is build a web application. That where I decided to use Django as it is much easier to use for python programs. Django offers the Models, View and Controllers which are the essential logics in a web application development.
The model is the part of the web application which is a mediator between the webpage and database. This implements the logic for the application data.
Endpoint is a view which is a mediator for API routing. API which is invoked to the vCenter for specific requests from user once after processing and then formatting the response from vCenter server back the User interface
I have created a Django project which create a directory to house all the code. The default directory structure is as described in Figure 7.
Generate an inside the main project and name is a Predictor. This will be the machine Learning code behind the API set.
app.py is where the config class for the project is defined and it’s a one-time execution code.
views.py contains the code to for the request and runs every time there is a request. The vectorization and classification logic are housed in this script.
This app is added into INSTALLED_APPS by adding the predictor in Setting.py in the main code /vcBot/settings.py.
Next step is to create another folder inside predictor to store the trained models and a view is added to support the classification logic in path /vcBot/predictor/view.py
The routing and mapping is added in /vcBot/urls.py.
The project is in the mid stage with the implementation of the necessary logics and framework. The goal is a create a chatbot to assist the users pull and perform basic operational tasks without undergoing extensive training on the vSphere products and knowing the terminologies required to navigate using the default UI.
Development of a Chatbot to Improve Virtual Infrastructure Operational Efficiency. (2024, Feb 12). Retrieved from https://studymoose.com/document/development-of-a-chatbot-to-improve-virtual-infrastructure-operational-efficiency
👋 Hi! I’m your smart assistant Amy!
Don’t know where to start? Type your requirements and I’ll connect you to an academic expert within 3 minutes.
get help with your assignment