code: def receive_trial_result(self, parameter_id, parameters, value):
          
          reward = extract_scalar_reward(value)
  
          if parameter_id not in self.total_data:
              raise RuntimeError("Received parameter_id not in total_data.")
  
          (_, father_id, model_id) = self.total_data[parameter_id]
  
          graph = self.bo.searcher.load_model_by_id(model_id)
  
          # to use the value and graph
          self.add_model(reward, model_id)
          self.update(father_id, graph, reward, model_id)
docs: Record an observation of the objective function.
      
          Parameters
          ----------
          parameter_id : int
          parameters : dict
          value : dict/float
              if value is dict, it should have "default" key.