Hi,
I am new to Rasa and Chatbot development and following the Rasa Masterclass videos from you tube on rasa version 2.2.6.
After updating the data, config and domain files as per the instructions given in videos, I ran the following command for training the model but everytime I am getting errors.
model_path = rasa.train(domain, config, [training_files], output)
I am not able to find out what is missing here and the root cause of this issue. Can anyone please respond as how to resolve this issue.
Errors:
Core model training completed. Your Rasa model is trained and saved at ‘C:\Users\Ishan.Agarwal\OneDrive - Emtec Inc\03042019\Machine Learning and Artificial Intelligence\Edureka\Module 6 Sequence Learning\Jupyter Notebooks\RASA Projects\test-project\models\20210126-132122.tar.gz’.
ParserError Traceback (most recent call last) ~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\shared\utils\io.py in read_yaml_file(filename) 367 try: –> 368 return read_yaml(read_file(filename, DEFAULT_ENCODING)) 369 except (YAMLError, DuplicateKeyError) as e:
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\shared\utils\io.py in read_yaml(content, reader_type) 348 –> 349 return yaml_parser.load(content) or {} 350
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\ruamel\yaml\main.py in load(self, stream) 342 try: –> 343 return constructor.get_single_data() 344 finally:
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\ruamel\yaml\constructor.py in get_single_data(self) 110 # Ensure that the stream contains a single document and construct it. –> 111 node = self.composer.get_single_node() 112 if node is not None:
_ruamel_yaml.pyx in _ruamel_yaml.CParser.get_single_node()
_ruamel_yaml.pyx in _ruamel_yaml.CParser._compose_document()
_ruamel_yaml.pyx in _ruamel_yaml.CParser._compose_node()
_ruamel_yaml.pyx in _ruamel_yaml.CParser._compose_mapping_node()
_ruamel_yaml.pyx in _ruamel_yaml.CParser._compose_node()
_ruamel_yaml.pyx in _ruamel_yaml.CParser._compose_sequence_node()
_ruamel_yaml.pyx in _ruamel_yaml.CParser._parse_next_event()
ParserError: while parsing a block collection in “”, line 9, column 4 did not find expected ‘-’ indicator in “”, line 17, column 5
During handling of the above exception, another exception occurred:
YamlSyntaxException Traceback (most recent call last) in 1 import rasa 2 ----> 3 model_path = rasa.train(domain, config, [training_files], output) 4 print(model_path)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, loop, model_to_finetune, finetuning_epoch_fraction) 107 finetuning_epoch_fraction=finetuning_epoch_fraction, 108 ), –> 109 loop, 110 ) 111
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\utils\common.py in run_in_loop(f, loop) 310 # Let’s also finish all running tasks: 311 pending = asyncio.Task.all_tasks() –> 312 loop.run_until_complete(asyncio.gather(*pending)) 313 314 return result
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\nest_asyncio.py in run_until_complete(self, future) 96 raise RuntimeError( 97 ‘Event loop stopped before Future completed.’) —> 98 return f.result() 99 finally: 100 self._thread_id = old_thread_id
[... skipping hidden 1 frame]
in 1 import rasa 2 ----> 3 model_path = rasa.train(domain, config, [training_files], output) 4 print(model_path)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, loop, model_to_finetune, finetuning_epoch_fraction) 107 finetuning_epoch_fraction=finetuning_epoch_fraction, 108 ), –> 109 loop, 110 ) 111
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\utils\common.py in run_in_loop(f, loop) 310 # Let’s also finish all running tasks: 311 pending = asyncio.Task.all_tasks() –> 312 loop.run_until_complete(asyncio.gather(*pending)) 313 314 return result
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\nest_asyncio.py in run_until_complete(self, future) 96 raise RuntimeError( 97 ‘Event loop stopped before Future completed.’) —> 98 return f.result() 99 finally: 100 self._thread_id = old_thread_id
[... skipping hidden 1 frame]
in 1 import rasa 2 ----> 3 model_path = rasa.train(domain, config, [training_files], output) 4 print(model_path)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, loop, model_to_finetune, finetuning_epoch_fraction) 107 finetuning_epoch_fraction=finetuning_epoch_fraction, 108 ), –> 109 loop, 110 ) 111
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\utils\common.py in run_in_loop(f, loop) 310 # Let’s also finish all running tasks: 311 pending = asyncio.Task.all_tasks() –> 312 loop.run_until_complete(asyncio.gather(*pending)) 313 314 return result
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\nest_asyncio.py in run_until_complete(self, future) 96 raise RuntimeError( 97 ‘Event loop stopped before Future completed.’) —> 98 return f.result() 99 finally: 100 self._thread_id = old_thread_id
[... skipping hidden 1 frame]
in 1 import rasa 2 ----> 3 model_path = rasa.train(domain, config, [training_files], output) 4 print(model_path)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, loop, model_to_finetune, finetuning_epoch_fraction) 107 finetuning_epoch_fraction=finetuning_epoch_fraction, 108 ), –> 109 loop, 110 ) 111
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\utils\common.py in run_in_loop(f, loop) 310 # Let’s also finish all running tasks: 311 pending = asyncio.Task.all_tasks() –> 312 loop.run_until_complete(asyncio.gather(*pending)) 313 314 return result
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\nest_asyncio.py in run_until_complete(self, future) 96 raise RuntimeError( 97 ‘Event loop stopped before Future completed.’) —> 98 return f.result() 99 finally: 100 self._thread_id = old_thread_id
[... skipping hidden 1 frame]
in 1 import rasa 2 ----> 3 model_path = rasa.train(domain, config, [training_files], output) 4 print(model_path)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, loop, model_to_finetune, finetuning_epoch_fraction) 107 finetuning_epoch_fraction=finetuning_epoch_fraction, 108 ), –> 109 loop, 110 ) 111
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\utils\common.py in run_in_loop(f, loop) 310 # Let’s also finish all running tasks: 311 pending = asyncio.Task.all_tasks() –> 312 loop.run_until_complete(asyncio.gather(*pending)) 313 314 return result
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\nest_asyncio.py in run_until_complete(self, future) 96 raise RuntimeError( 97 ‘Event loop stopped before Future completed.’) —> 98 return f.result() 99 finally: 100 self._thread_id = old_thread_id
[... skipping hidden 1 frame]
in 1 import rasa 2 ----> 3 model_path = rasa.train(domain, config, [training_files], output) 4 print(model_path)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, loop, model_to_finetune, finetuning_epoch_fraction) 107 finetuning_epoch_fraction=finetuning_epoch_fraction, 108 ), –> 109 loop, 110 ) 111
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\utils\common.py in run_in_loop(f, loop) 310 # Let’s also finish all running tasks: 311 pending = asyncio.Task.all_tasks() –> 312 loop.run_until_complete(asyncio.gather(*pending)) 313 314 return result
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\nest_asyncio.py in run_until_complete(self, future) 96 raise RuntimeError( 97 ‘Event loop stopped before Future completed.’) —> 98 return f.result() 99 finally: 100 self._thread_id = old_thread_id
[... skipping hidden 1 frame]
in 1 import rasa 2 ----> 3 model_path = rasa.train(domain, config, [training_files], output) 4 print(model_path)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, loop, model_to_finetune, finetuning_epoch_fraction) 107 finetuning_epoch_fraction=finetuning_epoch_fraction, 108 ), –> 109 loop, 110 ) 111
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\utils\common.py in run_in_loop(f, loop) 306 loop = asyncio.new_event_loop() 307 asyncio.set_event_loop(loop) –> 308 result = loop.run_until_complete(f) 309 310 # Let’s also finish all running tasks:
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\nest_asyncio.py in run_until_complete(self, future) 96 raise RuntimeError( 97 ‘Event loop stopped before Future completed.’) —> 98 return f.result() 99 finally: 100 self._thread_id = old_thread_id
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\asyncio\futures.py in result(self) 179 self.__log_traceback = False 180 if self._exception is not None: –> 181 raise self._exception 182 return self._result 183
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\asyncio\tasks.py in __step(failed resolving arguments)
247 # We use the send
method directly, because coroutines
248 # don’t have __iter__
and __next__
methods.
–> 249 result = coro.send(None)
250 else:
251 result = coro.throw(exc)
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\train.py in train_async(domain, config, training_files, output, dry_run, force_training, fixed_model_name, persist_nlu_training_data, core_additional_arguments, nlu_additional_arguments, model_to_finetune, finetuning_epoch_fraction) 150 “”" 151 file_importer = TrainingDataImporter.load_from_config( –> 152 config, domain, training_files 153 ) 154 with TempDirectoryPath(tempfile.mkdtemp()) as train_path:
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\shared\importers\importer.py in load_from_config(config_path, domain_path, training_data_paths, training_type)
82 “”“Loads a TrainingDataImporter
instance from a configuration file.”""
83
—> 84 config = rasa.shared.utils.io.read_config_file(config_path)
85 return TrainingDataImporter.load_from_dict(
86 config, config_path, domain_path, training_data_paths, training_type
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\shared\utils\io.py in read_config_file(filename) 525 filename: The path to the file which should be read. 526 “”" –> 527 content = read_yaml_file(filename) 528 529 if content is None:
~\AppData\Local\Continuum\anaconda3\envs\rasa2\lib\site-packages\rasa\shared\utils\io.py in read_yaml_file(filename) 368 return read_yaml(read_file(filename, DEFAULT_ENCODING)) 369 except (YAMLError, DuplicateKeyError) as e: –> 370 raise YamlSyntaxException(filename, e) 371 372
YamlSyntaxException: Failed to read ‘config.yml’. while parsing a block collection in “config.yml”, line 9, column 4 did not find expected ‘-’ indicator in “config.yml”, line 17, column 5
You can use https://yamlchecker.com/ to validate the YAML syntax of your file.