class_docstr: How well does our user simulator do at outputting utterances that goes closer to
  satisfying relevant groundinged goals? Does it dump out all of the slots at once or
  is it more intelligent than that?
  
  Since this is the user and we don't know the identity of potential slots, we ignore
  the short (< 4 chars) goal slots since this tends to be things that are substrings
  of other things. (Ex. "2" showing up as # of people in a reservation, but also
  showing up as a phone number.)
docstr: Grab slots out of the user utterance based on an exact match.
docstr_tok: ["Grab","slots","out","of","the","user","utterance","based","on","an","exact","match","."]
code: def handle_user_utt(
      self, message: Message, prefix_stripped_text: str
  ) -> Optional[Dict[str, Metric]]:
      """
      Grab slots out of the user utterance based on an exact match.
      """
      utterance = prefix_stripped_text
  
      def get_slots(utt, options):
          results = set()
          for option in options:
              if option in utt:
                  results.add(option)
          return results
  
      all_slot_values_here = get_slots(
          utterance, self.all_goal_slot_values
      )
      req_slot_values_here = get_slots(
          utterance, self.all_req_goal_slot_values
      )
  
      self.mentioned_all_slot_values |= all_slot_values_here
      self.mentioned_req_slot_values |= req_slot_values_here
  
      metrics = {}
      metrics["user_utt_avg_any_slot"] = AverageMetric(
          len(all_slot_values_here)
      )
      metrics["user_utt_avg_req_slot"] = AverageMetric(
          len(req_slot_values_here)
      )
      return metrics
  
imports: from parlai.core.message import Message
  from parlai.core.metrics import Metric, AverageMetric, normalize_answer, BleuMetric, SumMetric
  from parlai.core.tod.tod_core import STANDARD_API_NAME_SLOT, STANDARD_REQUIRED_KEY, STANDARD_OPTIONAL_KEY, STANDARD_API_SCHEMAS
  from typing import Dict, List, Optional, Tuple
  from parlai.core.tod.world_metrics_handlers import TodMetricsHandler, register_metrics_handler, _ApiCallGoalInteractionHelper, goals_hit_helper
label_desc: Use image node_id 3 for calling the UserGoalSlotCoverageMetricHandler obj's underlying member method code with example usage: obj.handle_user_utt(message, prefix_stripped_text) and returns: metrics, results