← Back to Home
✍️ Yantratmika Solutions 📅 2023-01-04 ⏱️ 10 min read

Conversational interface is the way of the future. Nothing can beat the user experience of a user talking to your application. Any amount of color optimization and responsive design on a website or mobile app is trivial when it is compared to the experience of a conversation.

Naturally, such a conversation is difficult to implement. However, it is not so difficult either. We have an array of tools and utilities to help us construct the chatbots as per our requirements. This blog introduces you to Amazon Lex, covering the following topics:

Introduction

Amazon Lex is a service provided by Amazon Web Services (AWS) that enables users to build and deploy chatbots for use in a variety of applications. These chatbots, also known as conversational interfaces, allow users to interact with a system or service through natural language input and output.

One of the key benefits of Amazon Lex is its integration with other AWS services. This allows users to leverage the power of the AWS ecosystem to build and deploy their chatbots. For example, Amazon Lex chatbots can be integrated with Amazon Connect, a cloud-based contact center service, to provide customer service through a chatbot interface.

In addition to its integration with other AWS services, Amazon Lex also offers a variety of features to help users build and deploy high-quality chatbots. These features include:

Overall, Amazon Lex is a powerful tool for building and deploying chatbots for a variety of applications. Its integration with other AWS services and extensive customization options make it an ideal choice for users looking to build conversational interfaces for their business or service.

Core concepts

Before we get into implementation, we should understand a few important concepts involved in building chatbots.

Intents

An intent represents the intention of the end user — what does the user want? The primary task of the chatbot is to try and guess this intent and map it with the intents it is programmed to process.

Utterances

The chatbot tries to guess the intent based on the utterances of the user. These are spoken or typed phrases in the user input. The chatbot tries to relate them with the utterances configured for each of its known intents, to identify the current intent.

Slots

The intent alone is not enough. The chatbot needs specific details related to the intent so that it can work on it. These details should be identified from the user’s input. We call them slots. They are specific words and phrases that appear in the long sentences that the user utters.

Fulfillment

This is the actual mechanism for your intent. Once the intent and the slots are identified, the chatbot invokes the fulfillment mechanism that we have configured.

Note that the utterances, intents, and slots come in free-flowing text from the user. They do not have a fixed format or sequence. Here, we cannot use the traditional techniques of text matching or regular expressions. We need intense NLP using trained models to get these details. That is why we need Amazon Lex.

With Lex, we have readymade models that help us with these tedious tasks. We just configure the basics and it takes care of the rest.

Create a bot

With the basic theoretical understanding, let us now implement a simple bot using Amazon Lex. Let us create a chatbot that can tell us the latest news related to a given keyword. It is a simple process that involves a few core concepts. Let us check it out.

Jump to the Amazon Lex Console.

Amazon Lex console

Click on “Create bot” to start the process. The configuration is straightforward.

Create blank bot

Bot configuration

Create role

Ignore COPPA for demo

Slot response

Intent utterances

Enable fulfillment

Attach lambda function

Keyword slot

News utterances

Three intents

Create lambda function

API Keys

Test the bot

Attach the lambda functions

Sample chat

Wow! Try out different ways of asking the same question. If something fails, try to update the intent utterances and save the intent and build the bot again.

We can easily integrate this with our website or mobile app using AWS Amplify.

Improving the bot

That was good for a simple demo bot. It gives a glimpse of what we can do with Lex. Obviously, there is a lot more to Lex and to chatbot development. For example, we can configure several other aspects of the intent. The confirmation, closing remarks, etc. We can build up the session context as the user chats with the bot. So, the user can refer to an object used in a few commands before. For example, the user can ask about the weather in a city. Then ask for news, with a pronoun. The bot can “remember” the context and give the news about the same city. Or the user can ask about the weather after a few minutes — how is the weather now? The bot can remember the previous request and fulfill it without asking for the city again.

These are the interaction aspects of the bot. We can also enhance it functionally. For example, instead of invoking free APIs for the news and weather, we could have a bot that queries the real prices of the share market. The user can just query the share prices and instruct a buy or sell from the chat console.

And of course, we can use a voice interface to make this even more interesting. In the above example, we have used the text-only interface. We can enable a voice to make it even more interesting.

The sky is the limit for the variety of use cases and possibilities we have with the Amazon Lex bots. It is an absolutely trivial task to configure and get the basic structure working. Once it is ready, we can add more and more features to it.

Lex vs ChatGPT

ChatGPT has hit many headlines (and also many minds) in the last few weeks. However, there is a big difference between the two. ChatGPT no doubt has great features for generating awesome text content. However, when it comes to functionality, utility, and configurability, it is far behind Lex.

Functionality

Amazon Lex is a fully-featured chatbot platform that allows developers to build, test, and deploy chatbots for various applications. It includes natural language understanding (NLU) and automatic speech recognition (ASR) capabilities, as well as integration with other AWS services. ChatGPT, on the other hand, is an open-source chatbot toolkit based on the GPT-3 language model. It is designed for generating human-like text and can be used to build chatbots that can hold conversations with users.

Customization

Amazon Lex offers a high level of customization, allowing developers to fine-tune the chatbot’s behavior and responses based on their specific needs. ChatGPT, on the other hand, is more limited in terms of customization. It generates text based on the input it receives, but developers have less control over the specific responses the chatbot provides.

Integration

Amazon Lex integrates seamlessly with other AWS services, such as Lambda and Amazon Connect. This allows developers to build chatbots that can access data from other AWS services and perform various actions. ChatGPT, on the other hand, does not have this level of integration with other tools and services.

Overall, Amazon Lex is a more comprehensive chatbot platform, while ChatGPT is a more specialized tool that is primarily focused on generating human-like text. Both can be useful for building chatbots, but the best choice will depend on the specific needs and goals of the project.