Skip to content

Latest commit

 

History

History
72 lines (58 loc) · 5.76 KB

rest_api.rst

File metadata and controls

72 lines (58 loc) · 5.76 KB

REST API

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 from deeppavlov/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).

Advanced configuration

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?"]}