class_docstr: Version of BaseModelChatWorld for chatting without images.
  
  Has support for features that are currently not supported by the image-chat version
  of this task, like personas and BST-style seed utterances.
class_docstr_tok: ["Version","of","BaseModelChatWorld","for","chatting","without","images",".","Has","support","for","features","that","are","currently","not","supported","by","the","image-chat","version","of","this","task",",","like","personas","and","BST-style","seed","utterances","."]
docstr: Run the initial turn for both the human and the bot.
  
  Optionally show the bot its persona. If we are in BST conversation mode, show 2
  previous BST utterances to both the human and the bot; if we are in Meena-like
  conversation mode, show "Hi!" to the human and the bot and let the bot respond
  accordingly.
docstr_tok: ["Run","the","initial","turn","for","both","the","human","and","the","bot",".","Optionally","show","the","bot","its","persona",".","If","we","are","in","BST","conversation","mode",",","show","2","previous","BST","utterances","to","both","the","human","and","the","bot",";","if","we","are","in","Meena-like","conversation","mode",",","show","``","Hi","!","''","to","the","human","and","the","bot","and","let","the","bot","respond","accordingly","."]
code: def _run_initial_turn(self) -> None:
      """
      Run the initial turn for both the human and the bot.
  
      Optionally show the bot its persona. If we are in BST conversation mode, show 2
      previous BST utterances to both the human and the bot; if we are in Meena-like
      conversation mode, show "Hi!" to the human and the bot and let the bot respond
      accordingly.
      """
  
      control_msg = {"episode_done": False}
  
      time.sleep(2)
      coordinator_first_msg = {
          "episode_done": False,
          "id": "Coordinator",
          "text": "Please chitchat with another worker for 6 turns as if you were catching up since last time you two spoke.",
          "fake_start": True,
          "agent_idx": 2,
          "task_data": self.task_data,
      }
      self.agent.observe(validate(coordinator_first_msg))
      time.sleep(2)
      human_first_msg = {
          "episode_done": False,
          "id": self.agent.id,
          "text": self.context_for_bot_prompt,
          "fake_start": True,
          "agent_idx": 0,
          "task_data": self.task_data,
      }
      for k, v in control_msg.items():
          human_first_msg[k] = v
  
      # self.dialog.append(human_first_msg)
      # self.agent.observe(validate(human_first_msg))
      print(human_first_msg)
      self.bot.observe(validate(human_first_msg))
  
      first_bot_act = self.bot.act()
      first_bot_act = Compatibility.maybe_fix_act(first_bot_act)
      first_bot_act["id"] = "THEY"
      self.agent.observe(validate(first_bot_act))
  
      bot_utterance_data = {
          "agent_idx": 1,
          "text": first_bot_act["text"],
          "id": "THEY",
      }
      self.dialog.append(bot_utterance_data)
  
file_path: ParlAI/parlai/crowdsourcing/projects/multisession_chat/human_eval/worlds.py
imports: import time
  from typing import Any, Dict, List, Tuple
  from parlai.core.worlds import validate
  from parlai.crowdsourcing.tasks.model_chat.utils import Compatibility
  from parlai.crowdsourcing.tasks.model_chat.worlds import BaseModelChatWorld, get_bot_worker, get_world_params
  import parlai.utils.logging
label_desc: Use image node_id 2 for calling the ModelChatWorld obj's underlying member method code with example usage: obj._run_initial_turn() without return types