Hi all
Docker version: Docker version 18.06.1-ce, build e68fc7a
Rasa NLU version: rasa-nlu 0.13.7
My root directory: /root/rasa_nlu
My dir structure:
.
├── actions.py
├── components
│ ├── __init__.py
│ └── stanford
│ ├── com_stanford_nlp.py
│ ├── __init__.py
├── config
│ └── config_nlu.yml
├── log
│ ├── stanford_nlp.log
│ └── stanford_nlp.log.2018-11-09
├── projects
│ └── company_a
│ ├── config.yml
│ ├── data
│ │ └── data.json
│ └── models
│ └── default
│ └── en
│ ├── metadata.json
│ └── training_data.json
├── README.md
└── requirements.txt
My config/config_nlu.yml
content:
language: "en"
pipeline:
- name: "components.stanford.com_stanford_nlp.Stanford_NLP"
project_name: "company_a"
Here is the error message: Problem with command (copied from Development with Docker):
- Config file not found:
docker run -v /root/rasa_nlu/:/app/project -v /root/rasa_nlu/projects/company_a/models/:/app/models rasa/rasa_nlu:latest-tensorflow run python -m rasa_nlu.train -d projects/company_a/data/data.json -o projects/company_a/models/ --project current -c config/config_nlu.yml
Traceback (most recent call last):
File "/usr/local/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/local/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/app/rasa_nlu/train.py", line 177, in <module>
do_train(config.load(cmdline_args.config),
File "/app/rasa_nlu/config.py", line 44, in load
file_config = utils.read_yaml_file(filename)
File "/app/rasa_nlu/utils/__init__.py", line 256, in read_yaml_file
return read_yaml(read_file(filename, "utf-8"))
File "/app/rasa_nlu/utils/__init__.py", line 205, in read_file
with io.open(filename, encoding=encoding) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'config/config_nlu.yml'
If I change -c config/config_nlu.yml
to -c /app/project/config/config_nlu.yml
. It works, BUT! There is another problem:
docker run -v /root/rasa_nlu/:/app/project -v /root/rasa_nlu/projects/company_a/models/:/app/models rasa/rasa_nlu:latest-tensorflow run python -m rasa_nlu.train -d projects/company_a/data/data.json -o projects/company_a/models/ --project current -c /app/project/config/config_nlu.yml
Traceback (most recent call last):
File "/app/rasa_nlu/registry.py", line 110, in get_component_class
return utils.class_from_module_path(component_name)
File "/app/rasa_nlu/utils/__init__.py", line 175, in class_from_module_path
m = importlib.import_module(module_name)
File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'components'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/local/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/app/rasa_nlu/train.py", line 184, in <module>
num_threads=cmdline_args.num_threads)
File "/app/rasa_nlu/train.py", line 148, in do_train
trainer = Trainer(cfg, component_builder)
File "/app/rasa_nlu/model.py", line 152, in __init__
components.validate_requirements(cfg.component_names)
File "/app/rasa_nlu/components.py", line 54, in validate_requirements
component_class = registry.get_component_class(component_name)
File "/app/rasa_nlu/registry.py", line 119, in get_component_class
"in a module.".format(component_name))
Exception: Failed to find component class for 'components.stanford.com_stanford_nlp.Stanford_NLP'. Unknown component name. Check your configured pipeline and make sure the mentioned component is not misspelled. If you are creating your own component, make sure it is either listed as part of the `component_classes` in `rasa_nlu.registry.py` or is a proper name of a class in a module.
The component file content com_stanford_nlp.py
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from rasa_nlu.components import Component
import logging
class Stanford_NLP(Component):
name = "stanford_nlp"
provides = []
requires = []
defaults = {}
language_list = None
def __init__(self, component_config=None):
super(Stanford_NLP, self).__init__(component_config)
...
Can anyone please tell me what’s wrong with this?
Thank you very much in advance for all your help.