Каждый вопрос в тесте наследует абстрактный Question.
В нём есть поля
idtexttype
и абстрактные методы
query- сформировать промпт для нейросетиcompose- из текстового ответа получить готовую структуру для отправки в API
А также где-то рядом должна быть функция для парсинга вопроса.
Класс вопроса должен содержать всю необходимую для решения информацию: текст, варианты ответа, айди вариантов ответа.
Далее нам нужно для каждого объекта вопроса получать ответ - для этого нужны решатели.
Решатель предоставляет метод solve(question), в этом методе скрыта
логика решения вопроса. Это может быть запрос к нейросети или поиск
в локальном файле. Метод возвращает некоторый ответ, например, словарь или список.
Далее ответы для всех вопросов задачи собираются вместе и отправляются по API на openedu.
После этого мы получаем результат - количество баллов за задачу.
После того как мы научились решать одну задачу, остаётся только научиться итерироваться по всем задачам курса