class_docstr: A recommendation environment which generates items with visible features
  randomly (parametric actions).
  The environment can be configured to be multi-user, i.e. different models
  will be learned independently for each user, by setting num_users_in_db
  parameter.
  To enable slate recommendation, the `slate_size` config parameter can be
  set as > 1.
class_docstr_tok: ["A","recommendation","environment","which","generates","items","with","visible","features","randomly","(","parametric","actions",")",".","The","environment","can","be","configured","to","be","multi-user",",","i.e",".","different","models","will","be","learned","independently","for","each","user",",","by","setting","num_users_in_db","parameter",".","To","enable","slate","recommendation",",","the","`","slate_size","`","config","parameter","can","be","set","as",">","1","."]
code: def reset(self, *, seed=None, options=None):
      # Reset the current user's time budget.
      self.current_user_budget = self.user_time_budget
  
      # Sample a user for the next episode/session.
      # Pick from a only-once-sampled user DB.
      if self.num_users_in_db is not None:
          if self.users_db is None:
              self.users_db = [
                  self._get_embedding()
                  for _ in range(self.num_users_in_db)
              ]
          self.current_user = self.users_db[
              np.random.choice(self.num_users_in_db)
          ]
      # Pick from an infinite pool of users.
      else:
          self.current_user = self._get_embedding()
  
      return self._get_obs(), {}
  
file_path: ray/rllib/examples/env/bandit_envs_recommender_system.py
imports: import gymnasium
  import numpy
  from typing import Optional
  from ray.rllib.utils.numpy import softmax
label_desc: Use image node_id 3 for calling the ParametricRecSys obj's underlying member method code with example usage: obj.reset() and returns: self,  dict