def sample_choice(
      self,
      prompt: str,
      responses: Sequence[str],
      *,
      seed: int | None = None,
  ) -> tuple[int, str, Mapping[str, Any]]:
    """Samples a response from those available.

    NOTE: Sampling method is up to the underlying implementation and may not
    reflect the underlying log_probabilities.

    Args:
      prompt: the initial text to condition on.
      responses: the responses to score.
      seed: optional seed for the sampling. If None a random seed will be used.

    Returns:
      (index, response, info). The index of the sampled response, the sampled
      response, and some info about the sampling process.

    Raises:
      InvalidResponseError if unable to produce a valid choice after attempting
        a number of times.
    """
    raise NotImplementedError
Samples a response from those available.

    NOTE: Sampling method is up to the underlying implementation and may not
    reflect the underlying log_probabilities.

    Args:
      prompt: the initial text to condition on.
      responses: the responses to score.
      seed: optional seed for the sampling. If None a random seed will be used.

    Returns:
      (index, response, info). The index of the sampled response, the sampled
      response, and some info about the sampling process.

    Raises:
      InvalidResponseError if unable to produce a valid choice after attempting
        a number of times.
    
concordia/language_model/language_model.py