In 2017, we developed a Java framework for building smart chat bots to explore the trending technology. The framework provides a bunch of abstractions and allows developers to concentrate on implementation of business logic. The behavior logic is split into independent components. Users can create different sets of bot replies, randomly rotate answers for the same input, and setup different reply styles to simulate different… bot “characters”.
We wanted to use chatbots within the existing infrastructure, avoiding deploying any cloud-based solutions due to internal security policy. At that time, the existing solutions did not match our requirements and limitations, so it was decided to develop our own.
We used our framework to create a couple of internal solutions. One of them helped engineers with their time tracking. This chatbot was integrated into our company RocketChat. People would write text in a free form in a dedicated chat room, like “Today I spent 2 hours developing my component X”. The chatbot would analyze and fill all this data into the proper spreadsheet for further analysis. Another solution was built to manage our complex virtual machines', cluster which we use to support development infrastructure for one of our customers. Team members could ask the chat bot and get info whether a specific virtual machine was up and running, display the list of virtual machines, and the list of available IPs reserved for them.
Both solutions were in use for a year until replaced by modern versions of respective apps.