How to Create a AI Chatbot in Python Framework
Published: 2022-06-26 10:58:21

Chatbots are software tools created to interact with humans through chat. The first chatbots were able to create simple conversations based on a complex system of rules. Using Flask Python Framework and the Kompose Bot, you will be able to build intelligent chatbots.

In this post, we will learn how to add a Kompose chatbot to the Python framework Flask.

Pre-requisites:

You will need a [Kommunicate](https://www.kommunicate.io) account for deploying the python chatbot. 

Kommunicate is a no-code, hybrid chatbot platform that is built over a powerful Conversational AI system.

Also, you will need Python and the Flask framework installed on your system. To read more info about the Flask framework, please follow [this link](https://flask.palletsprojects.com/en/1.1.x/quickstart/).

We will be using Flask in this tutorial. If you are looking to add Dialogflow chatbot to the Django framework, you can see this [tutorial](https://www.kommunicate.io/blog/dialogflow-chatbot-django-website/).

**Steps to Create a Chatbot using Kompose and Flask Python Framework:**

Step1: Login to your Kommunicate dashboard. If you don’t already have a Kommunicate account, you can create one [here](https://dashboard.kommunicate.io/signup). Navigate to the Kompose bot builder category and create a new bot by selecting the “Create Bot” button.

![Kommunicate Chatbot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jvj7z8x78cuxiaj3um5.png)


Step 2: Navigate to the Kompose Bot Builder, select your bot and click on the “Settings” option present at the top right corner. 

Click on the Webhook option present on that page. Here, we need to put the Webhook Name and Webhook URL.

![Webhook](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4d30zhag6e3e6nu0e3ie.png)



Step3: Create Webhook URL using Python with Flask and enable the webhook server using ngrok

The webhook requires a URL, and it should be an HTTPS protocol. The webhook URL will receive a POST request from the Kompose Bot every time an intent triggers the webhook.

We are using the Python programming language and the Flask framework to create the webhook.

Create a file (for example – app.py). Import all the necessary libraries (ex: os, JSON, flask_ngrok, request) needed for Python. Please check if you have Flask on your system. If not, install it using pip, and here’s the [documentation](https://flask.palletsprojects.com/en/1.1.x/installation/#install-flask) for the same.

To handle all the agent webhook requests, we need to define and add a route/webhook method with a POST request. This URL /webhook will receive a POST request. It executes all the methods inside the method.


![Webhook code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z00n5yjnya67mdvra4sn.png)


After setting up the Python process, let’s use flask ngrok to create a public URL for the webhook and listen to port 5000 (in this example). For Kompose webhook, you will need an HTTPS secured server since the local server (localhost) will not work. You can also use a server and point a domain with HTTPS to that server.

You will get the following URL:  

85e6-203-189-248-8.ngrok.io/webhook, where the webhook is the POST route for Kompose we mentioned in the Python file.


Step 4: Configure Webhook inside Kompose Settings Page

Copy the URL you created (85e6-203-189-248-8.ngrok.io/webhook) – in this example and paste it into the Kompose webhook URL field. Here, I have written the Webhook name as “Test.”


![Webook](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h24jyac9ikkxmm9e8z9p.png)


Step 5: Create an intent by clicking on the +Add button under the “Answer” section and “Train the Bot.” 

Here, I have created Flask intent and added a training phrase as “What is Flask?”


![Flask intent and added a training phrase](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qglhq6o4yesotrfo60rq.png)
 


Step 6: Click on the “Bot Says” option and select the webhook that you created earlier. Here, I have selected the Test webhook created earlier. Now, click on “Train Bot.”

![Chatbot answers](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gb240kdjac6vgfu6nfpf.png)



Step 7: Testing

Once the setup is done, you can easily add it to your website or apps using Kommunicate.

Chatbot in website
& test if the Python chatbot is working.


![Kommunicate Chatbot Demo in Python](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zzkiqzolvxm93km5u1nb.png)

There you have it, a Python chatbot for your website created using the Flask framework. If you want to read more about how to build a chatbot, visit ["How to make a chatbot"](https://www.kommunicate.io/blog/how-to-make-a-chatbot/).

This post is originally published at [Kommunicate's blog](https://www.kommunicate.io/blog/create-a-chatbot-in-python/).