Logo

about me

portfolio

portfolio

portfolio















HALi 1979

I have always found AI's slightly amusing but sort of a gimmick. I struggle to say "Hey Cortana" or "OK Google" without feeling a bit silly. I am talking to my computer, seriously I need to get out more. But on the other hand, I could see how much potential an AI has at automating some of the daily repetitive tasks. For me an AI is not a program that you have a brief joke and laugh with but something that can actually reduce your workload and give you useful information for your daily life and not "Do Dinosaurs have feathers?" Seriously... There have been some wonderful stories in the media about AI's actually saving lives, one story that stood out for me was when a person had his car drive him to the hostpital when he was suffering from a serious health issue. Or the one where the guy was stuck under a car and he asked Siri to call the emergency services from his pocket that he couldn't reach.

To begin with I set about creating a back end database that would store questions thrown at HALi and offer numerous responses when responses were available. If no responses were available then each week I would review the database and provide answers to questions that might have been asked. This was really a beginner task to get something up and running that could gather a knowledge base and provide useful responses from an IT Support perspective. For example, if someone asked the question "I would like to book a projector", HALi would then direct them to an online form that would book a projector. The difficulty was that someone might ask "can I, please book a projector" or perhaps "I want a projector". After gathering a lot of questions I started to realise that there are literally a hundred ways to ask the same question!

I decided to use sqlite as the back end database, mainly because I had never used it before and I liked the light weight / modular design. The challenge with sqlite that I soon came across was trying to match search queries that had symbols like ? and ! and so on.. I soon realised that I would need to use an advanced sqlite plugin that would create a virtual table and perform a match query when punctuation was used in the questions. This might sound straightforward but it is anything but straightforward when dealing with a human question. Overall in hours, I must have spent the best part of 2 days trying to figure out how to do this but eventually after a lot of searching and reading I finally got there.

I created a separate column in the database for words like "Can, please, want , would, like.." and another column for the objective, for example: "Projector". This way HALi would be able to figure out what someone was asking in the hundred or so different ways. HALi1979 has been running for nearly a year now and It is actually getting quite smart now. HALi has collected so many questions now that it even surprises me more often than not, when I throw a question at HALi, an appropriate answer is given back. Some of the questions that HALi has collected are as to be expected quite silly ones, but I have given a silly answer back to those ones!

I have now moved on from the basic ask a question and get an answer part of HALi. I am proud of what I achieved with HALi so far, and it was quite a lot of fun programming it, and most important of all, I learnt a lot from doing it. I have improved on the tasks that HALi performs, and I will list them below:

Projector Booking

When a user books a projector, HALi now will automatically add the booking to the IT Administrators calendar in outlook and also optionally add the event to the user's calendar if they wish. This has saved the IT Department so much time and effort and bookings are no longer forgotten.

Reminders

I designed a part of HALi that does an auto refresh every 1 minute and executes a script that checks various databases in the company for anything important coming up. HALi will also check if a projector booking is taking place the next morning and inform the IT Department by an email.

HALi will also execute a PowerShell script twice a day that checks all the server status and internet status and will inform the IT Department if all systems are green. This is quite a comforting feature so that you are made aware of any serious problems before you actually get into work. I cannot stress how much nicer it is to be aware of a problem and preparing for it than just getting into work and everyone pouncing on you! If you know there is a serious server problem, you can slip in the side door and get on with fixing it (without being harassed at every corner).

Another popular reminder is the "What's happening today?" feature that I added. HALi will check the company database for events that might be happening on the day and also will notify the users if anyone's birthday is on that day. HALi will send this information daily via an email daily to the users. I have had some really positive responses regarding this because users like to know what is happening without having to go looking at the company calendar. Also knowing about a birthday has also proven to be popular as often people are forgotten on their birthdays and it is always nice to surprise someone by wishing them a happy birthday! As always I will provide some images and a video of HALi in action very soon.

I will also discuss the HALi speak feature that I added!


 

Last updated, August 2018