Оглавление
Оригинальные авторы: @hamelsmu, @inc0, @jlewi
Выпуск ярлык ботУстановите это приложение с рынка GitHub
Приложение GitHub, основанное на машинном обучении, написанное на Python. Обсуждение мотивации для построения этого приложения описано в этом посте в блоге.
Когда проблема открыта, бот прогнозирует, если этикетка должна быть: feature request , bug или question и применяет метку автоматически, если это необходимо. Вот скриншот бота в действии:
На домашней странице нашего приложения можно посмотреть больше примеров. Следует отметить, что бот не может применять какую -либо метку в обстоятельствах, когда прогноз является неопределенным. Смотрите раздел «Отказ от ответственности» для получения дополнительной информации.
Чтобы использовать код в этом репозитории, вам нужно будет зарегистрировать собственное приложение GitHub и установить это приложение в желаемые репозитории и хранить секреты аутентификации.
Во -первых, пройдите через раздел «Пререквизиты этого руководства по началу работы» , за исключением раздела «Language Programming The Ruby», так как мы будем использовать Python вместо этого в качестве клиента, который взаимодействует с API GitHub.
Во -вторых, установите среду разработки. Убедитесь, что вы создаете секрет веб -хука, хотя этот шаг не является обязательным.
Далее настройте базу данных Postgres. Вы можете сделать это бесплатно на Heroku. Подробные инструкции (украденные беззастенчиво отсюда):
Наконец, вам необходимо создать переменные среды для всех секретов, которые описаны ниже.
PRIVATE_KEY : Это личный ключ, который вы используете для аутентификации как приложение с API GitHub.WEBHOOK_SECRET : Это используется для проверки того, что полезные нагрузки, полученные вашим приложением, на самом деле от Github. Это описано здесь.DATABASE_URL : Это URL, который содержит информацию о входе в систему для вашей базы данных PostGRESQL, обычно в форме: postgres://<username>:<password>@<url>:5432/<database_name>APP_ID : Это уникальный идентификатор, предоставленный вам GitHub при регистрации вашего приложения.FLASK_ENV : Обычно это установлено для production или development . Вы захотите использовать deployment для локального тестирования.PORT : это порт, на котором будет отбывать ваше приложение. Обратите внимание, что если вы развернете в Heroku, Heroku переопределит эту переменную с их собственной ценностью при создании вашего приложения. Для местной разработки вы захотите, чтобы это соответствовало порту, чтобы служить.APP_URL : Это URL -адрес домашней страницы вашего приложения, которая предоставляется пользователям в качестве ссылки в комментариях. Вы можете установить это на произвольную ценность для локальной разработки.ПРИМЕЧАНИЕ. Если вы используете ZSH, плагин Dotenv может быть полезен для управления переменными среды.
Установите зависимости : установите требования. Если вы используете Pipenv Установите необходимые зависимости от Pipfile.lock, вводя pipenv install в корне этого репозитория.
Запустите приложение Flask : запустите python flask_app/app.py из корня этого репозитория. Чтобы это работало, вы должны правильно установить переменные среды, как описано в разделе переменных среды.
Необязательно - запустить приложение в качестве контейнера Docker . Контейнер Docker, который обслуживает бот-проблемы, может быть построен с помощью bash script/bootstrap команды из корня этого репозитория. Этот сценарий создает изображение Docker под названием hamelsmu/mlapp , которое также доступно на Dockerhub. Если вы хотите запустить контейнер Docker локально для тестирования, вы должны передать необходимые переменные среды в контейнер Docker во время выполнения, а также выявить необходимые порты для приложения. См. Раздел ссылок для получения дополнительных ресурсов по использованию Docker.
Активы в этом репо позволяют вам развернуться в Heroku (проще) или кластер Kubernetes (более продвинутый).
В Heroku секреты могут быть переданы как переменные конфигурации. Кроме того, эта документация описывает, как вы можете установить секреты в Kubernetes. Убедитесь, что вы установите переменную среды FLASK_ENV для production , если вы собираетесь публично развернуть приложение.
Мы приветствуем все формы вклада. Нас особенно интересует следующее:
Авторы этого проекта заинтересованы в добавлении следующих функций в ближайшем будущем:
Код в этом репо и связанном учебном пособии предполагает знакомство с Docker. В этом сообщении предлагается мягкое введение в Docker для ученых данных.
Нужно вдохновение для других продуктов данных, которые вы можете создать, используя машинное обучение и наборы данных общего GitHub? Смотрите эти примеры:
Отличный курс на колбе: Harvardx CS50 Web.
MOOC от Fastai для машинного обучения и глубокого обучения.
БОТ-блока проблем предназначена только для образовательных и демонстрационных целей. Наша цель состояла в том, чтобы дать минимальный рабочий пример для сообщества с наименьшим количеством сложности, насколько это возможно. Поэтому мы считаем, что продемонстрированная модель имеет большое место от улучшения. Кроме того, это приложение работает только на общественных репозиториях и ничего не сделает, если установлено на частном репо.