async def start_training_process( self, team: Text = config.team_name, project_id: Text = config.project_name) -> Any: url = "/model/train" nlu_training_data = self.data_service.get_nlu_training_data_object( should_include_lookup_table_entries=True, ) responses: Optional[Dict] = None if self.data_service.training_data_contains_retrieval_intents( nlu_training_data): try: from rasa.utils import io as io_utils responses = io_utils.read_yaml(self._get_responses_file_name()) except ValueError as e: rasa_cli_utils.print_error( "Could not complete training request as your training data contains " "retrieval intents of the form 'intent/response_key' but there is no " "responses file found.") raise ValueError( f"Unable to train on data containing retrieval intents. " f"Details:\n{e}") nlu_training_data = nlu_training_data.filter_training_examples( lambda ex: ex.get(RESPONSE_KEY_ATTRIBUTE) is None) md_formatted_data = nlu_training_data.nlu_as_markdown().strip() stories = self.story_services.fetch_stories(None) combined_stories = self.story_services.get_stories_markdown(stories) domain = self.domain_service.get_or_create_domain() domain_yaml = dump_obj_as_yaml_to_string(domain) _config = self.settings_service.get_config(team, project_id) config_yaml = dump_obj_as_yaml_to_string(_config) payload = dict( domain=domain_yaml, config=config_yaml, nlu=md_formatted_data, stories=combined_stories, responses=dump_obj_as_yaml_to_string(responses), force=False, save_to_default_model_directory=False, ) async with self._session() as session: response = await session.post( self._request_url(url), params=self._query_parameters(), json=payload, timeout=24 * 60 * 60, # 24 hours ) return await response.read()
def as_yaml(self, clean_before_dump=False): if clean_before_dump: domain_data = self.cleaned_domain() else: domain_data = self.as_dict() return utils.dump_obj_as_yaml_to_string(domain_data)
def as_yaml(self): domain_data = self.as_dict() return utils.dump_obj_as_yaml_to_string(domain_data)