目次
元の著者:@hamelsmu、 @inc0、@jlewi
ラベルボットを発行しますこのアプリをGithub Marketplaceからインストールします
Pythonで書かれた機械学習を搭載したGitHubアプリ。このアプリを構築する動機についての議論は、このブログ投稿で説明されています。
問題が開かれた場合、ボットは、ラベルがfeature request 、 bug 、またはquestionであるかどうかを予測し、必要に応じてラベルを自動的に適用します。これが、動作中のボットのスクリーンショットです。
より多くの例をアプリのホームページで見ることができます。予測が不確実な状況では、ボットがラベルを適用しないことに注意する必要があります。詳細については、免責事項セクションを参照してください。
このリポジトリでコードを利用するには、独自のgithubアプリを登録し、このアプリを希望のリポジトリにインストールし、認証シークレットを保存する必要があります。
まず、GitHub APIとインターフェイスするクライアントとして代わりにPythonを使用するため、「Rubyプログラミング言語」セクションを除いて、この開始ガイドの前提条件セクションを歩きます。
第二に、開発環境をセットアップします。このステップはオプションであるにもかかわらず、Webhook Secretを作成してください。
次に、Postgresデータベースを設定します。 Herokuでこれを無料で行うことができます。詳細な指示(ここから恥知らずに盗まれました):
最後に、以下に説明するすべての秘密の環境変数を作成する必要があります。
PRIVATE_KEY :これは、GitHub APIを使用してアプリとして認証するために使用する秘密鍵です。WEBHOOK_SECRET :これは、アプリが受信したペイロードが実際にGitHubからであることを確認するために使用されます。これについてはここで説明します。DATABASE_URL :これは、通常はpostgres://<username>:<password>@<url>:5432/<database_name> postgresqlデータベースのログイン情報を含むURLです。APP_ID :これは、アプリを登録するときにGitHubが提供する一意の識別子です。FLASK_ENV :これは通常、 productionまたはdevelopmentいずれかに設定されています。ローカルテストにはdeploymentを使用する必要があります。PORT :これは、アプリが提供するポートです。 Herokuに展開する場合、Herokuはアプリを構築するときにこの変数を独自の価値でオーバーライドすることに注意してください。ローカル開発のために、これがポートSMEEが提供しているポートと一致するようにしたいと思うでしょう。APP_URL :これは、問題のコメントのリンクとしてユーザーに提供されるアプリのホームページのURLです。これを現地開発のために任意の価値に設定できます。注:ZSHを使用している場合、dotenvプラグインは環境変数の管理に役立ちます。
依存関係をインストール:要件を仮想環境にインストールします。 pipenvを使用している場合、このリポジトリのルートにpipenv install 。
Flaskアプリを実行:このリポジトリのルートからpython flask_app/app.pyを実行します。これを機能させるには、環境変数セクションで説明されているように、環境変数を正しく設定する必要があります。
オプション-Dockerコンテナとしてアプリを実行します。問題ラベルボットを提供するDockerコンテナは、このリポジトリのルートからコマンドbash script/bootstrapで構築できます。このスクリプトは、 hamelsmu/mlappという名前のDocker画像を構築します。これはDockerHubでも入手できます。テストのためにDockerコンテナをローカルに実行する場合は、実行時に必要な環境変数をDockerコンテナに渡すだけでなく、アプリに必要なポートを公開する必要があります。 Dockerの使用に関するリソースについては、参照セクションを参照してください。
このリポジトリの資産を使用すると、Heroku(より簡単)またはKubernetesクラスター(より高度)に展開できます。
Herokuでは、秘密を構成変数として渡すことができます。さらに、このドキュメントでは、Kubernetesで秘密を設定する方法について説明しています。アプリを公開しようとしている場合は、環境変数FLASK_ENV productionに設定してください。
あらゆる形態の貢献を歓迎します。特に以下に興味があります。
このプロジェクトの著者は、近い将来に次の機能を追加することに興味があります。
このリポジトリと関連するチュートリアルのコードは、Dockerに精通しています。このブログ投稿では、データサイエンティスト向けのDockerへの穏やかな紹介を提供しています。
機械学習とパブリックGitHubデータセットを使用して構築できる他のデータ製品のインスピレーションが必要ですか?これらの例を参照してください:
フラスコの優れたコース:Harvardx CS50 Web。
機械学習と深い学習のためのFastaiによるMOOCS。
Issue-Label Botは、教育およびデモンストレーションのみを目的としています。私たちの目標は、コミュニティに最小限の作業例を可能な限り最小限の量で提供することでした。したがって、実証されたモデルには改善からの大きな余地があると考えています。さらに、このアプリは公開リポジトリでのみ機能し、プライベートリポジトリにインストールされた場合は何もしません。