def test_pass_conversation_id_to_interactive_learning( monkeypatch: MonkeyPatch): from rasa.core.train import do_interactive_learning from rasa.core.training import interactive as interactive_learning parser = argparse.ArgumentParser() sub_parser = parser.add_subparsers() interactive.add_subparser(sub_parser, []) expected_conversation_id = "🎁" args = parser.parse_args([ "interactive", "--conversation-id", expected_conversation_id, "--skip-visualization", ]) _serve_application = Mock() monkeypatch.setattr(interactive_learning, "_serve_application", _serve_application) do_interactive_learning(args, Mock()) _serve_application.assert_called_once_with(ANY, ANY, True, expected_conversation_id, 5005)
def perform_interactive_learning( args: argparse.Namespace, zipped_model: Text, file_importer: TrainingDataImporter ) -> None: """Performs interactive learning. Args: args: Namespace arguments. zipped_model: Path to zipped model. file_importer: File importer which provides the training data and model config. """ from rasa.core.train import do_interactive_learning args.model = zipped_model metadata = LocalModelStorage.metadata_from_archive(zipped_model) if metadata.training_type == TrainingType.NLU: rasa.shared.utils.cli.print_error_and_exit( "Can not run interactive learning on an NLU-only model." ) args.endpoints = rasa.cli.utils.get_validated_path( args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True ) do_interactive_learning(args, file_importer)
def perform_interactive_learning( args: argparse.Namespace, zipped_model: Text, file_importer: TrainingDataImporter ) -> None: """Performs interactive learning. Args: args: Namespace arguments. zipped_model: Path to zipped model. file_importer: File importer which provides the training data and model config. """ from rasa.core.train import do_interactive_learning args.model = zipped_model with model.unpack_model(zipped_model) as model_path: args.core, args.nlu = model.get_model_subdirectories(model_path) if args.core is None: rasa.shared.utils.cli.print_error_and_exit( "Can not run interactive learning on an NLU-only model." ) args.endpoints = rasa.cli.utils.get_validated_path( args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True ) do_interactive_learning(args, file_importer)
def interactive(args: argparse.Namespace): from rasa.core.train import do_interactive_learning args.finetune = False # Don't support finetuning zipped_model = train.train(args) model_path = model.unpack_model(zipped_model) args.core, args.nlu = model.get_model_subdirectories(model_path) stories_directory = data.get_core_directory(args.data) do_interactive_learning(args, stories_directory) shutil.rmtree(model_path)
def perform_interactive_learning(args, zipped_model): from rasa.core.train import do_interactive_learning if zipped_model: model_path = model.unpack_model(zipped_model) args.core, args.nlu = model.get_model_subdirectories(model_path) stories_directory = data.get_core_directory(args.data) do_interactive_learning(args, stories_directory) shutil.rmtree(model_path) else: print_warning("No initial zipped trained model found.")
def perform_interactive_learning(args, zipped_model): from rasa.core.train import do_interactive_learning if zipped_model and os.path.exists(zipped_model): args.model = zipped_model with model.unpack_model(zipped_model) as model_path: args.core, args.nlu = model.get_model_subdirectories(model_path) stories_directory = data.get_core_directory(args.data) do_interactive_learning(args, stories_directory) else: print_error( "Interactive learning process cannot be started as no initial model was " "found. Use 'rasa train' to train a model.")
def perform_interactive_learning(args, zipped_model): from rasa.core.train import do_interactive_learning if zipped_model and os.path.exists(zipped_model): args.model = zipped_model model_path = model.unpack_model(zipped_model) args.core, args.nlu = model.get_model_subdirectories(model_path) stories_directory = data.get_core_directory(args.data) do_interactive_learning(args, stories_directory) shutil.rmtree(model_path) else: print_error( "No initial zipped trained model found. Interactive learning process " "cannot be started.")
def perform_interactive_learning(args: argparse.Namespace, zipped_model: Text, file_importer: TrainingDataImporter) -> None: from rasa.core.train import do_interactive_learning args.model = zipped_model with model.unpack_model(zipped_model) as model_path: args.core, args.nlu = model.get_model_subdirectories(model_path) if args.core is None: utils.print_error_and_exit( "Can not run interactive learning on an NLU-only model.") args.endpoints = utils.get_validated_path(args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True) do_interactive_learning(args, file_importer)