class_docstr: This Teacher is responsible for performing the task of Dialogue State Tracking. It
  can be used to evaluate LM on JGA (Joint Goal Accuracy) metric (as shown in.
  
  [SimpleTOD](https://arxiv.org/abs/2005.00796) and
  [Soloist](https://arxiv.org/abs/2005.05298)).
class_docstr_tok: ["This","Teacher","is","responsible","for","performing","the","task","of","Dialogue","State","Tracking",".","It","can","be","used","to","evaluate","LM","on","JGA","(","Joint","Goal","Accuracy",")","metric","(","as","shown","in",".","[","SimpleTOD","]","(","https",":","\/\/arxiv.org\/abs\/2005.00796",")","and","[","Soloist","]","(","https",":","\/\/arxiv.org\/abs\/2005.05298",")",")","."]
code: def compare_slot_values(
      self, gt_slots, predicted_slots, service_slot
  ) -> bool:
      service_slot_name = service_slot["name"]
      if (
          service_slot_name not in gt_slots
          and service_slot_name not in predicted_slots
      ):
          return True
      if service_slot["is_categorical"]:
          return gt_slots.get(service_slot_name, [""])[
              0
          ] == predicted_slots.get(service_slot_name, "")
  
      else:
          return self.fuzzy_match(
              gt_slots.get(service_slot_name, [""]),
              predicted_slots.get(service_slot_name, ""),
          )
  
imports: import glob
  import json
  import os
  from typing import Any, Dict, List, Optional
  import parlai.tasks.google_sgd.build
  import parlai.core.tod.tod_core
  import parlai.core.tod.tod_agents
  from parlai.core.tod.tod_core import SerializationHelpers
  from parlai.core.message import Message
  from parlai.core.metrics import AverageMetric
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from fuzzywuzzy import fuzz
  from parlai.utils.io import PathManager
label_desc: Use image node_id 2 for calling the GoogleSGDDSTTeacher obj's underlying member method code with example usage: obj.compare_slot_values(gt_slots, predicted_slots, service_slot) and returns: True, unknown, self