Example #1
0
File: test.py Project: delldu/Rasa
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))
Example #2
0
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))
Example #3
0
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)
Example #4
0
def test(args: argparse.Namespace):
    test_core(args)
    test_nlu(args)
Example #5
0
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)
Example #6
0
def test_nlu_model():
    nlu_data = DEFAULT_DATA_PATH + "/nlu"
    test_nlu(DEFAULT_MODELS_PATH, nlu_data, {})
Example #7
0
def test_nlu_model():
    test_nlu(DEFAULT_MODELS_PATH, DEFAULT_DATA_PATH, {})