Tech/Engineering

Druva Virtual Assistant and Conversational UI

Jude Daniel, Sr. Product Manager

As a Product Manager at Druva, I'm always excited to explore new ideas and technologies that can improve our products and make our customers' lives easier. Recently, our team participated in a hackathon organized by Druva, where we worked on a project focused on conversational user interfaces (UIs). Druva has been organizing 24-hour hackathons every year and 90+ teams participated in this year’s event. These hackathons are the cornerstone of Druva’s continued success in devising innovative, smarter, and more efficient ways to solve problems. They bear testament to how the brilliant minds at Druva push the boundaries of excellence, think creatively, and innovate in ways never thought possible.

Our Hackathon Project: Druva Virtual Assistant

Team Members: Jigar Modi, Santosh Padwal, Shahrukh Ozair, Parth Aaranke & Jude Daniel

For this year’s hackathon project, we decided to focus on the backup and recovery features of our product. We wanted to create a conversational UI that would allow users to easily manage their backups and recoveries using natural language.

The result of our hackathon was the Conversational Backup Assistant or as we like to call it “Druva Virtual Assistant." This chatbot would be integrated into our product, and users could interact with it using natural language. Here are a few examples of how the Conversational Backup Assistant could be used:

Trigger a Backup

Users could ask the chatbot to initiate a backup of a specific VM or file server. The chatbot would confirm the request and provide updates on the progress of the backup.

Restore

Users could ask the chatbot to retrieve a specific file, folder, or an entire VM from a previous backup. The chatbot would provide options for selecting the backup, and then initiate the recovery process.

View Backup Status

Users could ask the chatbot for updates on the status of their backup jobs. The chatbot could provide information on the progress of the backups and any errors or warnings that have occurred.

Backup Configuration

Users could ask the chatbot to modify their backup settings, such as the frequency of backups, retention period, or the files and folders included in the backup.

Virtual assistant interface


Benefits of the Conversational Backup Assistant

We believe that the Conversational Backup Assistant could provide several benefits for our customers:

Faster and Easier Backup Management

By using natural language, users could quickly and easily initiate and manage their backups, without having to navigate through complex menus and interfaces.

Improved Visibility

By providing status updates and notifications in real-time, users would have greater visibility into the status of their backups and any issues that may arise.

Increased Efficiency

The Conversational Backup Assistant could be more efficient than traditional interfaces, as users could quickly ask for information or initiate tasks without having to navigate through multiple screens.

Under the hood

We have introduced a lightweight and easily pluggable parsing module. When a user enters their text request, the whole text is given to the parser as an input. Parser identifies the semantics of the user message and as per the actions derived from the message will trigger the respective API.

Diagrammatic Representation  

Conversational UI diagram

In a broader sense, we deal with various workloads, including virtual machines, file servers, NAS, and databases, where users can perform actions such as configuring, backing up, restoring, and listing. We also identify any filters in the input message.

After obtaining all of the relevant objects and actions, we collect the necessary filters and trigger the appropriate API based on this information.

Components

Natural Language Processing (NLP)

To enable users to interact with the chatbot using natural language, we used NLP technologies. Specifically, we used a pre-trained NLP model to parse user input and extract relevant information, such as the type of backup requested or the file/folder to be backed up. We also used an intent recognition engine to determine the user's intention, such as whether they want to initiate a backup or restore a backup.

Chatbot Framework

We used a chatbot framework to develop the Conversational Backup Assistant. This framework allowed us to easily build and deploy the chatbot within our product. We also used this framework to integrate the chatbot with our existing backup and recovery features.

APIs

To initiate and manage backups and restores, the chatbot needed to communicate with our backup and recovery APIs. We exposed these APIs to the chatbot using a RESTful API architecture. The chatbot could then make calls to these APIs to initiate or restore backups.

Authentication and Authorization

To ensure that only authorized users could interact with the chatbot and initiate backups, we implemented authentication and authorization mechanisms. We used our existing user authentication system to authenticate users and then assigned specific permissions to the chatbot based on the user's role.

Error Handling

To provide a good user experience, we implemented error handling mechanisms within the chatbot. For example, if the chatbot was unable to initiate a backup due to an error, it would provide a clear error message to the user and suggest steps to resolve the issue. Similarly, if the chatbot is not able to understand the instructions, we also build a curated actions/list in the chatbot to perform some basic tasks like backups and restores among other things. 

Overall, the Conversational Backup Assistant project required a combination of NLP, chatbot development, API integration, authentication and authorization, and error handling. While this project was a hackathon project and has not yet been implemented in production, we believe that these technical details demonstrate the feasibility and potential of using conversational UIs to enhance our products.

Conclusion

While our Conversational Backup Assistant project is still in the early stages of development, we believe it has the potential to significantly improve the user experience of our products. By using natural language, users more easily manage their backups and recoveries and have greater visibility into the status of their backups. We are excited to continue exploring the potential of conversational UIs and other emerging technologies to enhance our products and make our users' lives easier.

For readers who want to build their own conversational UI, choosing the right NLP and chatbot is of prime importance. Once this step is complete, you need to determine the use case that you would like to solve via the conversational UI and then define conversational flows followed by API integrations. 

Next Steps

Learn more about the technical innovations and best practices powering cloud backup and data management on the Innovation Series section of Druva’s blog archive.