class_docstr: A random action selector (deterministic/greedy for explore=False).
  
  If explore=True, returns actions randomly from `self.action_space` (via
  Space.sample()).
  If explore=False, returns the greedy/max-likelihood action.
class_docstr_tok: ["A","random","action","selector","(","deterministic\/greedy","for","explore=False",")",".","If","explore=True",",","returns","actions","randomly","from","`","self.action_space","`","(","via","Space.sample","(",")",")",".","If","explore=False",",","returns","the","greedy\/max-likelihood","action","."]
code: def get_exploration_action(
      self,
      *,
      action_distribution: ActionDistribution,
      timestep: Union[int, TensorType],
      explore: bool = True,
  ):
      # Instantiate the distribution object.
      if self.framework in ["tf2", "tf"]:
          return self.get_tf_exploration_action_op(
              action_distribution, explore
          )
      else:
          return self.get_torch_exploration_action(
              action_distribution, explore
          )
  
file_path: ray/rllib/utils/exploration/random.py
imports: from gymnasium.spaces import Discrete, Box, MultiDiscrete, Space
  import numpy
  import tree
  from typing import Union, Optional
  from ray.rllib.models.action_dist import ActionDistribution
  from ray.rllib.models.modelv2 import ModelV2
  from ray.rllib.utils.annotations import override, PublicAPI
  from ray.rllib.utils.exploration.exploration import Exploration
  from ray.rllib.utils import force_tuple
  from ray.rllib.utils.framework import try_import_tf, try_import_torch, TensorType
  from ray.rllib.utils.spaces.simplex import Simplex
  from ray.rllib.utils.spaces.space_utils import get_base_struct_from_space
  from ray.rllib.utils.tf_utils import zero_logps_from_actions
label_desc: Use image node_id 2 for calling the Random obj's underlying member method code with example usage: obj.get_exploration_action() and returns: self, self