Zee - Blog
Published on

Chatbot - Visualization service

Authors
  • avatar
    Name
    Zee Lu
    Twitter

Introduction

In the previous blog, we have planned the architecture for the chatbot, and we have chosen Apache Superset as the visualization service. In this blog, we will plan on how to build bridge services to access the superset functions.

Functions Required

For the chatbot, the following functions are required from the superset:

  • Execute SQL query
  • Visualize the data(Create charts)
  • Import Data(Link database or upload files)
  • Show dataset details(columns, etc.)

All the services will be accessed via superset's REST API. We will build several functions to make sure the client does not directly access the superset API.

Preperation

NOTE

It is not mandatory to setup superset in remote kubernetes cluster, you can also run the container locally in docker. If you wish to set up it on a managed kubernetes service, please check these two blogs:

Step 1: Setup Superset

Option 1: Local Setup

If you are setting up superset locally, I highly recommend to follow this document: Installation - Using Docker Compose

Option 2: Remote Setup

Please refer to Installation - Kubernetes, or check out my delpoyed instance:

  • domain: https://superset.do.zeelu.me/
  • username: guestuser
  • password: guestuser

Step 2: Choose a dataset for testing

Feel free to use any dataset you get, in my case, I am using London Bike Sharing Dataset from Kaggle. You can check out the dataset below:

IMPORTANT

The iframe is not avaliable until December 2025 due to the maintenance of my kubernetes cluster.

Step 3: Develop bridge services

NOTE

Please check the blog Visualization service - Design serverless function for the detail. It documents all the process I built the serverless function for the visualization service.

Next Phase

In the next phase, we will start to build the frontend for the chatbot, and integrate the serverless functions.