in IAC/temp/function-source/src/corretor_gemini/gemini_corretor.py [0:0]
def validate_essay(
self,
redacao_data,
verbose: bool = False
) -> Optional[str]:
"""
Evaluates the validity of an essay using Gemini.
Args:
tema_redacao (str): The theme of the essay.
enunciado_redacao (str): The essay prompt or statement.
textos_motivadores (str): The motivational texts.
redacao_estudante (str): The student's essay text.
gemini_client (GeminiClient): The Gemini client from PromptWeaver module.
prompt_template_path (str, optional): Path to the prompt template file.
Defaults to "Prompts/template-validacao-enem.yml.j2".
verbose (bool, optional): If True, prints verbose output. Defaults to False.
Returns:
Optional[str]: The result of the validation ("Válida" or a message indicating invalidity),
or None if an error occurs.
Notes:
The validation output is an optional enum, with one of the following values:
- "Válida"
- "Inválida - Texto Ilegível ou Ininteligível"
- "Inválida - Desvio do Gênero Dissertativo-Argumentativo"
- "Inválida - Cópia dos textos motivadores"
- "Inválida - Violação aos Direitos Humanos"
"""
# Load the prompt configuration
try:
validacao_prompt = PromptConfig.from_file(
self.config_prompweaver_justificativa, redacao_data, verbose=verbose)
except Exception as e:
print(f"Error loading prompt template: {e}")
return None
# Generate the content using Gemini
try:
response = self.gemini_client.generate_content(validacao_prompt)
if verbose:
print(f"Response from the Gemini model: {response}")
if hasattr(response, 'text'):
return response.text
else:
print("Invalid response from the Gemini model.")
return None
except Exception as e:
print(f"Error connecting to the Gemini model: {e}")
return None