code: def run(args: argparse.Namespace) -> None:
      """Entrypoint for `rasa run`.
  
      Args:
          args: The CLI arguments.
      """
      import rasa
  
      args.endpoints = rasa.cli.utils.get_validated_path(
          args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True
      )
      args.credentials = rasa.cli.utils.get_validated_path(
          args.credentials,
          "credentials",
          DEFAULT_CREDENTIALS_PATH,
          True,
      )
  
      if args.enable_api:
          if not args.remote_storage:
              args.model = _validate_model_path(
                  args.model, "model", DEFAULT_MODELS_PATH
              )
          rasa.run(**vars(args))
          return
  
      # if the API is not enable you cannot start without a model
      # make sure either a model server, a remote storage, or a local model is
      # configured
  
      import rasa.model
      from rasa.core.utils import AvailableEndpoints
  
      # start server if remote storage is configured
      if args.remote_storage is not None:
          rasa.run(**vars(args))
          return
  
      # start server if model server is configured
      endpoints = AvailableEndpoints.read_endpoints(args.endpoints)
      model_server = (
          endpoints.model if endpoints and endpoints.model else None
      )
      if model_server is not None:
          rasa.run(**vars(args))
          return
  
      # start server if local model found
      args.model = _validate_model_path(
          args.model, "model", DEFAULT_MODELS_PATH
      )
      local_model_set = True
      try:
          rasa.model.get_local_model(args.model)
      except ModelNotFound:
          local_model_set = False
  
      if local_model_set:
          rasa.run(**vars(args))
          return
  
      rasa.shared.utils.cli.print_error(
          f"No model found. You have three options to provide a model:\n"
          f"1. Configure a model server in the endpoint configuration and provide "
          f"the configuration via '--endpoints'.\n"
          f"2. Specify a remote storage via '--remote-storage' to load the model "
          f"from.\n"
          f"3. Train a model before running the server using `rasa train` and "
          f"use '--model' to provide the model path.\n"
          f"For more information check {DOCS_BASE_URL}/model-storage."
      )
  
file_path: rasa/rasa/cli/run.py
imports: import argparse
  import logging
  import os
  from typing import List, Text
  from rasa.cli import SubParsersAction
  from rasa.cli.arguments import run
  from rasa.shared.constants import DOCS_BASE_URL, DEFAULT_ENDPOINTS_PATH, DEFAULT_CREDENTIALS_PATH, DEFAULT_ACTIONS_PATH, DEFAULT_MODELS_PATH
  from rasa.exceptions import ModelNotFound
label_desc: Use image node_id 4 for calling a global function with example usage: run(args) without return types