code: def get_contexts(self):
      # Find a new episode
      while True:
          self.light_world.parley()
          msg = self.light_world.get_acts()[0]
          if msg.get("episode_done", False):
              self.light_world.parley()
              msg = self.light_world.get_acts()[0]
              break
      txt = msg.get("text", "").split("\n")
      a1_persona = ""  # (typically human in interactive)
      a2_persona = ""
      p = {}
      for t in txt:
          p[t.split(" ")[0]] = t
  
      if self.opt["add_task_string"]:
          task_name = " _task_speech\n"
  
      else:
          task_name = ""
  
      a1_persona = (
          task_name
          + p["_setting_name"]
          + "\n"
          + p["_setting_desc"]
          + "\n"
          + p["_self_name"].replace("_self_name", "_partner_name")
          + "\n"
          + p["_partner_name"].replace("_partner_name", "_self_name")
          + "\n"
          + "_self_persona I am a "
          + " ".join(p["_partner_name"].split(" ")[1:])
          + "."
      )
  
      a2_persona = (
          task_name
          + p["_setting_name"]
          + "\n"
          + p["_setting_desc"]
          + "\n"
          + p["_partner_name"]
          + "\n"
          + p["_self_name"]
          + "\n"
          + p["_self_persona"]
      )
      return a1_persona, a2_persona
  
imports: from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from parlai.core.worlds import create_task
  from parlai.tasks.self_chat.worlds import SelfChatWorld
  from parlai.tasks.interactive.worlds import InteractiveWorld
  from parlai.agents.repeat_label.repeat_label import RepeatLabelAgent
  import random
  import pickle
  import os
label_desc: Use image node_id 3 for calling the InteractiveSimpleWorld obj's underlying member method code with example usage: obj.get_contexts() and returns: a1_persona,  a2_persona