def __init__(
      self,
      players: Sequence[deprecated_agent.BasicAgent | entity_agent.EntityAgent],
      model: language_model.LanguageModel,
      memory: associative_memory.AssociativeMemory,
      clock: game_clock.MultiIntervalClock,
      burner_memory_factory: blank_memories.MemoryFactory,
      cap_nonplayer_characters: int = 3,
      shared_context: str = '',
      components: Sequence[component.Component] | None = None,
      allow_self_talk: bool = False,
      review_participants: bool = True,
      verbose: bool = False,
      npc_instructions: str = game_master.DEFAULT_GAME_MASTER_INSTRUCTIONS,
      max_conversation_length: int = 20,
      log_color: str = 'magenta',
  ):
    """Initializes the generator of conversations.

    Args:
      players: A list of players to generate conversations for.
      model: A language model to use for generating utterances.
      memory: GM memory, used to add the summary of the conversation
      clock: multi interval game clock. If conversation happens, the clock will
        advance in higher gear during the conversation scene.
      burner_memory_factory: a memory factory to create temporary memory for
        npcs and conversation gm
      cap_nonplayer_characters: The maximum number of non-player characters
        allowed in the conversation.
      shared_context: A string to use as the generic context for the NPCs.
      components: components that contextualise the conversation
      allow_self_talk: allow players to have a conversation with themselves
      review_participants: whether or not to start each scene by declaring
        who its participants are.
      verbose: Whether to print debug messages or not.
      npc_instructions: by default use the standard game master instructions
        for non-player characters. Otherwise override this with custom
        instructions.
      max_conversation_length: maximum number of rounds in a conversation scene.
      log_color: color in which to print logs
    """
    self._players = players
    self._model = model
    self._cap_nonplayer_characters = cap_nonplayer_characters
    self._npc_instructions = npc_instructions
    self._shared_context = shared_context
    self._history = []
    self._verbose = verbose
    self._log_color = log_color
    self._components = components or []
    self._clock = clock
    self._burner_memory_factory = burner_memory_factory
    self._memory = memory
    self._allow_self_talk = allow_self_talk
    self._all_player_names = [player.name for player in self._players]
    self._min_speakers = 1 if self._allow_self_talk else 2
    self._review_participants = review_participants
    self._max_conversation_length = max_conversation_length
Initializes the generator of conversations.

    Args:
      players: A list of players to generate conversations for.
      model: A language model to use for generating utterances.
      memory: GM memory, used to add the summary of the conversation
      clock: multi interval game clock. If conversation happens, the clock will
        advance in higher gear during the conversation scene.
      burner_memory_factory: a memory factory to create temporary memory for
        npcs and conversation gm
      cap_nonplayer_characters: The maximum number of non-player characters
        allowed in the conversation.
      shared_context: A string to use as the generic context for the NPCs.
      components: components that contextualise the conversation
      allow_self_talk: allow players to have a conversation with themselves
      review_participants: whether or not to start each scene by declaring
        who its participants are.
      verbose: Whether to print debug messages or not.
      npc_instructions: by default use the standard game master instructions
        for non-player characters. Otherwise override this with custom
        instructions.
      max_conversation_length: maximum number of rounds in a conversation scene.
      log_color: color in which to print logs
    
concordia/components/game_master/deprecated/conversation.py