0% found this document useful (0 votes)
54 views34 pages

Admission Chatbot Internship Report

The document outlines the training details and project description for an online chatbot designed to assist with university admissions and registration. The chatbot utilizes natural language processing and aims to streamline information access for prospective students, particularly targeting Palestinian students. The project includes various system requirements, implementation challenges, and a structured approach to development and testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views34 pages

Admission Chatbot Internship Report

The document outlines the training details and project description for an online chatbot designed to assist with university admissions and registration. The chatbot utilizes natural language processing and aims to streamline information access for prospective students, particularly targeting Palestinian students. The project includes various system requirements, implementation challenges, and a structured approach to development and testing.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Training Details

 Name:- BATTINI SAKETH


Year:- 3rd year sem-1

 Project:- Admission bot

 Organization:- Coincent

 Place of Training:- Online

 Period:- 25th Aug 2022 to 25th oct 2022

 Duration:- 2 month

 Field of training:- Data science with python


ABSTRACT

As a result of the rapid technological development and the development of the


chatbot concept and the time and effort it can save. Many specialized frameworks
have emerged to undertake chatbot creation and development. By relying on artificial
intelligence, the chatbot has integrated machine learning within it, and it has become
more comprehensive and wider for various technological fields. Therefore, we will
create a chatbot for the University's Admission and Registration, the project aims to
build a chatbot to facilitate the process of accessing information related to students'
inquiries towards admissions, Registration and the university itself. The motivation
for the work of this project is that there is no university-level equivalent from
previous graduation projects, as this project mainly targets all palestinian tawjihi
students and other palestinians, non palestinian students . As a conclusion, it lies in
answering frequent and common questions by people and providing the answer to
these questions at any time the person wants.

What is natural language processing (NLP)?

Natural language processing, which evolved from computational linguistics, uses


methods from various disciplines, such as computer science, artificial intelligence,
linguistics, and data science, to enable computers to understand human language in
both written and verbal forms.
CONTENTS

TITLE PAGE NO

Certificate I

Acknowledgement II

Certificate of Internship III

Company Profile IV

Training Details V

Abstract VI

1. INTRODUCTION 1

2. SOFTWARE REQUIREMENT SPECIFICATIONS 3

2.1 Functional Requirements

2.2 Non-Functional Requirements

2.3 Software Requirements


2.4 Hardware Requirements

3. SYSTEM ANALYSIS 5

3.1 Existing System


3.2 Proposed System

4. SYSTEM DESIGN 7

4.1 System Architecture


4.2 UML Diagrams

5. IMPLEMENTATION 12

5.1 Introduction to Modules


5.1.1
5.1.2

……..
5.2 Introduction to the Languages (used in your Project)

6. TESTING 24

6.1 Testing Concepts

…………
………..
6.2 Test Cases
7. RESULTS 26

8. FUTURE ENHANCEMENT/CONCLUSION 29

9. BIBLIOGRAPHY 31
1. INTRODUCTION

Chatbot is a computer program that humans will interact with in natural spoken language
and including artificial intelligence techniques such as NLP (Natural language processing)
that makes the chatbot more interactive and more reliable.
Based on the recent epidemiological situation, the increasing demand and reliance on
electronic education has become very difficult to access to the university due to the curfew
imposed, and this has led to limited access to information for academics at the university.

This project aims to build a chatbot for Admission and Registration to answer every person
who asks about the university, colleges, majors and admission policy.

Problem Statement

At the start of each academic semester, registration opens for those wishing to join the
university in various disciplines, and telephone calls for admission and registration abound.
This leads to an increase in the loads and work for the employees of the Deanship of
Admission and Registration as a result of the constant pressure of those wishing to register
and their families by flocking to the Deanship, so the employees are not able to answer the
phone calls and social media. This often leads to many students who wish to register to be
ignored.

Objectives

● Save effort and time for both the Admission and registration staff and students who wish
to enroll.

● Provide detailed information about colleges and majors.


● Easy access to information.

Scope
● People who wish to enroll Palestine Polytechnic University
● Admission and registration staf+

1
● Timeline

Number Of Task Task name Required time in weeks

1 Proposal 2

2 Information planning and 3


collecting

3 Background and Alternatives 2

4 Determine system requirements 2

5 System requirements analysis 2


and design

System programming and


6 9
configure

7 System Test 3

8 System documentation All project period

2
2.System Requirements

● Functional Requirements:
1. The system must provide clear information about Admission policy.
2. The system must provide clear and fully detailed information about
university colleges.
3. The system must provide clear and fully detailed information about colleges’
programs.
4. The system must provide clear and fully detailed information about colleges’
majors.
5. The system should clarify information about the permitted secondary school
branch for each major.
6. The system should clarify the minimum GPA in high school for each major.
7. The system should clarify the duration of study for each major.
8. The system should clarify the parallel study policy for each major.
9. The system should provide the graduation plans for each major.
10. The system should provide information about placement tests.
11. The system should provide information about first installment costs for each
major and the credit hour price.

● Non-Functional :
1. The system shall handle multiple users inputs, If two or more students are chatting
with the bot, none of the students has to wait too long to be answered by the
system.

2. The bot should have a delay in response, to let the student feel like he/she is
talking to a human instead of a bot. A little late response from the chatbot makes
the student feel as though he is talking to a human.
3. The system should have the appropriate data set. The correct data set is the basis
for the chatbot, when the data set is correct and tuned, the chatbot will be trained
on it to give the best possible result.

3
4. The system should have Data Training. Data training mainly depends on the
content targeted at Admission and Registration deanship.

5. The system should prevent abusive language.


6. The system should be used on http://reg.ppu.edu/ website.
7. Ability to extend the project to include all colleges.

. Software Requriments :
Operating System : Windows or Linux

Technology : PYTHON, AIML

. Hardware Requirements
Processor : Pentium IV(minimum)

Hard Disk : 40GB

RAM : 256MB (minimum)

4
3. SYSTEM ANALYSIS

. Existing System
A ChatBot is basically a computer program that conducts conversation between a user and
a computer through auditory or textual methods. It works as a real-world conversational
partner.
Chatbots are developed and became so popular due to the increased use of smart devices and
IoT technology
a. IBM Watson: is touted as a question-and-answer system that can be used to build
applications and chatbots. The IBM Watson platform allows us to create an
application that shares a dialog interaction between our chatbot and users on Quick
n’ Easy Projector Rentals. The IBM interface is simple to use, and no back-end
coding is shown at first glance. The chatbot can be easily integrated into other
applications such as Slack, Facebook, and Twilio.
b. Google Dialogflow: is an easy to understand conversational agent. Theoretically,
we can have a bot up and running by understanding 3 core concepts: intents,
entities, and dialog control. As stated earlier, these general concepts are followed
across a majority of the chatbot platforms we played with.
c. Rasa: is an open source chatbot that is equipped with a natural language
processing tool. The open source tool is called Rasa NLU. You can tweak and
customize the machine learning algorithm that Rasa uses so that you can create a
model that provides the results you desire. Rasa NLU can be run wherever you
want it to, and none of your training data has to be passed over to Google,
Microsoft, Amazon, or Facebook to train your chatbot.

5
. Proposed System
Briefly and as mentioned in the definition, humans interact with chatbots.
There are two ways to interact with a chatbot:

a. Text chatbot analyzes the inputted text and matches the text with predefined data
called intents which are categorized to manage the conversation. The user utterance
is tagged with one of these intents, even if what the user says stretches over two or
more intents. Most chatbots will take the intent with the highest score and take the
conversation down that avenue.
b. Voice

Some chatbots can interact and understand the voice of the user using a set of
application programming interfaces (api’s) that converts the recorded voice to the
language and then convert the voice to words of that language and then deal with the
transformed text as mentioned above.

Then the design of the bot comes to be a significant stage to decide the user
engagement with your app or website. and we can categorize chatbot interactions as
structured and unstructured interactions.

❏ Structured interaction. You already know about this kind of interaction. You
know what your customers will ask and can design it easily — it's just like an FAQ
section of your app or website[4] . This information will link to your contact
information, services, products, etc.

❏ Unstructured interaction. The unstructured conversation flow includes

6
4. SYSTEM DESIGN

.System Architecture
“The diagram below provides an overview of the Rasa Open Source architecture. The two
primary components are Natural Language Understanding (NLU) and dialogue management.

NLU is the part that handles intent classification, entity extraction, and response retrieval.
It's shown below as the NLU Pipeline because it processes user utterances using an NLU
model that is generated by the trained pipeline.

In an
ideal
world, a
chatbot
platform
would
need the

following as a minimum for a text based chatbot.

1. Platform or SDK to host the chatbot code


2. Platform or service to connect the chatbot to the channel of choice (Slack,
Microsoft Teams, or Custom Web App)
3. Natural Language Processing engine to train the bot

7
. UML Diagrams

In this part will explain the class diagram that is used to describe the system classes and relation
between them.

8
test use case part I

9
test use case part II

10
Sequence diagram.

State diagram

11
5. IMPLEMENTATION

.Implementation details:
The project consists of several parts, the most important of which are:
1.Actions section, which is the folder that contains 3 files in the Python programming
language.The most important file is the Actions file, which contains custom Actions that are
built according to the need and purpose of the chatbot.

2.The data section and contains 3 important files that cannot be dispensed with: the natural
language understanding file, which contains the training data necessary for the bot, which it is
expected to receive during its operation from the user, and the rules file, which contains a
certain structure that makes the bot act obligatory according to what exists, regardless of the
circumstances in terms of the received data, and the story file, which contains scenarios of
conversations with users, and all conversations are recorded within this file in .yml extension.

3.There is also a very important file, which is the domain that defines the universe in which
your assistant operates. It specifies the intents, entities, slots, responses, forms, and actions
your bot should know about. It also defines a configuration for conversation sessions.

4.There are also configuration files, endpoints, and credentials that are responsible for the
overall properties and some permissions allowed for the bot and linking with chat channels
such as Slack and Facebook Messenger.

5.There is also the Models section, in which all models are storedafter each bot training.
Every model we can say is like the nucleus or brain of the bot. The bot cannot work and listen
to the user’s messages and respond to them without the model.

6.After each bot training process, and to get the latest results, you must choose the newest model.
Older models can be selected so that they can be compared with the new model in terms of additions.

12
.Implementation issues :
We faced many problems. In each stage we passed, we encountered many
problems,
some of which took days to solve. We will mention the most important
problems that we encountered and stood in our way:

1.The problem of installing the framework, during the installation on Windows we did
not encounter any serious problems except for the problem of installing Rasa X, which
is the GUI. The last version was not very compatible with Windows at the time, so we
had to use one of the old versions so that we could work on Rasa X.

2.Installing the framework on Linux was one of the biggest problems we faced, and the
problem was divided into smaller problems: the issue of the Python programming
language version, the problem of pip packages, and the problem of environment
variables and dependencies.

3.We also encountered problems with the actions, especially that the file was sensitive
to the issue of functions' names and how to deal with it and not respond except by
relying on the correct and acceptable naming rules.

4.The biggest problem we faced was the problem of integrity error while working with
Rasa X and its connection with the Action Server on Windows. The problem revolved
around the inability to record or respond to commands and conversations between the
user and the bot in the dedicated database. We repeatedly searched, asked, and
investigated this problem that has not been resolved at the time of writing this report,
as it was a problem related to the Windows operating system. We did not encounter the
problem while running the bot on Linux.

5.One of the problems that we faced was about slots and not filling them out according
to the rules in the Domain file. While talking to the bot, some answers are extracted and
processed, and responded to according to what was extracted and we encountered the
problem on Windows.

6.The bot training process is one of the most frequent problems in terms of time and
space, so every training process for the bot requires at least 4 minutes at least. After
completing the training process, a model with a size of more than 20 MB will be
produced. And you must activate the latest model after each training process.

7.Not all buttons appear when the bot is connected to chat channels such as Slack and
Facebook Messenger.

13
8.Uploading the bot to Docker was one of the most difficult problems for us due to our lack of
knowledge of Docker and the mechanism of uploading projects to it and the necessity of using Linux.

.Snapshots and UI description:


Rasa training log screen:

rasa training log screen.


● Rasa actions server terminal screen:
Rasa action server runs custom actions for a Rasa Open Source conversational
assistant. When your assistant predicts a custom action, the Rasa server sends a
POST request to the action server with a json payload including the name of the
predicted action, the conversation ID, the contents of the tracker and the contents
of the domain. When the action server finishes running a custom action, it returns
a json payload of responses and events. See the API spec for details about the
request and response payloads. The Rasa server then returns the responses to the
user and adds the events to the conversation tracker.

rasa action server screen. ● Rasa X


terminal screen:

14
rasa x screen.
Important information:
When training the bot, it is important to make sure that the structure in the domain file is in the right
format or it will fail.
● Training time is machine dependent.
● It’s ok to delete old models, but it’s not recommended.
● Intents in the NLU file have to contain at least two training examples. One
training example may lead to training failures.
● Intents have to be part of the domain. If not, it may lead to issues in the
conversations.
● Any change in the actions file requires to stop the action server and restart it
again by typing rasa run actions from the terminal ONLY to acquire the changes.
● Any change in nlu, rules, stories, config, credentials, domain, and endpoints files
requires to stop the bot and restart it again in case of using terminal. In case of
using Rasa X GUI, the bot won’t stop or need to be restarted.
● In case Rasa X was stopped, the ONLY way to start it again is using the terminal
by typing rasa x.
● User needs a password to have access to the internal Rasa X GUI, it is
automatically generated in every attempt to start Rasa X from the terminal.
● Rasa X password is not changed when attempting to train the bot using the GUI.

It’s ok to have a User Warning about the model confidence being set to softmax instead of linear
norm. Rasa framework developers recommend the softmax instead of the linear norm.

Introduction to the Languages:

Chatbot :

15
A chatbot is a computer program that can simulate a conversation or chat with a user in natural
language through messaging applications, website, or mobile applications and interact with users
according to their input and should be available 24/7.
Chatbots are developed and became so popular due to the increased use of smart devices and IoT
technology.

Types of chatbots

a. Base-line chatbot:

It is a chatbot that is based on a database and uses if / then logic to create a


conversation flow and that takes a lot of time to ensure the understanding of the
question and the answer needed.

b. AI chatbot:

This type of chatbot is more complex than base-line but it is more interactive and
personalized and needs big data training to be impressive if the problem is matched
to their capabilities.

c. Hybrid Model:

A hybrid approach mixes the Base-line & AI chatbot to make it smart and his
behavior more expected by depending on database and Ai algorithm to work
together.

How do chatbots work?

Briefly and as mentioned in the definition, humans interact with chatbots.


There are two ways to interact with a chatbot:

c. Text chatbot analyzes the inputted text and matches the text with predefined data called
intents which are categorized to manage the conversation. The user utterance is tagged
with one of these intents, even if what the user says stretches over two or more intents.
Most chatbots will take the intent with the highest score and take the conversation down
that avenue.

16
d. Voice

Some chatbots can interact and understand the voice of the user using a set of application
programming interfaces (api’s) that converts the recorded voice to the language and then
convert the voice to words of that language and then deal with the transformed text as
mentioned above.

Options to build a chatbot.

a. From Scratch

At first we have to identify the opportunities for our chatbot and decide its field and scope
to achieve efficiency and accuracy. and a precise understanding of the customer needs is
required to solve the operational challenges.
Then the design of the bot comes to be a significant stage to decide the user engagement
with your app or website. and we can categorize chatbot interactions as structured and
unstructured interactions.

❏ Structured interaction. You already know about this kind of interaction. You
know what your customers will ask and can design it easily — it's just like an
FAQ section of your app or website. This information will link to your
contact information, services, products, etc.

❏ Unstructured interaction. The unstructured conversation flow includes

freestyle plain text. It's hard to predict what queries will emerge and it looks
like an extempore speech competition for your chatbot. the role of AI comes
to lights here, it decodes the context of the text based on NLP analysis. while
the same
NLP will provide a voice to the chatbot.

The later choice will need specialized chatbot developers with an understanding of

programming languages, machine learning, and AI. We can use some of the code-based

frameworks to build and handle the chatbot like wit.ai and api.ai. b. Using platforms

17
It is similar to scratch chatbots but the only difference is that you do not have to hire
a specialized developer and use the chatbot builder platforms like Chatfuel, Botsify
and Rasa, it’s not hard or impossible to achieve it. but it’s not possible to create a
NLP-enabled chatbot that can deal with unstructured data.

Chatbot Platforms alternatives:


d. IBM Watson: is touted as a question-and-answer system that can be used to build
applications and chatbots. The IBM Watson platform allows us to create an application
that shares a dialog interaction between our chatbot and users on Quick n’ Easy Projector
Rentals. The IBM interface is simple to use, and no back-end coding is shown at first
glance. The chatbot can be easily integrated into other applications such as Slack,
Facebook, and Twilio.
e. Google Dialogflow: is an easy to understand conversational agent. Theoretically, we can
have a bot up and running by understanding 3 core concepts: intents, entities, and dialog
control. As stated earlier, these general concepts are followed across a majority of the
chatbot platforms we played with.
f. Rasa: is an open source chatbot that is equipped with a natural language processing tool.
The open source tool is called Rasa NLU. You can tweak and customize the machine
learning algorithm that Rasa uses so that you can create a model that provides the results
you desire. Rasa NLU can be run wherever you want it to, and none of your training data
has to be passed over to Google, Microsoft, Amazon, or Facebook to train your chatbot.

Selected Platform:
We will use the rasa framework to build the required chatbot, but why did we choose rasa ?
Will, rasa has a lot of advantages such as:
● Highly customisable with various pipelines can be employed to process user dialogues.
● The rasa framework can be run as a simple http server or can be used from python, using
APIs.
● It has the Rasa-nlu, when run on a server, can mimic other commercial NLP platforms such
as
LUIS or wit.ai. This makes it easy to migrate an existing application to rasa-nlu.[3]
But as we know, nothing is perfect and rasa has its disadvantages like :

18
1. server requirements although spacy is a very fast NLP platform, it seems to be very memory
hungry.
2. Learning curve - Installation, configuration and training phases require machine learning
expertise (at least basic level)
3. Context based conversation not available out of the box - Rasa-nlu does not maintain the
context automatically. This has to be programmed separately into the chat service.

How To Setup Rasa and start a demo ChatBot

● First, we have to know that Rasa needs python to work, so we’ll install python and
the version should be from 3.6 to 3.8 at maximu

Python main screen in microsoft store.

Go to Microsoft Store and search for python 3.8. Then,Check if your Python environment is already
configured by opening the cmd : type python3 --version

Testing python version.


IF you did NOT find a version, then type this command :

19
Virtual Environment Setup

Create and activate the virtual environment using the below commands.
python3 -m venv ./venv
Activate the virtual environment:
.\venv\Scripts\activate
● Install Rasa open-source with the below command:
pip install rasa
● make a directory and move to it
mkdir test-chatbot && cd test-chatbot
Create the new project with rasa init command and start the conversation with the initial
demo chatbot

Rasa bot initial chatting.

supportive information:

After a great effort in searching and exploring personalities related to the topic of chatbot and
natural language processing (NLU), we want to thank Mr. Jonathan Wheat, who is a certified
developer for a framework Rasa for all his efforts and time to communicate with us and to provide

20
wonderful, useful and inspiring answers about several Questions we asked him about Rasa and
NLU. The following is the information that he provided us.

Our Question: What are the actual parts that are required and needed to be programmed for chatbot
using Rasa Framework ?.
“ There are 3 major parts to the Rasa Framework:
- The Rasa Server: This is the actual software that runs and interprets the user's input and handles
the responses based on a trained model (more on that below).
- The Action Sever: This handles some of the complex form logic if you need it, and/or API
calls, etc. This is written in Python, and there are many examples in the Rasa repo to look at.
Depending on how complex you need your bot to be, you may or may not need to write anything for
this.
- The chat interface - This is not part of the normal Rasa framework, you'll probably want to
grab one of the many chat interfaces, and/or connect Rasa to FaceBook Messenger, Slack, Telegram
or other service. Rasa has connectors for these major services to allow you to interact with your bot
using commercial chat interfaces.”

Training data.
“The training data for Rasa 2.0 is all formatted as .yml files. There are 3 types of training data.
- There is the main domain.yml file that contains a list of intents, entities, slots, responses and
some actions/form configuration - these equate to what the bot thinks you mean (intent), the text the
bot responds with (responses), the bots "memory" (slots and entities), and some setup if you're using
the Action server above.
- The next file is an nlu.yml file - this is your training data, it lists all of your intents and the
text, words, phrases that the bot can learn from and interpret as that specific intent. The easiest
example is a "greet" intent. That would have things like - hi, hello, how are you, what's up?, how are
you doing? as the training data and Rasa will process all that when you train.
- The last part of the training data is the stories.yml file - these are actual story flows that start
with an intent and you script how you want the conversation to flow. These are fluid, they're not
super strict "wired up" flows, but they help teach the bot how a conversation should look. If done
properly, it will handle tangents (someone talking about one topic and switching to another and the
bot will keep track). You can, and should, have as many stories as possible, different permutations

21
and flows to give Rasa the best idea of a conversation. It'll surprise you with how it works, and will
(again if done properly with enough data) converse very well.
To train the bot, it is as simple as typing - rasa train. and getting a cup of coffee or a beer
depending on how big your bot is. In the beginning it'll train pretty quickly, but as you add more and
more data, it'll take longer and longer. I have one that takes over an hour to train because of the data
involved.”

Our Question: Is there any majority of advanced python code that I need to write?, or are there
ready-made components and all I have to do is use them ?
“As mentioned above, the only python you'll need is for complex logic and any API calls
,When I say complex logic, it is possible to set up a strict flow to questions (think form fields) for
the bot to ask. This is all written in Python. You don't need any specialized python skills, I don't
think I've done anything outside of my basic python knowledge.
It is mostly python Classes, functions, etc, and there is a specific pattern you need to follow to get a
FormAction to work properly, so there is a lot of "boilerplate" code if that makes sense.”

Our Question: If I have to build a chatbot from scratch, which algorithms should I use and what
skills and information should I have about NLP ?, and what components do I need to achieve my
work ?.
“Wow, it all depends on how robust you want to make it. You'll definitely need to level up
on your Python and/or C, C++. It also depends on what you want the bot to do, there are some
simple classification algorithms that could map an intent with your phrase(s) and then when a new
phrase comes in, it could, with some confidence, predict what intent it maps to, and then have the
bot respond. You could implement a SVM (Support Vector machine) to do something like this, but
for me that's WAY too much effort, and I don't have a doctorate in Machine Learning, or Data
Science. Rasa has it all there for you. What's great is that if there is some cool new algorithm, policy
or pipeline you want to use, you can add it into Rasa and use it. I don't want to discourage you from
rolling your own, but there's a lot to it. There are tutorials out there if that's what you want to do
though.”

Our Question: the tutorials and outer resources that can help me get the work done and overcome
this challenge?.

22
“Rasa has a bunch of examples of bots in their gitHub repo as well as a few video series
(Rasa Master Class, Algorithm Whiteboard and Breakout Diaries) on YouTube - all free. They also
host webinars and (pre-covid) had a chatbot conference, this year it was online - I think most of
those talks are on youtube as well.

6.Testing

.Testing Concepts:
Chatbots testing criterias:
Criteria derived from the Rasa framework, which is a set of commands that are
executed to obtain degrading results based on the contents and how the bot is built. It is
done by executing specific commands, data validation verifies that no major errors or
inconsistencies appear in your domain, NLU data, or story data. If data validation leads to
errors, training the model may also fail or result in poor performance, so it is always a good
idea to do this check before training the model. Including the
--fail-on-warnings flag, this step will fail warnings that indicate more minor issues.
Conversation flow: in this criteria, the following things should be checked while
testing:
● Does a chatbot clearly understand the questions?
● Does it always give instant responses to these questions?
● Are the answers relevant to the given questions?
● Should a user ask a series of questions until he gets the answer?
● Does a chatbot engage the user to continue the conversation?

Business-specific questions: “Each industry has its specific terminology, notions,


nuances. So, a tester should have a list of domain-specific questions to check if the chatbot
is able to answer those.

Confusion handling: “Confusion may arise if a user enters some expression with
double meaning or an unknown word for a chatbot. The latter should be taught to answer
in such a situation. The tester’s goal is to check if the chatbot can handle
misunderstandings, exceptional conversational scenarios, and unusual patterns. This
capability of a chatbot is showing how “emotionally intelligent” it is.

23
.Test plan
Features to be tested:
Tested features will be those features that the bot has been trained on and given all the necessary
information and data about these features.

User input/intent Bot action

admission_policy utter_admission_policy

choose_college utter_choose_college

program utter_program

expected_major expected_major_form

parallet_study utter_parallel_study

placement_tests utter_placement_tests

first_installment utter_first_installment

Tested features

Features not to be tested:


● Feature of return and change the value of the entered mark.
● The feature of showing a welcome message to the user when the chat
window is opened.
● The feature of changing the intended intent of a previous message.

Testing environment and tools description:


Facebook Messenger and Slack were used as test environments for the bot
but were abandoned for reasons mentioned in the challenges section.
Not many testing tools were used, so to speak, a set of commands dedicated to bot
testing were used by the developers of the framework, namely:
● rasa test.

24
● rasa data validate.
● rasa test nlu.
● rasa data split nlu.

25
26
27
7.Conclusion
This bot was built to respond to the inquiries of the Tawjihi students regarding each of the
university's faculties and their specializations, with extracted information for each specialization,
familiarizing students with the level exams that students submit about their enrollment in the
university, introducing the educational qualification diploma program and the mechanism for
joining it. Giving students notes on the electronic enrollment application package, the locations of
approved banks, and how to fill out the application. Introduce Bagrut students to the conditions and
notes that must be taken into account in the event of joining Palestine Polytechnic University and
the mechanism for calculating grades. Introduce students to the procedures followed to reserve a
seat and what documents are required after the student is accepted. Introducing students to the
system of transferring to Palestine Polytechnic University from another university on the
undergraduate system. Informing students of the university’s teaching system and language.
Introducing students to the student exchange system with other universities. Introducing students to
the system of grants, exemptions, and financial aid provided to students. Informing students of cases
in which the student loses his university seat. Introducing students to the installment refund system
for new students and its conditions.

Challenges: We faced many challenges, and the biggest challenge during the work was the arrest
of my colleague Ali Jboor, a month before the deadline for the project. Dealing with the framework
is one of the biggest challenges, as it is new and not widespread. And also the challenge of learning
the necessary Python language to complete the construction of this bot. We can say that the current
health situation contributed to creating communication problems between team members and
problems related to slow internet and power outages during work.
We also mention the challenge we faced, so we divided the work into two parts, part for the admin
panel and a part to follow up on the work on the bot. Unfortunately, Ali was arrested and I had to do
the project alone in his absence, especially after we agreed on a day to share the results of the work,
but that day Ali was arrested.

interesting decisions:
1- The idea of the project itself was very interesting. We considered this project and set it as a
challenge to our abilities and ourselves. To be based on learning to use and implement programs using
a non-renowned framework for a project that is the most important in a university student's career.
2- The idea of changing the operating system used to run the bot was one of the most crucial
decisions in the workflow of the project. Windows was the best and most worthy on paper, according
to the sources. But there was one problem that we had encountered for such a long time that made an
operating system change necessary.

Recommendations: It is possible to modify and increase the efficiency of the bot to the fullest
extent if the time factor and the human factor are available. Unfortunately, we were not able to
deliver the bot to the maximum extent that we drew and expected due to the circumstances that
28
befell us. Additional matters necessary for students related to registration, student status, and forms
to official documents can be added.

Future improvements: The project scope may be expanded to include all corners of the
university, including faculties and deanships of registration and follow-up of all matters that the
student is interested in during their academic life. The ability to communicate using voice messages.

8.References
1. "Chatbots - Artificial Solutions." Chatbots | Conversational AI Platform for Enterprise Teneo.
Accessed 8 Nov. 2020.
2. "How Do Bots and Chatbots Work." https://www.cxtoday.com/contact-centre/how-do-bots-and-
chatbots-work/

29
3. "Building Chatbots - A comparison of Rasa-NLU and Dialogflow." 17 Apr. 2018, Building Chatbots
- A comparison of Rasa-NLU and Dialogflow. Accessed 8 Nov. 2020.
4. "Jonathan Wheat" Jonathan Wheat - DEV Community. Accessed 10 Nov. 2020.
5. Understanding the Basics of Rasa - Open source conversational AI https://smazee.com/blog/basics-
of-rasa
6. Rasa Architecture Overview https://rasa.com/docs/rasa/arch-overview/
7. An Architecture for Dynamic Conversational Agents for Citizen Participation and Ideation by:
Saifeldin Ahmed
(PDF) An Architecture for Dynamic Conversational Agents for Citizen Participation and
Ideation (researchgate.net)
8. Installation: https://rasa.com/docs/rasa/installation
9. How to test a chatbot. Accessed May 31-2021:
https://apphawks.com/blog/a-compelling-guide-on-chatbot-testing

30

You might also like