code: def get_exploration_action(
      self,
      action_distribution: ActionDistribution,
      timestep: Union[int, TensorType],
      explore: bool = True,
  ):
      if self.framework == "torch":
          return self._get_torch_exploration_action(
              action_distribution, explore
          )
      elif self.framework == "tf2":
          return self._get_tf_exploration_action(
              action_distribution, explore
          )
      else:
          raise NotImplementedError
  
file_path: ray/rllib/utils/exploration/upper_confidence_bound.py
imports: from typing import Union
  from ray.rllib.models.action_dist import ActionDistribution
  from ray.rllib.utils.annotations import override, PublicAPI
  from ray.rllib.utils.exploration.exploration import Exploration
  from ray.rllib.utils.framework import TensorType, try_import_tf
label_desc: Use image node_id 1 for calling the UpperConfidenceBound obj's underlying member method code with example usage: obj.get_exploration_action(action_distribution, timestep, explore) and returns: self, self