def __init__(
      self,
      model: language_model.LanguageModel,
      player_names: Sequence[str],
      components: Sequence[str] = (),
      reformat_observations_in_specified_style: str = '',
      pre_act_label: str = DEFAULT_MAKE_OBSERVATION_PRE_ACT_LABEL,
  ):
    """Initializes the component.

    Args:
      model: The language model to use for the component.
      player_names: Names of players.
      components: Keys of components to condition the observation on.
      reformat_observations_in_specified_style: If non-empty, the component will
        ask the model to reformat the observation to fit the style specified in
        this string. By default, the component does not reformat the
        observation. When turned on, a reasonable starting style to try in the
        case that you have information from a time component that you want to
        include in the observation is: "The format to use when describing the
        current situation to a player is: "//date or time//situation
        description"."
      pre_act_label: Prefix to add to the output of the component when called in
        `pre_act`.

    Raises:
      ValueError: If the component order is not None and contains duplicate
        components.
    """
    super().__init__()
    self._model = model
    self._player_names = player_names
    self._components = components
    self._reformat_observations_in_specified_style = (
        reformat_observations_in_specified_style
    )
    self._pre_act_label = pre_act_label

    self._queue = {}
Initializes the component.

    Args:
      model: The language model to use for the component.
      player_names: Names of players.
      components: Keys of components to condition the observation on.
      reformat_observations_in_specified_style: If non-empty, the component will
        ask the model to reformat the observation to fit the style specified in
        this string. By default, the component does not reformat the
        observation. When turned on, a reasonable starting style to try in the
        case that you have information from a time component that you want to
        include in the observation is: "The format to use when describing the
        current situation to a player is: "//date or time//situation
        description"."
      pre_act_label: Prefix to add to the output of the component when called in
        `pre_act`.

    Raises:
      ValueError: If the component order is not None and contains duplicate
        components.
    
concordia/components/game_master/make_observation.py