2.0-alpha: Merge pull request #78 from deepmipt/dev
Briefly
- New configuration.
- New launch script.
- Current documentation is outdated.
Config refactoring
- Pipeline config in
.json
or.yml
format. - Explicit configuration of pipeline graph.
- Explicit configuration of state manager method, used for service response saving.
- Explicit configuration of dialog (format dialog for service) and response (format service response in order to save in dialog state).
- Database config in
.json
or.yml
format.
Pipeline refactoring
- Pipeline graph is now fully customizable via a config file.
- It is possible to set a
previous_services
parameter in the service configuration part. These services should be skipped or responded with or without an error (at least one of them should return correct response) in order to send a request to the service.- Example: in a response selector service you can put all services that return hypotheses (potential bot response to user utterance).
- It is possible to set-up a
required_previous_services
parameter in the service configuration part. These services should return a correct response in order to send request to the service.- Example: a service is relied on another service response (like some model requires annotations, provided by another model). In that case required previous services.
- Check for cycles in pipeline graph.
Formatter refactoring
- Formatters are now divided into dialog (send to service) and response (receive from service) formatters.
- Dialog formatter should return a list of samples. Each of the samples represents a single task in a format that matches input structure of the service.
Agent refactoring
- Agent can create multiple tasks from one dialog. It can be useful in case you want to annotate all hypotheses before response selector, or other similar ones.
- Last chance service is introduced. It runs if an agent cannot continue processing an input utterance. For instance after crucial number of services were skipped or responded with error.
- Timeout service is introduced. It runs if
deadline_timestamp
is presented and processing time tooks more than that timestamp.