Professional Documents
Culture Documents
1 Introduction
1.1 Project statement
1.2 Purpose
1.3 Goals
2 Deliverables
2.1 First Semester
The Idea
1.
2.
3.
4.
1 Introduction
1.1 PROJECT
STATEMENT
We are going to create a chatbot that can process natural language queries regarding
the infrastructure of Critical Labs and formulate intelligent and accurate responses.
This could be a simple question such as "How much power capacity do I have left in
rack A?" or one that requires more complex calculation, such as "If I add a Dell R810
Server to Rack 20 will I overload the breaker?". The end goal is to be able to use a device
such as the Amazon Echo to enable employees to talk to their data center.
Managing a data center is a difficult task and downtime can be detrimental to an
organization. The monitoring system that Critical Labs currently has in place (Trellis) is
antiquated and can make it difficult to extract information. We wish to create a faster
tool that is simple to use so that an employee can easily manage the datacenter.
1.2
PURPOSE
We chose this project because we wanted to go outside of our comfort zone and learn
something new. None of us have worked with natural language parsing before and we
are eager for this new challenge. We will be learning new tools and working towards
taking a question and returning a quantitative answer. This will be a benefit to us
because well learn new skills, but it will also benefit Critical Labs. This tool will be
helpful to the employees who work in data centers as it will make their jobs easier.
Instead of having to do lots of navigation on a website and do queries over lots of data,
they can simply ask our intelligent agent a question and quickly get a response. This
will save everyone time and will help Critical Labs become more efficient by minimizing
downtime.
1.3 GOALS
Goals:
2 Deliverables
2.1 FIRST SEMESTER DELIVERABLES (FALL 2016)
3 Design
3.1 PREVIOUS
WORK/LITERATURE
An important factor to think about when creating a project is Does it already exist in
todays market? In our case, the Data Center Intelligent Agent premise is very close to
Chatbot, Siri, Cortana, Amazon Echo, and Jarvis from Iron Man. All of these applications
have some sort of natural language user input that is analyzed to produce some sort of
3
output. Each application does their task in a way that is different from each other and is
specified for which platform they run on. The Data Center Intelligent Agent is no
different. It will only run on Critical Labs data centers which means it needs to be very
specific to its environment; other applications cannot meet this requirement. This gives
the Data Center Intelligent Agent value and makes it a project worth working on.
DIAGRAM
3.3 ASSESSMENT
METHODS
OF
PROPOSED
There are multiple ways to create this project. The biggest design choice is the language
used to create the tool. Different languages run at different speeds. An example would
be using C instead of Java. C is very fast because it is a very low level language, but lacks
the libraries that Java has access to. We plan on using Java for this project because it is
able to run on any operating system which is a necessity since this application may run
on different types of machines.
Another approach would be to use different text parsers. There are a lot of parsers that
are free to download that all work in different ways. One parser would be Parsey
McParseface that Google has created. This parser is able to pick out all nouns,
adjectives, verbs, etc. We could also create our very own parser that will be very specific
to this project. We plan on using Parsey McParseface because it already has lots of
features that we can readily use.
3.4 VALIDATION
We plan to have a list of intended use-cases for the product; we will verify that product
properly fits all of those cases. We plan to test all edge cases within the system to make
sure there are no bugs.
Our sponsor will provide us with the resources to test our solutions. He will spin up an
AWS instance that we can test our code against.
4 Project Requirements/Specifications
4.1
FUNCTIONAL
4.2 NON-FUNCTIONAL
Maintain security
No access to this program outside of the intended network
No data leaks
Return an answer to the users question within a reasonable time
Must say if there is any issue related to an improper question
Preferably within a second or two.
Needs to be maintainable after we have completed the project
Contain proper documentation
Easy to understand code with modular design
Reliably answer users questions
Ensure the program always responds to the user, even in an exception
case.
5 Challenges
Finding time to work on the project will be very difficult because we all work 20 hours a
week and are taking a full semester course load. In addition to our busy schedules, we
will also have to find time that we are all free to meet. The coordination between all of
us can prove to be stressful which can slow down the project plan.
Another challenge is that none of us have parsed natural language before, so there will
be a lot of learning involved. This will involve understanding how to use tools like
Parsey McParseface and how concepts such as parse trees work.
A lack of understanding all of the clients wishes and needs may lead to more time
planning or any unforeseen changes that need to be made. This could result in a setback
on our timeline, doing unnecessary work, or missing components.
The opportunity to test our project will not always be available because the resources
required to test are expensive and require prior planning.
6 Risks
In the table below we discuss the possible risks, their likelihood, how much it might
impact the project, and our mitigation strategy for each risk.
Risk
We are unable
to meet our
project goals
before the
deadline.
Our developer
is unable to
work due to
personal
reasons.
We encounter
unforeseen
technical
issues.
Loss of coding
base.
Probability
of
occurrence
0.1
0.2
0.4
0.05
Criticality
(0-100)
80
30
60
90
Risk factor
(Prob. Of
occurrence x
Criticality)
Mitigation strategy
We have to scale
back the project, and
likely lose some
functionality.
24
All of us will be
working on becoming
familiar with Rest API
and Trellis, so we
can work together to
overcome problems.
4.5
7 Timeline
7.1 FIRST SEMESTER
September - Get requirements from client
October - Work on project plan and start design finish documentation is finished
November - Finish project design, setup project in source control, ready for
development
December - API connection functionality is complete, Start work on core modules
8 Conclusions
In conclusion, were going to make an easy to use text parsing tool that can answer
questions about a datacenter. We plan to do this by working and communicating with
an industry client so that our product is an improvement over our clients existing
system. In the end, we hope to gain experience in a professional work environment,
learn technical concepts such as language parsing, and have a product that our client
can continue to use.
Our team understands all requirements for this project and has created a reasonable
plan for achieving our goals.
9 References
http://www.apple.com/ios/siri/
www.amazon.com/echo