code: def gen_content(
      self, metrics, loss, preds, targets, scores, contexts, *args
  ):
      pred_answers, pred_starts, pred_ends = preds
      true_answers, true_starts, true_ends = targets
      for i in range(len(pred_answers)):
          yield [
              contexts[MultiSpanQAMetricReporter.ROW_INDEX][i],
              contexts[MultiSpanQAMetricReporter.QUESTION_COLUMN][i],
              contexts[MultiSpanQAMetricReporter.DOC_COLUMN][i],
              pred_answers[i],
              pred_starts[i],
              pred_ends[i],
              true_answers[i],
              true_starts[i],
              true_ends[i],
          ]
  
imports: import re
  import string
  from typing import Dict, List, Set, Tuple, Union
  import numpy
  from pytext.common.constants import Stage
  from pytext.metric_reporters.channel import Channel, ConsoleChannel, FileChannel
  from pytext.metric_reporters.metric_reporter import MetricReporter
  from pytext.metrics.squad_metrics import SquadMetrics
  from pytext.utils.data import merge_token_labels_to_slot, parse_slot_string, Slot
  from scipy.optimize import linear_sum_assignment
label_desc: Use image node_id 2 for calling the MultiSpanQAFileChannel obj's underlying member method code with example usage: obj.gen_content(metrics, loss, preds, targets, scores, contexts) without return types