In version 0.0.6 everything from package
deeppavlov.skills.pattern_matching_skill was moved to
deeppavlov.models so your imports might break
Import key components to build HelloBot.
from deeppavlov.core.agent import Agent, HighestConfidenceSelector from deeppavlov.skills.pattern_matching_skill import PatternMatchingSkill
Create skills as pre-defined responses for a user’s input containing specific keywords. Every skill returns response and confidence.
hello = PatternMatchingSkill(responses=['Hello world! :)'], patterns=["hi", "hello", "good day"]) bye = PatternMatchingSkill(['Goodbye world! :(', 'See you around.'], ["bye", "chao", "see you"]) fallback = PatternMatchingSkill(["I don't understand, sorry :/", 'I can say "Hello world!" 8)'])
Agent executes skills and then takes response from the skill with the highest confidence.
HelloBot = Agent([hello, bye, fallback], skills_selector=HighestConfidenceSelector())
Give the floor to the HelloBot!
print(HelloBot(['Hello!', 'Boo...', 'Bye.']))
|Named Entity Recognition||Slot filling|
|Intent/Sentence Classification||Sentence Similarity/Ranking|
|Morphological tagging||Automatic Spelling Correction|
|Goal(Task)-oriented Bot||Seq2seq Goal-Oriented bot|
Currently we support only
Linux platform and
Python 3.6 (
Python 3.5 is not supported!)
pip install deeppavlov
Demo of selected features is available at demo.ipavlov.ai
To use our pre-trained models, you should first install their requirements:
python -m deeppavlov install <path_to_config>
Then download the models and data for them:
python -m deeppavlov download <path_to_config>
or you can use additional key
-d to automatically download all required models and data with any command like
Then you can interact with the models or train them with the following command:
python -m deeppavlov <mode> <path_to_config> [-d]
<path_to_config>should be a path to an NLP pipeline json config (e.g.
deeppavlov/configs/ner/slotfill_dstc2.json) or a name without the
.jsonextension of one of the config files provided in this repository (e.g.
interactbot mode you should specify Telegram bot token in
-t parameter or in
TELEGRAM_TOKEN environment variable. Also if you want to get custom
/help Telegram messages for the running model you should:
utils/telegram_utils/model_info.jsonwith your custom Telegram messages
metadata.labels.telegram_utilsparameter with name which refers to the added section of
riseapi mode you should specify api settings (host, port, etc.) in utils/server_utils/server_config.json configuration file. If provided, values from model_defaults section override values for the same parameters from common_defaults section. Model names in model_defaults section should be similar to the class names of the models main component.
predict you can specify path to input file with
--input-file parameter, otherwise, data will be taken
Every line of input text will be used as a pipeline input parameter, so one example will consist of as many lines, as many input parameters your pipeline expects.
You can also specify batch size with
Jupyter notebooks and videos explaining how to use DeepPalov for different tasks can be found in /examples/tutorials/
DeepPavlov is Apache 2.0 - licensed.
If you have any questions, bug reports or feature requests, please feel free to post on our Github Issues page. Please tag your issue with
feature request, or
question. Also we’ll be glad to see your pull requests to add new datasets, models, embeddings, etc.