Title: Chatbot for Complex Database Visualization

Company: Google

chatbot image

In my role as the primary lead of a Chatbot project, I delved into the fascinating field of Natural Language Querying (NLQ) with a specific focus on addressing the compute and storage resource allocation/usage queries within various product area teams. The goal was to create a user-friendly interface that eliminated the need for team members to grapple with intricate SQL queries or be limited to default graphs.

Our team successfully developed the initial version of the chatbot using Dialogflow. However, our exploration didn't stop there. We diligently studied various NLQ engines, including the likes of Tapas, to create a proof of concept (POC) around extending their capabilities to suit our specific use case.

One of the challenges we encountered was dealing with multiple tables and determining the probability of answers lying within each table. The complexity further heightened when considering whether a join operation between tables was necessary. Additionally, the traditional Text-to-SQL approach posed issues, as it either catered to simple, non-nested databases or required parsing the entire table for models retrieving answers, which proved unsuitable for big data. While these challenges remain open problems, we opted for a pragmatic approach for a very specific internal use case.

My involvement in this project consisted of several key steps:

  1. Exploration of NLQ Engines: I conducted a thorough exploration of multiple NLQ engines, evaluating their strengths and weaknesses to find the most suitable solution for our project.
  2. Story Creation in Dialogflow: I actively contributed to the creation of stories, essentially user journeys, within Dialogflow. These stories served as the foundation for the chatbot's interactions with users, providing a structured and intuitive experience.
  3. Chatbot Implementation and Integration: I took a hands-on approach in implementing parts of the final chatbot. This involved coding and integrating the chatbot with Google Chat, ensuring a seamless user experience for teams seeking information on compute and storage resource allocation/usage.

In summary, our journey involved a meticulous exploration of NLQ engines, thoughtful story creation in Dialogflow, and the practical implementation of a chatbot tailored to meet the specific needs of product area teams. While challenges persist in the NLQ field, our solution represents a tailored and effective response to a particular set of internal requirements.