Course Overview
Get an overview of this course’s content, what will be covered, the tools and technologies used, and the intended audience.
What is a chatbot?
A chatbot is a computer program that simulates human conversation through text or voice interactions. Chatbots are typically used as virtual assistants who can understand and respond to questions or requests in a way that feels like talking to a person. These chatbots can perform various tasks, such as answering questions, booking services, or assisting with customer support. With further advancements, chatbots are slowly transitioning into personal assistants that can do more than just converse with you.
Chatbots gained significant popularity around the late 2000s and early 2010s. With the rise of messaging apps like Facebook Messenger and WhatsApp, chatbots became widely adopted for customer service, marketing, and personal assistance.
Did you know the Google Assistant on Google Pixel devices can make screen calls for you? The Assistant will chat with the caller and provide a real-time transcription, allowing you to determine why the caller might be trying to contact you. In a demo, Google also showcased the Assistant calling a restaurant to make a reservation for you!
The line between what can be considered a chatbot and what cannot is difficult to draw. With the advent of large language models (LLMs) that perform well across multiple domains, traditional chatbots, and chatbots powered by LLMs are now at a crossroads.
Why do chatbots need to exist?
The dominance of ChatGPT and similar models has redefined the level of interaction we expect from modern chatbots. With the word “chat” making up half of “ChatGPT,” is there still a need to learn chatbot development? In a nutshell, some interesting use cases still warrant the need for specialized chatbots. This course will walk you through the entire process, from simple rule-based chatbots to state-of-the-art chatbots powered by LLMs. During this process, we’ll explore the concepts, growth, and challenges of various chatbots and, along the way, understand the different problems that chatbots can efficiently solve.
But here’s the kicker: Modern LLMs are improving astoundingly and might replace traditional chatbots altogether. So what now? Fret not, for it is easier to tame the beast than to fight it. This course will explore how LLMs can be used to create truly helpful and personalized user experiences with chatbots.
What problem will we solve?
Since you’re a smart person who wants to learn (which is why you’re on the best online learning platform), we will create a chatbot to help you. This educational chatbot will provide a personalized learning experience and help you retain your knowledge with the help of quizzes. While doing this might also be possible with a vanilla LLM, we will uncover areas where these off-the-shelf models fall short and what our chatbot can do better. Furthermore, to truly appreciate the current state-of-the-art models and for completion, we’ll also create a chatbot using Rasa that employs traditional machine learning techniques.
Creating chatbots, particularly their visual aspect, has become much easier thanks to frameworks like Gradio and Streamlit. In this course, we’ll use Gradio to create a neat frontend for our chatbots. We will also deploy our chatbot to Hugging Face Spaces.
Here’s a sneak peek of the type of experiences that can be made using Gradio.
Prerequisites
To get the most out of this course, you should be comfortable with Python and understand APIs. We will use various LLMs via APIs along the way, so being comfortable with creating prompts will be a plus. Familiarity with basic NLP and ML concepts would help you better understand the underlying technology. Since this is an intermediate-level course, we’ll explore more advanced concepts and build on the prerequisite knowledge to maintain a fast pace.
Target audience
This intermediate-level course is designed for a wide audience. It can be particularly useful for those in any of the following categories:
Software developers and engineers, or those with a programming background (particularly in Python) looking to expand their skill set into AI and natural language processing.
Data scientists or individuals with a strong foundation in data analysis and machine learning who want to apply their knowledge to building conversational chatbots.
AI enthusiasts and people interested in artificial intelligence and natural language processing who want to build practical projects.