code: def get_privacy_spent(
      self,
      *,
      delta: float,
      alphas: Optional[List[Union[float, int]]] = None,
  ) -> Tuple[float, float]:
      if not self.history:
          return 0, 0
  
      if alphas is None:
          alphas = self.DEFAULT_ALPHAS
      rdp = sum(
          [
              privacy_analysis.compute_rdp(
                  q=sample_rate,
                  noise_multiplier=noise_multiplier,
                  steps=num_steps,
                  orders=alphas,
              )
              for (
                  noise_multiplier,
                  sample_rate,
                  num_steps,
              ) in self.history
          ]
      )
      eps, best_alpha = privacy_analysis.get_privacy_spent(
          orders=alphas, rdp=rdp, delta=delta
      )
      return float(eps), float(best_alpha)
  
file_path: opacus/opacus/accountants/rdp.py
imports: from typing import List, Optional, Tuple, Union
  from .accountant import IAccountant
  from .analysis import rdp
label_desc: Use image node_id 3 for calling the RDPAccountant obj's underlying member method code with example usage: obj.get_privacy_spent() and returns: float,  float, int,  int