У вас есть блокнот Jupyter с готовым анализом, и вы хотите поделиться им с другими. К сожалению, ваши друзья не программисты. У них не установлен блокнот Jupyter, даже Python. Вы хотели бы дать им несколько параметров для настройки. Как вы делитесь с ними блокнотом?

Я хотел бы представить вам фреймворк с открытым исходным кодом Меркурий, который поможет вам с проблемой совместного использования ноутбуков. Вы можете преобразовать блокнот Jupyter в веб-приложение, добавив заголовок YAML. Интерактивные виджеты генерируются на основе параметров YAML. Ваши друзья могут настроить выбранные переменные и нажать кнопку Выполнить, чтобы запустить блокнот.

В этом посте я хотел бы показать вам, как преобразовать блокнот Jupyter в веб-приложение и развернуть его на Heroku (бесплатный dyno).

Записная книжка

Я подготовил очень простую записную книжку с набором данных Tips из пакета seaborn. Скриншот ноутбука ниже.

Я хочу сделать параметр hue интерактивным. Пользователь выберет значение hue из списка: ["smoker", "sex", "time", "day"].

Установить Меркурий

Давайте установим пакет Mercury. Вы можете сделать это с помощью следующей команды:

pip install mljar-mercury

Мы можем определить файл requirements.txt и добавить его туда. Мы добавим дополнительный пакет seaborn (для визуализации).

Файл requirements.txt:

mljar-mercury
seaborn

Режим часов Меркурий

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

mercury watch tips_dashboard.ipynb

Теперь вы можете открыть веб-браузер и по адресу https://127.0.0.1:8000 вы увидите работающий Mercury.

Вы можете нажать кнопку Open, чтобы увидеть свою записную книжку:

Слева вы можете увидеть желтое окно с предупреждением. Давайте добавим заголовок YAML в блокнот. Пожалуйста, не закрывайте Меркурий. Он будет просматривать файл вашей записной книжки, и после каждого сохранения в записной книжке Mercury будет автоматически обновлять веб-приложение.

Определить заголовок YAML

Пожалуйста, добавьте пустую ячейку вверху блокнота. Вы можете сделать это, щелкнув текущую первую ячейку и выбрав Insert в верхнем меню.

Важно изменить тип ячейки на RAW.

Давайте определим заголовок YAML:

В заголовке мы определили:

  • название и описание,
  • скрыть код (параметр show-code),
  • hue — переменная, которую пользователь выберет из списка.

Давайте обновим наш код, чтобы использовать переменную hue. Я добавлю отдельную ячейку с переменной hue и ее значением по умолчанию. Более того, я добавлю заголовок Markdown. Код обновленного блокнота приведен ниже:

Давайте проверим приложение в веб-браузере.

Вы можете поиграть с приложением, выбрав различные значения hue и нажав кнопку Run.

Развернуть на Heroku

Веб-приложение готово! Давайте развернем его на Heroku.

Нам понадобится Procfile, который сообщит Heroku, как запускать наш код. Procfile будет иметь одну строку:

web: mercury run 0.0.0.0:$PORT

Пожалуйста, создайте репозиторий GitHub и добавьте туда свой блокнот, файлы Procfile и requirements.txt.

git add tips_dashboard.ipynb
git add requirements.txt
git add Procfile
git commit -am "add tips dashboard"
git push

Давайте создадим новое приложение Heroku:

heroku create mercury-demo-1

Развернуть на Heroku:

git push heroku main

Поздравляем!!! 🎉 🎉🎉 Теперь вы можете открыть свое приложение в веб-браузере.

Мое приложение работает по адресу https://mercury-demo-1.herokuapp.com

Мой код находится на https://github.com/pplonski/mercury_demo_1

Вы можете видеть, что у меня есть несколько приложений (ноутбуков). Это потому, что в Mercury есть встроенная галерея приложений, так что вы можете опубликовать несколько блокнотов на одном сервере.

Наше приложение работает на Heroku:

Обратите внимание, что доступна кнопка Donwload. Пользователи могут скачать окончательный блокнот.

Краткое содержание

Существует несколько подходов к совместному использованию записных книжек с другими (особенно с непрограммистами). Если вы хотите поделиться блокнотом Jupyter в качестве приложения с несколькими параметрами, которые можно настроить, Mercury может быть хорошим выбором. Блокнот можно преобразовать в веб-приложение, добавив заголовок YAML. Ваши друзья могут поиграть с параметрами и выполнить блокнот.

Фреймворк Mercury имеет открытый исходный код, код которого доступен на GitHub: https://github.com/mljar/mercury.

Сайт Меркурия: https://mljar.com/mercury