from langchain_core.documents import Document def parse_question(question_str): # Extract content content_start = question_str.find('"""') + 3 content_end = question_str.rfind('"""', content_start) content = question_str[content_start:content_end].strip() # Extract correct option correct_option_start = question_str.find('opcao_correta=') + 15 correct_option_end = correct_option_start + 1 correct_option = question_str[correct_option_start:correct_option_end] # Extract metadata metadata_start = question_str.find("metadados=") + 10 metadata_end = question_str.find("}", metadata_start) + 1 metadata_str = question_str[metadata_start:metadata_end] metadata = eval(metadata_str) topico, assunto, dificuldade, tipo = metadata.values() return Document(page_content="##Questão\n" + content, metadata={"correct_option":correct_option, "topico":topico, "assunto":assunto, "dificuldade":dificuldade, "tipo":tipo})