code: def score_model_on_payload(model_uri, payload, eval_parameters=None):
      """Call the model identified by the given uri with the given payload."""
  
      if eval_parameters is None:
          eval_parameters = {}
      prefix, suffix = _parse_model_uri(model_uri)
  
      if prefix == "openai":
          return _call_openai_api(suffix, payload, eval_parameters)
      elif prefix == "gateway":
          return _call_gateway_api(suffix, payload, eval_parameters)
      elif prefix == "endpoints":
          return _call_deployments_api(suffix, payload, eval_parameters)
      elif prefix in ("model", "runs"):
          # TODO: call _load_model_or_server
          raise NotImplementedError
      else:
          raise MlflowException(
              f"Unknown model uri prefix '{prefix}'",
              error_code=INVALID_PARAMETER_VALUE,
          )
  
file_path: mlflow/mlflow/metrics/genai/model_utils.py
imports: import logging
  import os
  import urllib.parse
  from mlflow.exceptions import MlflowException
  from mlflow.protos.databricks_pb2 import INVALID_PARAMETER_VALUE
  from mlflow.utils.openai_utils import REQUEST_URL_CHAT
label_desc: Use image node_id 1 for calling a global function with example usage: score_model_on_payload(model_uri, payload, eval_parameters) and returns: _call_openai_api, _call_gateway_api, _call_deployments_api