code: def eval_step(user_id, pos_mask, excl_mask):
      pred = bpr_model.inference(user_id)
      auc = AUC(pos_mask=pos_mask, pred=pred, excl_mask=excl_mask)
      recall = Recall(
          pos_mask=pos_mask,
          pred=pred,
          excl_mask=excl_mask,
          at=[50, 100],
      )
      return {"AUC": auc, "Recall": recall}
  
file_path: openrec/tf2_examples/bpr_citeulike.py
imports: from openrec.tf2.data import Dataset
  from openrec.tf2.recommenders import BPR
  from openrec.tf2.metrics import AUC, NDCG, Recall, DictMean
  from tqdm.auto import tqdm
  import tensorflow
  import numpy
  from tensorflow.keras import optimizers
  import dataloader
label_desc: Use image node_id 2 for calling a global function with example usage: eval_step(user_id, pos_mask, excl_mask) and returns: dict