docstr: Attach problem data to the bot's prior utterance, given by turn_idx.
docstr_tok: ["Attach","problem","data","to","the","bot","'s","prior","utterance",",","given","by","turn_idx","."]
code: def __add_problem_data_to_utterance(self, p, turn_idx: int):
      """
      Attach problem data to the bot's prior utterance, given by turn_idx.
      """
      print(p)
      assert (
          self.dialog[turn_idx]["agent_idx"] == 1
      ), "Problem data must be attached to a bot utterance."
      assert (
          "problem_data" not in self.dialog[turn_idx]
      ), "Don't overwrite existing problem data!"
      self.dialog[turn_idx]["problem_data"] = p
  
imports: import time
  import os
  import json
  from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Optional, Tuple
  import numpy
  from parlai.core.agents import create_agent_from_shared
  from parlai.core.message import Message
  from parlai.core.worlds import validate
  from parlai.crowdsourcing.utils.acceptability import AcceptabilityChecker
  from parlai.crowdsourcing.utils.worlds import CrowdOnboardWorld, CrowdTaskWorld
  from parlai.crowdsourcing.tasks.model_chat.bot_agent import TurkLikeAgent
  from parlai.crowdsourcing.tasks.model_chat.constants import ONBOARD_FAIL, ONBOARD_SUCCESS
  from parlai.crowdsourcing.tasks.model_chat.utils import Compatibility
  from parlai.crowdsourcing.utils.mturk import get_mturk_id_from_mephisto_wrapper
  from typing import TYPE_CHECKING
label_desc: Use image node_id 2 for calling the BaseModelChatWorld obj's underlying member method code with example usage: obj.__add_problem_data_to_utterance(p, turn_idx) without return types