text: wait=tenacity.wait_none(),  # No waiting time between retries        retry=tenacity.retry_if_exception_type(ValueError),        before_sleep=lambda retry_state: print(            f"ValueError occurred: {retry_state.outcome.exception()}, retrying..."        ),        retry_error_callback=lambda retry_state: 0,    )  # Default value when all retries are exhausted    def _choose_next_speaker(self) -> str:        speaker_names = "\n".join(            [f"{idx}: {name}" for idx, name in enumerate(self.speakers)]        )        choice_prompt = self.choose_next_speaker_prompt_template.format(            message_history="\n".join(                self.message_history + [self.prefix] + [self.response]            ),            speaker_names=speaker_names,        )        choice_string = self.model(            [                self.system_message,                HumanMessage(content=choice_prompt),            ]        ).content        choice = int(self.choice_parser.parse(choice_string)["choice"])