text: DialogueAgent that has a bid() method that produces a bid given the message history and the most recent message.class BiddingDialogueAgent(DialogueAgent):    def __init__(        self,        name,        system_message: SystemMessage,        bidding_template: PromptTemplate,        model: ChatOpenAI,    ) -> None:        super().__init__(name, system_message, model)        self.bidding_template = bidding_template    def bid(self) -> str:        """        Asks the chat model to output a bid to speak        """        prompt = PromptTemplate(            input_variables=["message_history", "recent_message"],            template=self.bidding_template,        ).format(            message_history="\n".join(self.message_history),            recent_message=self.message_history[-1],        )        bid_string = self.model([SystemMessage(content=prompt)]).content        return bid_stringDefine participants and debate topicâ€‹character_names = ["Donald Trump", "Kanye West", "Elizabeth Warren"]topic = "transcontinental high speed rail"word_limit = 50Generate system messagesâ€‹game_description = f"""Here is the topic for the presidential debate: {topic}.The presidential candidates are: {', '.join(character_names)}."""player_descriptor_system_message = SystemMessage(