def get_correcao_from_redacao()

in Frontend/corretor_gemini/gemini_corretor.py [0:0]


    def get_correcao_from_redacao(self, 
                                  redacao_data: dict) -> dict:
        """
        Executa a correção de uma redação com o Gemini.
        
        Args:
            redacao_data (dict): Dicionário com os dados da redação.
                - tema_redacao (str): Tema da redação.
                - enunciado_redacao (str): Enunciado da redação.
                - textos_motivadores (str): Textos motivadores da redação.
                - redacao_estudante (str): Texto da redação.

        Returns:
            Correcao: Objeto com a resposta do Gemini e helpers para processa-la.
        """
        ## Adicionado para lidar com casos onde a redação é menor que 150 caracteres
        if len(redacao_data["redacao_estudante"]) < 150:
            prompt_promptweaver = PromptConfig.from_file(self.config_prompweaver_corretor_invalida, redacao_data)
        else:
            ## Fim da adição
            prompt_promptweaver = PromptConfig.from_file(self.config_prompweaver_corretor, redacao_data)
        generate_content = self.gemini_client.generate_content(prompt_promptweaver).text

        if self.dummy:
            return generate_content
        
        correcao = Correcao(redacao_data, generate_content)
        correcao.sumarizacao = self.sintetizar_correcao(redacao_data, correcao)

        while correcao.get_nota_enem() > 1000:
            generate_content = self.gemini_client.generate_content(prompt_promptweaver)
            correcao = Correcao(redacao_data,
                                generate_content)
            correcao.sumarizacao = self.sintetizar_correcao(redacao_data, correcao)
        return correcao