Using NLP in a Slack chatbot

Rian Schmidt

February 24, 2023

Table of Contents:

Riding the Chatbot Wave
But what can I DO with it?
Using a chatbot for real efficiency
Avoiding "stupid" chatbots and intranets
Natural Language Processing
Enter the Slack Chatbot
Next time...

Riding the Chatbot Wave

As of late, everyone is talking about ChatGPT and its ilk. Aside from the fact that they sound a little... Terminator-y... in interviews, you can't deny that they're incredibly useful. I particularly enjoy saving a lot of typing when I need to code or write something that I can't quite get started on.

But what can I DO with it?

OK, so that's all productive and great, but what could I do with the idea, myself, to make something useful for my employer? OpenAI spends millions of dollars a week to run that thing, and I'd guess the lion's share of that is answering a lot of "how are you today?" questions.

There must be a scaled down application of the basic building blocks that would actually save people time doing simple repetitive tasks that I could put together quickly.

Using a chatbot for real efficiency

My work goals in my day-job as a CTO this year are largely focused on bringing order and efficiency to our processes and systems. As if on cue, a few days ago, a senior-level colleague commented in a meeting that he didn't know how to contact IT.

Now, he's new to the company, but that never would have occurred to me. And, of course, he can ask someone, but now how many minutes of two people's time has been used up to answer the simplest of questions? Of course, IT has its own channel, but if, like him, you're not a Slack wiz, it's not super obvious how to find it.

Avoiding "stupid" chatbots and intranets

We've all experienced the stupid chatbot. It looks for some string in your question and spits out the first random thing that matches. Or, it has to match your exact question, or it shrugs and gives you nothing.

Then, there's the "corporate intranet". You need some information? Just pop on over to Sharepoint and... oh boy. It's easy, just click here, scan down to the link, click that, and it's on the very next page. Unless it's a 404.

What would be great is a chatbot that could deduce your intent from your question and come up with a really good guess at what you're really asking.

Natural Language Processing

(The following was prepared for you by ChatGPT.)

Natural language processing (NLP) is a type of artificial intelligence that helps computers understand and interpret human language. This means that computers can read, write, and even speak in a way that is similar to how humans do.

NLP algorithms work by breaking down human language into its individual parts, such as words, phrases, and sentences. They then use various techniques to analyze these parts and extract meaning from them. This can involve looking for patterns, identifying the relationships between words, and analyzing the context in which the language is being used.

NLP is used in a wide range of applications, such as virtual assistants (like Siri and Alexa), chatbots, machine translation, and sentiment analysis. It is particularly useful in tasks that involve large amounts of unstructured text data, such as social media posts, emails, and customer reviews.

Overall, NLP is helping to bridge the gap between humans and machines, making it easier for us to communicate and interact with computers in a more natural way.

Enter the Slack Chatbot

At my employer, we've got teams of people focused on finding new ways to analyze data, buy media, and create winning campaigns. Meanwhile, they forget where the Engineering Request Form lives. Or they get a common application error that we end up explaining over and over how to fix.

The chatbot is an NLP chatbot that lives on Slack and serves to remember those things for our users. Not only is it really good at understanding the question you're asking, but Slack provides a slick way to provide useful interactivity in the answers for (almost) free.

You need to fill out a simple form? Great, just type it in here, and the bot will get it to the right place.

You forgot how to clear your cookies to fix an authentication problem? Here's the instructions.

What's our front-desk phone number? Our address? And, of course, how do I contact IT? (Here's a button to open the support portal!)

Next time...

The prototype for this Slack chatbot was written over a weekend. It uses just a few open-source tools and runs on a small cloud server. One of these next days, I'll talk a little about how it's made, and what I learned in the process.

Circinaut is a Fractional CTO services provider, based in Portland, Oregon, working with clients all across the country. I focus on application development, technology advising, and ongoing support for small and medium-sized businesses.
If your business is in need of a part-time CTO, a fractional CTO, or a contract technical consultant, drop me a line. I'm happy to have a quick chat to discuss your situation with no sales pressure at all (really!).