Each DeepPavlov model can be easily made available for inference as a REST web service. The general method is:
python -m deeppavlov riseapi <config_path> [-d] [-p <port>]
-d
: downloads model specific data before starting the service.-p <port>
: sets the port to<port>
. Overrides default settings fromdeeppavlov/utils/settings/server_config.json
.
The command will print the used host and port. Default web service properties
(host, port, model endpoint, GET request arguments) can be modified via changing
deeppavlov/utils/settings/server_config.json
file.
To interact with the REST API via graphical interface open
<host>:<port>/apidocs
in a browser (Flasgger UI).
By modifying deeppavlov/utils/settings/server_config.json
you can change
host, port, model endpoint, GET request arguments and other properties of the
API service.
Properties from common_defaults
section are used by default unless
they are overridden by model-specific properties, provided in
model_defaults
section of the server_config.json
.
Model-specific properties are bound to the model by
server_utils
label in metadata/labels
section of the model
config. Value of server_utils
label from model config should
match with properties key from model_defaults
section of
server_config.json
.
For example, metadata/labels/server_utils
tag from
go_bot/gobot_dstc2.json
references to the GoalOrientedBot section
of server_config.json
. Therefore, model_endpoint
parameter in
common_defaults
will be will be overridden with the same parameter
from model_defaults/GoalOrientedBot
.
Model argument names are provided as list in model_args_names
parameter, where arguments order corresponds to model API.
When inferencing model via REST api, JSON payload keys should match
model arguments names from model_args_names
.
Default argument name for one argument models is "context".
Here are POST requests examples for some of the library models:
Model | POST request JSON payload example |
---|---|
One argument models | |
NER model | {"context":["Elon Musk launched his cherry Tesla roadster to the Mars orbit"]} |
Intent classification model | {"context":["I would like to go to a restaurant with Asian cuisine this evening"]} |
Automatic spelling correction model | {"context":["errror"]} |
Ranking model | {"context":["What is the average cost of life insurance services?"]} |
Goal-oriented bot | {"context":["Hello, can you help me to find and book a restaurant this evening?"]} |
Multiple arguments models | |
Question Answering model | {"context":["After 1765, growing philosophical and political differences strained the relationship between Great Britain and its colonies."],
"question":["What strained the relationship between Great Britain and its colonies?"]}
|