Tabla de contenido
Autores originales: @hamelsmu, @inc0, @jlewi
Emitir la etiqueta botInstale esta aplicación desde el mercado de Github
Una aplicación GitHub impulsada por el aprendizaje automático, escrita en Python. Una discusión sobre la motivación para construir esta aplicación se describe en esta publicación de blog.
Cuando se abre un problema, el BOT predice si la etiqueta debe ser una: feature request , bug o question y aplica una etiqueta automáticamente si corresponde. Aquí hay una captura de pantalla del bot en acción:
Se pueden ver más ejemplos en la página de inicio de nuestra aplicación. Cabe señalar que el bot puede no aplicar ninguna etiqueta en circunstancias en las que la predicción sea incierta. Consulte la sección Descargos de responsabilidad para obtener más advertencias.
Para utilizar el código en este repositorio, deberá registrar una aplicación GitHub propia e instalar esta aplicación en sus repositorios deseados y almacenar secretos de autenticación.
Primero, camine por la sección de requisitos previos de esta guía de inicio, excepto "El lenguaje de programación de Ruby", ya que usaremos Python como el cliente que interactúa con la API de GitHub.
En segundo lugar, configure su entorno de desarrollo. Asegúrese de crear un secreto de webhook, aunque este paso sea opcional.
A continuación, configure una base de datos Postgres. Puedes hacer esto gratis en Heroku. Instrucciones detalladas (robadas descaradamente desde aquí):
Finalmente, debe crear variables de entorno para todos los secretos, que se describe a continuación.
PRIVATE_KEY : esta es la clave privada que utiliza para autenticarse como una aplicación con la API GitHub.WEBHOOK_SECRET : esto se utiliza para verificar que las cargas útiles recibidas por su aplicación son en realidad de GitHub. Esto se describe aquí.DATABASE_URL : esta es la URL que contiene la información de inicio de sesión para su base de datos PostgreSQL, generalmente en la forma: postgres://<username>:<password>@<url>:5432/<database_name>APP_ID : este es un identificador único que le proporciona GitHub cuando registra su aplicación.FLASK_ENV : Esto generalmente se establece en production o development . Deberá usar deployment para las pruebas locales.PORT : Este es el puerto en el que servirá su aplicación. Tenga en cuenta que si se está desplegando en Heroku, Heroku anulará esta variable con su propio valor al construir su aplicación. Para el desarrollo local, querrá que esto coincida con el puerto de Sysee está sirviendo.APP_URL : esta es la URL para la página de inicio de su aplicación que se proporciona a los usuarios como un enlace en los comentarios de problemas. Puede establecer esto en un valor arbitrario para el desarrollo local.Nota: Si está utilizando ZSH, el complemento DotenV puede ser útil para administrar las variables de entorno.
Instalar dependencias : instalar requisitos.txt en un entorno virtual. Si está utilizando Pipenv, instale las dependencias necesarias desde pipfile.lock escribiendo pipenv install en la raíz de este repositorio.
Ejecute la aplicación Flask : ejecute python flask_app/app.py desde la raíz de este repositorio. Para que esto funcione, debe establecer correctamente las variables de entorno como se describe en la sección Variables de entorno.
Opcional: ejecute la aplicación como contenedor Docker . Se puede construir un contenedor Docker que sirve a Bot de etiqueta de problemas con el bash script/bootstrap comandos desde la raíz de este repositorio. Este script construye una imagen Docker llamada hamelsmu/mlapp , que también está disponible en DockerHub. Si desea ejecutar el contenedor Docker localmente para las pruebas, debe pasar las variables de entorno necesarias al contenedor Docker en tiempo de ejecución, así como exponer los puertos necesarios para la aplicación. Consulte la sección Referencias para obtener más recursos sobre el uso de Docker.
Los activos en este repositorio le permiten desplegar en Heroku (más fácil) o un clúster Kubernetes (más avanzado).
En Heroku, los secretos se pueden pasar como variables de configuración. Además, esta documentación describe cómo puede establecer secretos en Kubernetes. Asegúrese de establecer la variable de entorno FLASK_ENV en production si va a implementar la aplicación públicamente.
Agradecemos todas las formas de contribuciones. Estamos especialmente interesados en lo siguiente:
Los autores de este proyecto están interesados en agregar las siguientes funciones en el futuro cercano:
El código en este repositorio y tutoriales asociados asumen familiaridad con Docker. Esta publicación de blog ofrece una introducción suave a Docker para los científicos de datos.
¿Necesita inspiración para otros productos de datos que pueda construir utilizando el aprendizaje automático y los conjuntos de datos públicos de GitHub? Ver estos ejemplos:
Excelente curso en Flask: Harvardx CS50 Web.
MOOC de FISTAI para el aprendizaje automático y el aprendizaje profundo.
El BOT de la etiqueta de emisión es solo para fines educativos y de demostración. Nuestro objetivo era proporcionar un ejemplo de trabajo mínimo para la comunidad con la menor cantidad de complejidad posible. Por lo tanto, creemos que el modelo demostrado tiene un gran espacio de la mejora. Además, esta aplicación solo funciona en repositorios públicos y no hará nada si se instala en un repositorio privado.