
У вас есть блокнот 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