I developed a process and app for creating and deploying chatbots for support and question answering purposes for Novetta. This solution focused on practicality including minimizing the dataset needed, minimizing training/retraining needed, eliminating the need to retrain if policies change, and empowering domain experts to expand and improve the responses of without requiring a ML engineer for every tweak.
This approach was built on the sentence transformer (siamese BERT) architecture and the core machine learning technology was semantic similarity. I built it using dash, but any deployment method could be used (slack bot, email bot, web app, etc.)
To read the blog post click here
Note: I believe this approach is still valid today as of 2024. The more common approach today would be to use an LLM, and pull in the answer to the prompt (RAG) to let the LLM generate a response rather than using a fixed set of responses. However, in some cases it is advantageous to have vetted responses with no risk of halucination.