code: def train(
      domain: "Text",
      config: "Text",
      training_files: "Union[Text, List[Text]]",
      output: "Text" = rasa.shared.constants.DEFAULT_MODELS_PATH,
      dry_run: bool = False,
      force_training: bool = False,
      fixed_model_name: "Optional[Text]" = None,
      persist_nlu_training_data: bool = False,
      core_additional_arguments: "Optional[Dict]" = None,
      nlu_additional_arguments: "Optional[Dict]" = None,
      model_to_finetune: "Optional[Text]" = None,
      finetuning_epoch_fraction: float = 1.0,
  ) -> "TrainingResult":
      """Runs Rasa Core and NLU training in `async` loop.
  
      Args:
          domain: Path to the domain file.
          config: Path to the config for Core and NLU.
          training_files: Paths to the training data for Core and NLU.
          output: Output path.
          dry_run: If `True` then no training will be done, and the information about
              whether the training needs to be done will be printed.
          force_training: If `True` retrain model even if data has not changed.
          fixed_model_name: Name of model to be stored.
          persist_nlu_training_data: `True` if the NLU training data should be persisted
              with the model.
          core_additional_arguments: Additional training parameters for core training.
          nlu_additional_arguments: Additional training parameters forwarded to training
              method of each NLU component.
          model_to_finetune: Optional path to a model which should be finetuned or
              a directory in case the latest trained model should be used.
          finetuning_epoch_fraction: The fraction currently specified training epochs
              in the model configuration which should be used for finetuning.
  
      Returns:
          An instance of `TrainingResult`.
      """
      from rasa.model_training import train
  
      return train(
          domain=domain,
          config=config,
          training_files=training_files,
          output=output,
          dry_run=dry_run,
          force_training=force_training,
          fixed_model_name=fixed_model_name,
          persist_nlu_training_data=persist_nlu_training_data,
          core_additional_arguments=core_additional_arguments,
          nlu_additional_arguments=nlu_additional_arguments,
          model_to_finetune=model_to_finetune,
          finetuning_epoch_fraction=finetuning_epoch_fraction,
      )
  
imports: from typing import Any, Text, Dict, Union, List, Optional, TYPE_CHECKING
  import rasa.shared.constants
label_desc: Use image node_id 2 for calling a global function with example usage: train(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) and returns: train