code: def get_bounded_reward_random_environment(
      observation_shape, action_shape, batch_size, num_actions
  ):
      """Returns a RandomBanditEnvironment with U(0, 1) observation and reward."""
      overall_shape = [batch_size] + observation_shape
      observation_distribution = tfd.Independent(
          tfd.Uniform(
              low=tf.zeros(overall_shape), high=tf.ones(overall_shape)
          )
      )
      reward_distribution = tfd.Uniform(
          low=tf.zeros(batch_size), high=tf.ones(batch_size)
      )
      action_spec = tensor_spec.BoundedTensorSpec(
          shape=action_shape,
          dtype=tf.int32,
          minimum=0,
          maximum=num_actions - 1,
      )
      return random_bandit_environment.RandomBanditEnvironment(
          observation_distribution, reward_distribution, action_spec
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import functools
  import os
  import tempfile
  from unittest import mock
  from absl import logging
  from absl.testing import parameterized
  import tensorflow
  import tensorflow_probability
  from tf_agents.bandits.agents import exp3_agent
  from tf_agents.bandits.agents.examples.v2 import trainer
  from tf_agents.bandits.agents.examples.v2 import trainer_test_utils
  from tf_agents.bandits.environments import environment_utilities
  from tf_agents.bandits.environments import random_bandit_environment
  from tf_agents.bandits.environments import stationary_stochastic_py_environment
  from tf_agents.bandits.environments import wheel_py_environment
  from tf_agents.bandits.metrics import tf_metrics
  from tf_agents.environments import tf_py_environment
  from tf_agents.metrics import export_utils
  from tf_agents.specs import tensor_spec
label_desc: Use image node_id 1 for calling a global function with example usage: get_bounded_reward_random_environment(observation_shape, action_shape, batch_size, num_actions) and returns: random_bandit_environment