code: def compose_annotation(
      caption: str, x: float = 0.0, y: float = -0.15
  ) -> List[Dict[str, Any]]:
      if not caption:
          return []
      return [
          {
              "showarrow": False,
              "text": caption,
              "x": x,
              "xanchor": "left",
              "xref": "paper",
              "y": y,
              "yanchor": "top",
              "yref": "paper",
              "align": "left",
          },
      ]
  
imports: import math
  from collections import Counter
  from logging import Logger
  from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union
  import numpy
  from ax.core.generator_run import GeneratorRun
  from ax.core.observation import Observation, ObservationFeatures
  from ax.core.parameter import ChoiceParameter, FixedParameter, Parameter, ParameterType, RangeParameter
  from ax.core.types import TParameterization
  from ax.modelbridge.base import ModelBridge
  from ax.modelbridge.prediction_utils import _compute_scalarized_outcome, predict_at_point
  from ax.modelbridge.transforms.ivw import IVW
  from ax.plot.base import DECIMALS, PlotData, PlotInSampleArm, PlotOutOfSampleArm, Z
  from ax.utils.common.logger import get_logger
  from ax.utils.common.typeutils import not_none
label_desc: Use image node_id 25 for calling a global function with example usage: compose_annotation(caption, x, y) and returns: list, list