code: def _save_runnable_branch(model, file_path, loader_fn, persist_dir):
      """
      save runnable branch in to path.
      """
      save_path = (
          Path(file_path) if isinstance(file_path, str) else file_path
      )
      save_path.mkdir(parents=True, exist_ok=True)
      # save branches into a folder
      branches_path = save_path / _BRANCHES_FOLDER_NAME
      branches_path.mkdir()
  
      unsaved_runnables = {}
      branches_conf = {}
      for index, branch_tuple in enumerate(model.branches):
          # Save each branch into a subfolder named by index
          # and save condition and runnable into subfolder
          for i, runnable in enumerate(branch_tuple):
              save_runnable_path = branches_path / str(index) / str(i)
              save_runnable_path.mkdir(parents=True)
              branches_conf[f"{index}-{i}"] = {}
  
              if result := _save_internal_runnables(
                  runnable, save_runnable_path, loader_fn, persist_dir
              ):
                  branches_conf[f"{index}-{i}"] = result
              else:
                  unsaved_runnables[f"{index}-{i}"] = str(runnable)
  
      # save default branch
      default_branch_path = branches_path / _DEFAULT_BRANCH_NAME
      default_branch_path.mkdir()
      if result := _save_internal_runnables(
          model.default, default_branch_path, loader_fn, persist_dir
      ):
          branches_conf[_DEFAULT_BRANCH_NAME] = result
      else:
          unsaved_runnables[_DEFAULT_BRANCH_NAME] = str(model.default)
  
      if unsaved_runnables:
          raise MlflowException(
              f"Failed to save runnable branch: {unsaved_runnables}. "
              "Runnable must have either `save` or `dict` method."
          )
  
      # save branches configs
      with save_path.joinpath(_RUNNABLE_BRANCHES_FILE_NAME).open(
          "w"
      ) as f:
          yaml.dump(branches_conf, f, default_flow_style=False)
  
file_path: mlflow/mlflow/langchain/runnables.py
imports: import os
  from pathlib import Path
  from typing import Union
  import cloudpickle
  import yaml
  from mlflow.exceptions import MlflowException
  from mlflow.langchain.utils import _BASE_LOAD_KEY, _CONFIG_LOAD_KEY, _MODEL_DATA_FOLDER_NAME, _MODEL_DATA_KEY, _MODEL_DATA_PKL_FILE_NAME, _MODEL_DATA_YAML_FILE_NAME, _MODEL_LOAD_KEY, _MODEL_TYPE_KEY, _RUNNABLE_LOAD_KEY, _UNSUPPORTED_MODEL_ERROR_MESSAGE, _load_base_lcs, _load_from_json, _load_from_pickle, _load_from_yaml, _save_base_lcs, _validate_and_wrap_lc_model, base_lc_types, custom_type_to_loader_dict, lc_runnable_branch_type, lc_runnable_with_steps_types, lc_runnables_types, picklable_runnable_types
label_desc: Use image node_id 8 for calling a global function with example usage: _save_runnable_branch(model, file_path, loader_fn, persist_dir) without return types