code: def load_predict_graph_runner(
      storage_path: Path,
      model_archive_path: Path,
      model_storage_class: Type[ModelStorage],
      graph_runner_class: Type[GraphRunner],
  ) -> Tuple[ModelMetadata, GraphRunner]:
      """Loads a model from an archive and creates the prediction graph runner.
  
      Args:
          storage_path: Directory which contains the persisted graph components.
          model_archive_path: The path to the model archive.
          model_storage_class: The class to instantiate the model storage from.
          graph_runner_class: The class to instantiate the runner from.
  
      Returns:
          A tuple containing the model metadata and the prediction graph runner.
      """
      (
          model_storage,
          model_metadata,
      ) = model_storage_class.from_model_archive(
          storage_path=storage_path,
          model_archive_path=model_archive_path,
      )
      runner = graph_runner_class.create(
          graph_schema=model_metadata.predict_schema,
          model_storage=model_storage,
          execution_context=ExecutionContext(
              graph_schema=model_metadata.predict_schema,
              model_id=model_metadata.model_id,
          ),
      )
      return model_metadata, runner
  
imports: from pathlib import Path
  from typing import Tuple, Type
  from rasa.engine.graph import ExecutionContext
  from rasa.engine.runner.interface import GraphRunner
  from rasa.engine.storage.storage import ModelMetadata, ModelStorage
label_desc: Use image node_id 1 for calling a global function with example usage: load_predict_graph_runner(storage_path, model_archive_path, model_storage_class, graph_runner_class) and returns: model_metadata,  runner