def test_nlu(args: argparse.Namespace) -> None: from rasa import data from rasa.test import compare_nlu_models, perform_nlu_cross_validation, test_nlu nlu_data = cli_utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH) nlu_data = data.get_nlu_directory(nlu_data) output = args.out or DEFAULT_RESULTS_PATH io_utils.create_directory(output) if args.config is not None and len(args.config) == 1: args.config = os.path.abspath(args.config[0]) if os.path.isdir(args.config): config_dir = args.config config_files = os.listdir(config_dir) args.config = [ os.path.join(config_dir, os.path.abspath(config)) for config in config_files ] if isinstance(args.config, list): logger.info( "Multiple configuration files specified, running nlu comparison mode." ) config_files = [] for file in args.config: try: validation_utils.validate_yaml_schema( io_utils.read_file(file), CONFIG_SCHEMA_FILE, show_validation_errors=False, ) config_files.append(file) except validation_utils.InvalidYamlFileError: logger.debug( "Ignoring file '{}' as it is not a valid config file.". format(file)) continue compare_nlu_models( configs=config_files, nlu=nlu_data, output=output, runs=args.runs, exclusion_percentages=args.percentages, ) elif args.cross_validation: logger.info("Test model using cross validation.") config = cli_utils.get_validated_path(args.config, "config", DEFAULT_CONFIG_PATH) perform_nlu_cross_validation(config, nlu_data, output, vars(args)) else: model_path = cli_utils.get_validated_path(args.model, "model", DEFAULT_MODELS_PATH) test_nlu(model_path, nlu_data, output, vars(args))
def run_nlu_test(args: argparse.Namespace) -> None: """Run NLU tests.""" from rasa.test import compare_nlu_models, perform_nlu_cross_validation, test_nlu nlu_data = rasa.cli.utils.get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH) nlu_data = rasa.shared.data.get_nlu_directory(nlu_data) output = args.out or DEFAULT_RESULTS_PATH args.errors = not args.no_errors rasa.shared.utils.io.create_directory(output) if args.config is not None and len(args.config) == 1: args.config = os.path.abspath(args.config[0]) if os.path.isdir(args.config): args.config = rasa.shared.utils.io.list_files(args.config) if isinstance(args.config, list): logger.info( "Multiple configuration files specified, running nlu comparison mode." ) config_files = [] for file in args.config: try: validation_utils.validate_yaml_schema( rasa.shared.utils.io.read_file(file), CONFIG_SCHEMA_FILE, show_validation_errors=False, ) config_files.append(file) except validation_utils.InvalidYamlFileError: logger.debug( f"Ignoring file '{file}' as it is not a valid config file." ) continue compare_nlu_models( configs=config_files, nlu=nlu_data, output=output, runs=args.runs, exclusion_percentages=args.percentages, ) elif args.cross_validation: logger.info("Test model using cross validation.") config = rasa.cli.utils.get_validated_path(args.config, "config", DEFAULT_CONFIG_PATH) perform_nlu_cross_validation(config, nlu_data, output, vars(args)) else: model_path = rasa.cli.utils.get_validated_path(args.model, "model", DEFAULT_MODELS_PATH) test_nlu(model_path, nlu_data, output, vars(args))
def test_nlu(args: argparse.Namespace) -> None: from rasa.test import test_nlu, test_nlu_with_cross_validation model_path = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH) nlu_data = get_validated_path(args.nlu, "nlu", DEFAULT_DATA_PATH) nlu_data = data.get_nlu_directory(nlu_data) if model_path: test_nlu(model_path, nlu_data, vars(args)) else: print ("No model specified. Model will be trained using cross validation.") config = get_validated_path(args.config, "config", DEFAULT_CONFIG_PATH) test_nlu_with_cross_validation(config, nlu_data, args.folds)
def test(args: argparse.Namespace): test_core(args) test_nlu(args)
def test(args: argparse.Namespace): model_path = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH) unpacked_model = get_model(model_path) test_core(args, unpacked_model) test_nlu(args, unpacked_model)
def test_nlu_model(): nlu_data = DEFAULT_DATA_PATH + "/nlu" test_nlu(DEFAULT_MODELS_PATH, nlu_data, {})
def test_nlu_model(): test_nlu(DEFAULT_MODELS_PATH, DEFAULT_DATA_PATH, {})