File size: 975 Bytes
6558cd8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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})