Spaces:
Running
Running
| from qlatent.qmnli.qmnli import * | |
| from qlatent.qmlm.qmlm import * | |
| from tqdm import tqdm | |
| from qlatent.questionnaire_eval.questionnaire_utils import * | |
| MLM_TYPE = "QMLM" | |
| NLI_TYPE = "QMNLI" | |
| class Questionnaires: | |
| def __init__(self, questionnaires_questions_lists): | |
| self.questionnaires_questions_lists=questionnaires_questions_lists | |
| if self.questionnaires_questions_lists: | |
| self.prepare_questionnaires() | |
| def prepare_questionnaires(self): | |
| """ | |
| Prepares the questionnaires using the Questionnaire object. | |
| Each list consists of class objects of a questionnaire. | |
| All questionnaires are divided into MLM and NLI type for evaluation. | |
| """ | |
| questionnaires : Dict[Literal["QMLM", "QMNLI"], list] = { | |
| MLM_TYPE: {}, | |
| NLI_TYPE: {}, | |
| } | |
| for questionnaire_questions in self.questionnaires_questions_lists: | |
| questionnaire_name : str = questionnaire_questions[0]()._descriptor["Questionnair"] | |
| if issubclass(questionnaire_questions[0], QMLM): | |
| questionnaire_type: Literal["QMLM", "QMNLI"] = MLM_TYPE | |
| elif issubclass(questionnaire_questions[0], QMNLI): | |
| questionnaire_type: Literal["QMLM", "QMNLI"] = NLI_TYPE | |
| else: | |
| raise ValueError(f"Unknown questionnaire type for {questionnaire_name}") | |
| questionnaire : Questionnaire = Questionnaire.create_questionnaire_from_questions(questionnaire_questions) | |
| questionnaire.questionnaire_type = questionnaire_type | |
| questionnaires[questionnaire_type][questionnaire.name] = questionnaire | |
| self.questionnaires = questionnaires |