목차
오리지널 저자 : @hamelsmu, @inc0, @jlewi
라벨 봇을 발행하십시오GitHub 마켓 플레이스 에서이 앱을 설치하십시오
Python으로 작성된 머신 러닝으로 구동되는 Github 앱. 이 앱을 구축하기위한 동기에 대한 논의는이 블로그 게시물에 설명되어 있습니다.
문제가 열리면 BOT는 레이블이 A : feature request , bug 또는 question 이어야하는지 예측하고 적절한 경우 자동으로 레이블을 적용합니다. 다음은 봇의 스크린 샷입니다.
앱 홈페이지에서 더 많은 예를 볼 수 있습니다. 봇은 예측이 불확실한 상황에서 라벨을 적용하지 않을 수 있습니다. 더 많은 경고는 면책 조항 섹션을 참조하십시오.
이 저장소의 코드를 사용하려면 자체적으로 GitHub 앱을 등록하고 원하는 저장소 에이 앱을 설치하고 인증 비밀을 저장해야합니다.
먼저, "Ruby Programming Language"섹션을 제외 하고이 시작 가이드의 전제 조건 섹션을 살펴보십시오.
둘째, 개발 환경을 설정하십시오. 이 단계가 선택 사항이지만 Webhook Secret을 만들어야합니다.
다음으로 Postgres 데이터베이스를 설정하십시오. 헤로쿠에서는 무료 로이 작업을 수행 할 수 있습니다. 자세한 지침 (여기에서 뻔뻔스럽게 도난당한) :
마지막으로, 아래에 설명 된 모든 비밀에 대한 환경 변수를 만들어야합니다.
PRIVATE_KEY : 이것은 GitHub API와 함께 앱으로 인증하는 데 사용하는 개인 키입니다.WEBHOOK_SECRET : 앱에서받은 페이로드가 실제로 Github에서 온 것인지 확인하는 데 사용됩니다. 이것은 여기에 설명되어 있습니다.DATABASE_URL : 이것은 일반적으로 PostgresQL 데이터베이스에 대한 로그인 정보가 포함 된 URL입니다. 일반적으로 postgres://<username>:<password>@<url>:5432/<database_name>APP_ID : 앱을 등록 할 때 GitHub에서 제공하는 고유 식별자입니다.FLASK_ENV : 이것은 일반적으로 production 또는 development 로 설정됩니다. 로컬 테스트에 deployment 사용하고 싶을 것입니다.PORT : 이것은 앱이 제공 할 포트입니다. Heroku에 배포하는 경우 Heroku는 앱을 구축 할 때이 변수를 자체 값으로 무시합니다. 지역 개발을 위해서는 이것이 포트 Smee가 제공하는 포트와 일치하기를 원할 것입니다.APP_URL : 이것은 앱의 홈페이지에 대한 URL입니다. 이를 지역 개발을 위해 임의의 가치로 설정할 수 있습니다.참고 : Zsh를 사용하는 경우 Dotenv 플러그인은 환경 변수를 관리하는 데 유용 할 수 있습니다.
종속성 설치 : 요구 사항을 가상 환경에 설치하십시오. PIPENV를 사용하는 경우이 저장소의 루트에 pipenv install 를 입력하여 PipFile.Lock에서 필요한 종속성을 설치하십시오.
플라스크 앱을 실행하십시오 :이 저장소의 루트에서 python flask_app/app.py 실행하십시오. 이것이 작동하려면 환경 변수 섹션에 설명 된대로 환경 변수를 올바르게 설정해야합니다.
선택 사항 - 앱을 Docker 컨테이너로 실행하십시오 . 문제 라벨 봇을 제공하는 Docker 컨테이너는이 저장소의 루트에서 bash script/bootstrap 명령으로 구축 할 수 있습니다. 이 스크립트는 DockerHub에서도 사용할 수있는 hamelsmu/mlapp 라는 Docker 이미지를 작성합니다. 테스트를 위해 Docker 컨테이너를 로컬로 실행하려면 런타임에 필요한 환경 변수를 Docker 컨테이너로 전달하고 앱에 필요한 포트를 노출시켜야합니다. Docker 사용에 대한 더 많은 리소스는 참조 섹션을 참조하십시오.
이 repo의 자산을 사용하면 Heroku (더 쉬운) 또는 Kubernetes 클러스터 (더 고급)에 배치 할 수 있습니다.
Heroku에서는 비밀을 구성 변수로 전달할 수 있습니다. 또한이 문서는 Kubernetes에서 비밀을 설정하는 방법을 설명합니다. 앱을 공개적으로 배포하려는 경우 환경 변수 FLASK_ENV production 에 설정하십시오.
우리는 모든 형태의 기여를 환영합니다. 우리는 특히 다음에 관심이 있습니다.
이 프로젝트의 저자는 가까운 시일 내에 다음과 같은 기능을 추가하는 데 관심이 있습니다.
이 repo 및 관련 튜토리얼의 코드는 Docker에 대한 친숙 함을 가정합니다. 이 블로그 게시물은 데이터 과학자들을위한 Docker에 대한 부드러운 소개를 제공합니다.
기계 학습 및 공개 GitHub 데이터 세트를 사용하여 구축 할 수있는 다른 데이터 제품에 대한 영감이 필요하십니까? 예제를 참조하십시오.
플라스크에서 우수한 코스 : Harvardx CS50 웹.
기계 학습 및 딥 러닝을위한 Fastai의 MOOC.
이슈 라벨 봇은 교육 및 시연 목적으로 만 사용됩니다. 우리의 목표는 커뮤니티에 최소한의 복잡성을 최소한의 복잡성으로 제공하는 것이 었습니다. 따라서 우리는 모델이 개선으로 인한 훌륭한 공간을 가지고 있다고 생각합니다. 또한 이 앱은 공개 리포지토리에서만 작동하며 개인 레포에 설치하면 아무것도하지 않습니다.