I have custom slots that work fine in Rasa (version 2.3.1). I followed the docs on Custom Slot Types (found here: Domain) and made sure that my directory structure matches the one detailed in the docs example.
├── actions
│ ├── __init__.py
│ └── actions.py
├── addons
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-37.pyc
│ │ └── estimate_slot.cpython-37.pyc
│ └── estimate_slot.py
├── config.yml
├── credentials.yml
├── data
│ ├── lookup.yml
│ ├── nlu.yml
│ ├── rules.yml
│ └── stories.yml
├── domain.yml
├── endpoints.yml
├── poetry.lock
├── pyproject.toml
└── tests
└── test_stories.yml
Also, my addons are referenced with a module path exactly as the ones suggested in the docs. For example:
type: addons.estimate_slot.Estimate
… where Estimate
is my custom Slot class class Estimate(Slot):
However, this is not working on my Rasa-X server. Whenever I push any code with my addon custom slots or try to load a branch using my custom slot types, Rasa-X refuses to update and I get this error in the rasa_x
container when it raises an exception:
ModuleNotFoundError: No module named ‘addons’
This prevents the changes appearing on Rasa-X and it thus (obviously) refuses to train a new model.
Please let me know if I missed something or if my structure looks off.