text: import argparse
  import uuid
  
  import rasa.cli.arguments.default_arguments
  import rasa.cli.arguments.train
  import rasa.cli.arguments.run
  
  
  def set_interactive_arguments(parser: argparse.ArgumentParser) -> None:
      """Specifies arguments for `rasa interactive`."""
      parser.add_argument(
          "--e2e",
          action="store_true",
          help="Save story files in e2e format. In this format user messages "
          "will be included in the stories.",
      )
      rasa.cli.arguments.run.add_port_argument(parser)
  
      rasa.cli.arguments.default_arguments.add_model_param(parser, default=None)
      rasa.cli.arguments.train.add_data_param(parser)
  
      _add_common_params(parser)
      train_arguments = _add_training_arguments(parser)
  
      rasa.cli.arguments.train.add_force_param(train_arguments)
      rasa.cli.arguments.train.add_persist_nlu_data_param(train_arguments)
  
  
  def set_interactive_core_arguments(parser: argparse.ArgumentParser) -> None:
      """Specifies arguments for `rasa interactive core`."""
      rasa.cli.arguments.default_arguments.add_model_param(
          parser, model_name="Rasa Core", default=None
      )
      rasa.cli.arguments.default_arguments.add_stories_param(parser)
  
      _add_common_params(parser)
      _add_training_arguments(parser)
      rasa.cli.arguments.run.add_port_argument(parser)
  
  
  def _add_common_params(parser: argparse.ArgumentParser) -> None:
      parser.add_argument(
          "--skip-visualization",
          default=False,
          action="store_true",
          help="Disable plotting the visualization during interactive learning.",
      )
  
      parser.add_argument(
          "--conversation-id",
          default=uuid.uuid4().hex,
          help="Specify the id of the conversation the messages are in. Defaults to a "
          "UUID that will be randomly generated.",
      )
  
      rasa.cli.arguments.default_arguments.add_endpoint_param(
          parser,
          help_text="Configuration file for the model server and the connectors as a yml file.",
      )
  
  
  # noinspection PyProtectedMember
  def _add_training_arguments(parser: argparse.ArgumentParser) -> argparse._ArgumentGroup:
      train_arguments = parser.add_argument_group("Train Arguments")
      rasa.cli.arguments.train.add_config_param(train_arguments)
      rasa.cli.arguments.default_arguments.add_domain_param(train_arguments)
      rasa.cli.arguments.train.add_out_param(
          train_arguments, help_text="Directory where your models should be stored."
      )
      rasa.cli.arguments.train.add_augmentation_param(train_arguments)
      rasa.cli.arguments.train.add_debug_plots_param(train_arguments)
      rasa.cli.arguments.train.add_finetune_params(train_arguments)
      return train_arguments
  