Dialogue Reader
Dialogue Readers are designed for preprocessing the raw user inputs along with the dialogue history. The dialogue can either be texts or images and they are loaded in a unified approach. We provide a number of classes inherited from \texttt{BaseReader} and users can choose which utterance reader to use depending on different task requirements.
Knowledge Retriever
Knowledge Retrievers are designed to modularize the knowledge incorporating process to build plug-and-play modules. Knowledge can be obtained by analyzing the user utterance or using it as a search query. We implement various knowledge Retrievers to acquire different kinds of knowledge, such as unstructured knowledge, structured knowledge and multimodal knowledge. They should be included in Processor class based on user need. Utterance readers and corresponding processors make up the whole data processing procedure.
Response Generator
Given the aforementioned user utterances and the retrieved knowledge, response generators are required to fuse the features and generate appropriate responses while satisfying the need of dialogue safety and being empathetic. Various models featuring different aforementioned aspects are available and they have a unified interface for training, evaluating and prediction.
Core Framework
Some utilities facilitating the training and evaluation process are available. Trainer class is responsible for single-GPU model training, distributed model training, loss recording and checkpoint saving. Evaluator class is designed to evaluate the given model using different provided metrics. Toolkit class offers the interaction surface with users given a trained model. Loss, Metric and Logger are convenient modules supporting the loss function calculating, evaluation metric computing and results logging. The data storage form is provided by Datable and Datableset.