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