Índice
Autores originais: @hamelsmu, @inc0, @jlewi
Botty BotInstale este aplicativo no mercado do Github
Um aplicativo GitHub alimentado pelo aprendizado de máquina, escrito em Python. Uma discussão sobre a motivação para a construção deste aplicativo é descrita nesta postagem do blog.
Quando um problema é aberto, o bot prevê se o rótulo for: feature request , bug ou question e aplica um rótulo automaticamente, se apropriado. Aqui está uma captura de tela do bot em ação:
Mais exemplos podem ser vistos na página inicial do nosso aplicativo. Deve -se notar que o bot pode não aplicar nenhum rótulo em circunstâncias em que a previsão seja incerta. Veja a seção de isenções de responsabilidade para obter mais advertências.
Para utilizar o código neste repositório, você precisará registrar um aplicativo GitHub próprio e instalar este aplicativo nos repositórios desejados e armazenar segredos de autenticação.
Primeiro, caminhe pela seção Pré -requisitos deste guia de início, exceto a seção "A linguagem de programação do rubi", pois usaremos o Python como o cliente que interface com a API do GitHub.
Segundo, configure seu ambiente de desenvolvimento. Certifique -se de criar um segredo do webhook, mesmo que essa etapa seja opcional.
Em seguida, configure um banco de dados PostGres. Você pode fazer isso de graça no Heroku. Instruções detalhadas (roubadas descaradamente daqui):
Por fim, você precisa criar variáveis de ambiente para todos os segredos, descritos abaixo.
PRIVATE_KEY : Esta é a chave privada que você usa para autenticar como um aplicativo com a API do GitHub.WEBHOOK_SECRET : Isso é usado para verificar se as cargas úteis recebidas pelo seu aplicativo são realmente do GitHub. Isso é descrito aqui.DATABASE_URL : Este é o URL que contém as informações de login para o seu banco de dados PostGresql, geralmente no formulário: postgres://<username>:<password>@<url>:5432/<database_name>APP_ID : Este é um identificador exclusivo fornecido a você pelo GitHub quando você registra seu aplicativo.FLASK_ENV : geralmente é definido como production ou development . Você deseja usar deployment para testes locais.PORT : Esta é a porta que seu aplicativo estará servindo. Observe que, se você estiver implantando para a Heroku, a Heroku substituirá essa variável por seu próprio valor ao criar seu aplicativo. Para o desenvolvimento local, você deseja que isso corresponda à porta que Smee está servindo.APP_URL : Este é o URL para a página inicial do seu aplicativo que é fornecida aos usuários como um link em comentários de emissão. Você pode definir isso como um valor arbitrário para o desenvolvimento local.Nota: Se você estiver usando o ZSH, o plug -in dotenv pode ser útil para gerenciar variáveis de ambiente.
Instale dependências : instale requisitos.txt em um ambiente virtual. Se você estiver usando o PIPENV, instale as dependências necessárias do pipfile.lock, digitando pipenv install na raiz deste repositório.
Execute o aplicativo Flask : Execute python flask_app/app.py da raiz deste repositório. Para que isso funcione, você deve definir corretamente as variáveis de ambiente, conforme descrito na seção Variáveis de ambiente.
Opcional - Execute o aplicativo como contêiner do docker . Um contêiner do docker que serve o bot rótulo pode ser construído com o bash script/bootstrap a partir da raiz deste repositório. Este script cria uma imagem do docker chamada hamelsmu/mlapp , que também está disponível no DockerHub. Se você deseja executar o contêiner do docker localmente para teste, deve passar as variáveis de ambiente necessárias para o contêiner do Docker em tempo de execução, além de expor as portas necessárias para o aplicativo. Consulte a seção Referências para obter mais recursos sobre o uso do Docker.
Os ativos neste repo permitem implantar para o Heroku (mais fácil) ou um cluster Kubernetes (mais avançado).
No Heroku, os segredos podem ser transmitidos como variáveis de configuração. Além disso, esta documentação descreve como você pode definir segredos em Kubernetes. Certifique -se de definir a variável de ambiente FLASK_ENV para production se quiser implantar publicamente o aplicativo.
Congratulamo -nos com todas as formas de contribuições. Estamos especialmente interessados no seguinte:
Os autores deste projeto estão interessados em adicionar os seguintes recursos em um futuro próximo:
O código neste repositório e tutorial associado (s) assumem familiaridade com o Docker. Esta postagem do blog oferece uma introdução suave ao Docker para cientistas de dados.
Precisa de inspiração para outros produtos de dados que você pode construir usando o aprendizado de máquina e os conjuntos de dados públicos do GitHub? Veja estes exemplos:
Excelente curso no Flask: Harvardx CS50 Web.
MOOCs de Fastai para aprendizado de máquina e aprendizado profundo.
O bot de etiqueta é apenas para fins educacionais e de demonstração. Nosso objetivo era fornecer um exemplo de trabalho mínimo para a comunidade com a menor quantidade de complexidade possível. Portanto, acreditamos que o modelo demonstrado tem grande espaço a partir de melhorias. Além disso, este aplicativo funciona apenas em repositórios públicos e não fará nada se instalado em um repositório privado.