class_docstr: Blueprint for per turn evaluation method.
  
  This blueprint subclasses ModelChatBlueprint to provide logic for keeping track of
  how many more conversations are needed per model; this logic is not shared with
  other blueprints.
class_docstr_tok: ["Blueprint","for","per","turn","evaluation","method",".","This","blueprint","subclasses","ModelChatBlueprint","to","provide","logic","for","keeping","track","of","how","many","more","conversations","are","needed","per","model",";","this","logic","is","not","shared","with","other","blueprints","."]
docstr: Formats the pair of models and sets the number of conversations needed.
docstr_tok: ["Formats","the","pair","of","models","and","sets","the","number","of","conversations","needed","."]
code: def _process_conversations_needed(
      self, args: "DictConfig"
  ) -> Dict[str, int]:
      """
      Formats the pair of models and sets the number of conversations needed.
      """
  
      conversations_needed_string = (
          args.blueprint.conversations_needed_string
      )
      conversations_needed = {}
      parts = conversations_needed_string.split(",")
      for part in parts:
          model1, model2, num_string = part.split(":")
          models_alphabetize = [model1, model2]
          models_alphabetize.sort()  # alphabetizing for consistency
          conversations_needed[
              f"{models_alphabetize[0]}:{models_alphabetize[1]}"
          ] = int(
              num_string
          )  # format is model_1_name:model_2_name
  
      return conversations_needed
  
file_path: ParlAI/parlai/crowdsourcing/tasks/pairwise_per_turn_eval/per_turn_eval_blueprint.py
imports: import os
  import yaml
  from dataclasses import dataclass, field
  from typing import Dict, TYPE_CHECKING
  from mephisto.abstractions.blueprint import SharedTaskState
  from mephisto.operations.registry import register_mephisto_abstraction
  from omegaconf import DictConfig
  from parlai.crowdsourcing.tasks.model_chat.model_chat_blueprint import ModelChatBlueprint, ModelChatBlueprintArgs, BaseModelChatBlueprint
  from parlai.crowdsourcing.tasks.pairwise_per_turn_eval.bot_agent import PerTurnEvalTurkLikeAgent
label_desc: Use image node_id 4 for calling the PerTurnEvalBlueprint obj's underlying member method code with example usage: obj._process_conversations_needed(args) and returns: conversations_needed