Привет! Меня зовут Дима, я Backend-разработчик в Doubletapp. Мне хотелось бы поделиться опытом реализации автоматизации изучения большого объёма информации.

В статье я расскажу:
C какой проблемой я столкнулся
Про возможное решение
Про готовые инструменты, использующие SRS
Notion + ActivePieces + ChatGPT
Опыт использования: плюсы и минусы
Про возможное применение

С какой проблемой столкнулся

Недавно я столкнулся с проблемой, связанной с удержанием большого объёма информации. При изучении материала, особенно в рамках длительных курсов или самообразования, информация вылетает из головы. В итоге время тратится впустую.

Эта проблема актуальна для многих специалистов, работающих в IT, поскольку технологии развиваются очень быстро и для успешной карьеры необходимо постоянно осваивать новые технологии и дисциплины.

Возможное решение

Кривая забывания Германа Эббингхауса
Кривая забывания Германа Эббингхауса

В поисках методик улучшения усвоения учебных материалов я наткнулся на метод Spaced Repetition. Этот метод основан на том принципе, что знания лучше усваиваются, если промежутки между их повторением разделены во времени.

Метод Spaced Repetition использует «кривую забывания», выведенную немецким психологом Германом Эббингхаусом. Эта кривая показывает, с какой скоростью забывается информация. Метод превращает кривую забывания в горизонтальную линию, обеспечивая долгосрочное запоминание информации.

Для использования метода Spaced Repetition необходимо следовать базовому алгоритму:

  1. Изучать что-то;

  2. Повторять изученный материал через e^i дней, где i — номер повторения.

Готовые инструменты

Когда я искал готовые инструменты, которые реализуют метод интервального повторения (Spaced Repetition), я обнаружил несколько популярных решений. Однако после их тестирования оказалось, что ни один из них полностью не соответствует моим требованиям. Вот краткое описание каждого инструмента с их достоинствами и недостатками:

Мы видим, что у всех инструментов для интервального повторения есть достоинства и недостатки: некоторые из них слишком сложны для использования, другие требуют значительных финансовых вложений, а третьи не предоставляют достаточной гибкости и индивидуального подхода. Поэтому, возможно, стоит рассмотреть разработку собственного решения или улучшение существующих инструментов для удовлетворения специфических потребностей.

Notion + ActivePieces + ChatGPT

Идея следующая: сделать дашборд, на котором будут отображаться карточки конспектов, которые нужно будет повторить. После повторения будет приходить сообщение с вопросами для самопроверки и закрепления материала.

Для реализации данной идеи будут использоваться следующие сервисы:

  • Notion — дашборд + средство для ведения конспектов

  • ActivePieces — No Code (почти) автоматизация флоу повторения.

  • ChatGPT — LLM для генерации вопросов и ответов на основе конспекта

Пройдёмся по каждой составляющей.

Notion

Notion — это универсальное приложение для создания заметок, управления проектами и организации знаний. Оно включает в себя инструменты для работы с базами данных, канбан-досками, вики, календарями и напоминаниями. В нём очень удобно вести учебные конспекты.

Notion предоставляет API интеграцию для автоматизации различных процессов. Далее нам нужно будет её настроить, но пока займёмся дашбордом:

  1. Создадим новую страницу

  2. Добавим на неё Table View и базу данных. В данной БД будут храниться наши конспекты.

  3. Добавим Empty View. На ней будут отображаться карточки конспектов, которые нужно будет сегодня повторить.

  4. Для удобства выберем формат отображение Galley.

  5. Добавим атрибуты для наших карточек:

Атрибут

Тип в Notion

Описание

Level

Number

Уровень повторения. Данный параметр участвует в вычислении Next Date

Next Date

Formula

Дата, когда нужно повторить конспект.
Формула:

if(toNumber(prop("Level")) <= 1, prop("Start Date"), dateAdd(prop("Start Date"), floor(pow(2.2, toNumber(prop("Level")) - 1)), "days"))

Tags

Multi-select

Категории. Нужен для разделения конспектов по дисциплинам

Start Date

Date

Дата начала повторения

Repeated

Checkbox

Булевский атрибут для обозначения, повторил ли материал сегодня или нет

  1. В ранее созданном View задаём фильтр, который будет отображать только те карточки, которые нужно повторить сегодня.

Для создания нового конспекта, нужно сделать следующее:

  • Создать карточку

  • Заполнить описание

  • Поставить Start Date — текущую дату

  • Уставить Level = 1

При изменении Level будет пересчитываться Next Date.

Пример конспекта
Пример конспекта

Дашборд готов! Теперь перейдём к автоматизации флоу повторения.

ActivePieces

Так как все программисты ленивые, воспользуемся No Code решением. Мой выбор пал на ActivePieces. Данный инструмент нужен для автоматизации бизнес-процессов с помощью готовых шаблонов action-ов. С помощью него можно реализовать простые задачи с минимальными временными затратами.

В ActivePieces есть два формата использования:

  • SaaS

  • Self-hosted

Остановился на варианте Self-hosted, так как на нём нет месячного ограничения по исполнению Flow.

Установка ActivePieces максимально простая. Инструкция доступна на официальном сайте.

Примечание: Если хотите развернуть ActivePieces на сервере, который территориально находится в РФ, то могут возникнуть проблемы с интеграцией ChatGPT: будет выводиться ошибка “Invalid Token”, хотя с токеном всё может быть в порядке. Проблема связана с тем, что, к сожалению, API ChatGPT недоступен в РФ. Поэтому нужно отдельно настраивать VPN или прокси. Простой вариант — арендовать сервер на иностранном cloud-провайдере.

Приступим к настройке флоу. ActivePieces позволяет экспортировать Flow в формате JSON, поэтому прикладываю ссылку на готовое Flow.

Первым делом настроим следующие интеграции:

  • Telegram Bot

  • Notion

  • ChatGPT

Во вкладке Connections указываем нужные токены.

Рассмотрим подробнее шаги в Flow:

  1. Триггер Updated Topic — срабатывает, если карточка конспекта была изменена.

  2. Проверяем статус чекбокса “Repeated”.

  3. Если статус True, то выполняем флоу дальше, иначе заканчиваем.

  4. Убираем у чекбокса “Repeated” статус True .

  5. Инкрементируем “Level”.

  6. Обновляем значение “Level” в карточке.

  7. Получаем контент конспекта через Notion API. К сожалению, Notion API не отдаёт просто текст. Поэтому нам нужно его собрать (пройтись циклом по списку объектов и сконкатинировать текст).

  8. Собрать текст

  9. Просим ChatGPT придумать несколько вопросов и ответов к ним для текущего конспекта.

  10. Полученный текст от ChatGPT отправляем сообщением через Telegram-бот.

В итоге после того, как мы повторили конспект (нажали чекбокс “Repeated”), нам в Telegram-бот будет приходить сообщение со списком вопросов и ответов к ним.

Пример сообщения по конспекту «Контекст и передача аргументов между задачами Apache Airflow»
Пример сообщения по конспекту «Контекст и передача аргументов между задачами Apache Airflow»

Опыт использования

Хотел бы поделиться своим опытом использования данного решения — как положительными, так и отрицательными аспектами.

Плюсы

  • Эффективность запоминания. Раньше я пытался заучивать материал по старинке: читал учебники, делал конспекты и повторял их перед экзаменами. Но как только проходило несколько дней, большая часть информации просто испарялась из головы. SRS же построена на том, чтобы повторять материал в моменты, когда мозг начинает его забывать, что помогает укреплять знания. Этот подход действительно работает! Я стал лучше запоминать даже сложные термины и даты, которые раньше вылетали из головы уже через пару дней.

  • Экономия времени. Система сама решает, когда и что мне повторять. Это значительно сэкономило время. Раньше я тратил часы на повторение одного и того же материала, даже если его уже знал. Теперь, если я усвоил что-то хорошо, система возвращается к этому только через длительный промежуток времени. Это позволило сосредоточиться на том, что давалось сложнее.

  • Структурированность и порядок. SRS внесла определенную дисциплину в процесс обучения. У меня больше нет необходимости ломать голову над тем, как распланировать время на повторения.

Минусы

  • Не всё подходит под SRS. Я заметил, что SRS хорошо работает для запоминания конкретных фактов, определений, формул и слов. Но если нужно понять сложные концепции или изучить теоретический материал, эта система уже не так эффективна. Её использование для глубинного анализа или креативного осмысления материалов ограничено.

  • Стоимость запросов ChatGPT. К сожалению, в ActivePieces нет других интеграций с LLM, которые позволяют генерировать вопросы к конспектам.

Возможное применение

Данное решение можно применять в различных ситуациях, когда необходимо улучшить запоминание информации. Вот некоторые примеры:

  1. Подготовка к экзаменам: нужно за короткий промежуток впихуть тонну информации. Чтобы облегчить себе жизнь (все мы любим страдать) можно повторять изучаемый материал в течении семестра по методу Spaced Repetition.

  2. Самообразование: регулярное повторение изученного материала для поддержания знаний и предотвращения их забывания.

  3. Бизнес и карьера: использование метода для запоминания новых навыков, стратегий и информации, необходимой для профессионального роста.

Вывод

В целом опыт использования системы интервального повторения оказался для меня положительным. Она помогла структурировать процесс обучения и значительно улучшила мои результаты в запоминании информации. Да, система требует дисциплины и регулярности, что иногда может быть непросто, но если следовать плану, SRS действительно делает процесс обучения эффективнее и проще.

Комментарии (0)