Daftar isi
Penulis asli: @hamelsmu, @inc0, @jlewi
Bot Label MasalahInstal aplikasi ini dari pasar github
Aplikasi GitHub yang ditenagai oleh Machine Learning, yang ditulis dalam Python. Diskusi tentang motivasi untuk membangun aplikasi ini dijelaskan dalam posting blog ini.
Ketika masalah dibuka, bot memprediksi apakah label harus: feature request , bug atau question dan menerapkan label secara otomatis jika sesuai. Berikut adalah tangkapan layar dari bot yang sedang beraksi:
Lebih banyak contoh dapat dilihat di beranda aplikasi kami. Perlu dicatat bahwa bot mungkin tidak menerapkan label apa pun dalam keadaan di mana prediksi tidak pasti. Lihat bagian Penafian untuk lebih banyak peringatan.
Untuk memanfaatkan kode di repositori ini, Anda harus mendaftarkan aplikasi github Anda sendiri dan menginstal aplikasi ini pada repositori yang Anda inginkan dan menyimpan rahasia otentikasi.
Pertama, berjalanlah melalui bagian prasyarat dari panduan memulai ini kecuali bagian "Bahasa Pemrograman Ruby" karena kami akan menggunakan Python sebagai gantinya sebagai klien yang berinteraksi dengan Github API.
Kedua, siapkan lingkungan pengembangan Anda. Pastikan Anda membuat rahasia webhook, meskipun langkah ini opsional.
Selanjutnya, atur database Postgres. Anda dapat melakukan ini secara gratis di Heroku. Instruksi terperinci (dicuri tanpa malu -malu dari sini):
Akhirnya, Anda perlu membuat variabel lingkungan untuk semua rahasia, yang dijelaskan di bawah ini.
PRIVATE_KEY : Ini adalah kunci pribadi yang Anda gunakan untuk mengotentikasi sebagai aplikasi dengan Github API.WEBHOOK_SECRET : Ini digunakan untuk memverifikasi bahwa muatan yang diterima oleh aplikasi Anda sebenarnya dari GitHub. Ini dijelaskan di sini.DATABASE_URL : Ini adalah URL yang berisi informasi login untuk database PostgreSQL Anda, biasanya dalam formulir: postgres://<username>:<password>@<url>:5432/<database_name>APP_ID : Ini adalah pengidentifikasi unik yang diberikan kepada Anda oleh GitHub saat Anda mendaftarkan aplikasi Anda.FLASK_ENV : Ini biasanya diatur ke production atau development . Anda ingin menggunakan deployment untuk pengujian lokal.PORT : Ini adalah port yang akan disajikan aplikasi Anda. Perhatikan bahwa jika Anda menggunakan Heroku, Heroku akan mengganti variabel ini dengan nilai mereka sendiri saat membangun aplikasi Anda. Untuk pengembangan lokal, Anda ingin ini cocok dengan port smee.APP_URL : Ini adalah URL untuk beranda aplikasi Anda yang diberikan kepada pengguna sebagai tautan dalam komentar masalah. Anda dapat mengatur ini ke nilai sewenang -wenang untuk pengembangan lokal.Catatan: Jika Anda menggunakan ZSH, plugin DotenV dapat berguna untuk mengelola variabel lingkungan.
Instal Dependencies : Instal persyaratan.txt ke lingkungan virtual. Jika Anda menggunakan PIPENV, instal dependensi yang diperlukan dari PipFile.lock dengan mengetikkan pipenv install pada root repositori ini.
Jalankan aplikasi Flask : Jalankan python flask_app/app.py dari root repositori ini. Agar ini berfungsi, Anda harus mengatur variabel lingkungan dengan benar seperti yang dijelaskan di bagian Variabel Lingkungan.
Opsional - Jalankan aplikasi sebagai wadah Docker . Wadah Docker yang menyajikan bot label masalah dapat dibangun dengan bash script/bootstrap perintah dari akar repositori ini. Skrip ini membangun gambar Docker bernama hamelsmu/mlapp , yang juga tersedia di Dockerhub. Jika Anda ingin menjalankan wadah Docker secara lokal untuk pengujian, Anda harus meneruskan variabel lingkungan yang diperlukan ke wadah Docker saat runtime, serta mengekspos port yang diperlukan untuk aplikasi. Lihat bagian Referensi untuk lebih banyak sumber daya tentang penggunaan Docker.
Aset dalam repo ini memungkinkan Anda untuk menggunakan Heroku (lebih mudah) atau kluster Kubernetes (lebih maju).
Di Heroku, rahasia dapat diteruskan sebagai variabel konfigurasi. Selain itu, dokumentasi ini menjelaskan bagaimana Anda dapat menetapkan rahasia di Kubernetes. Pastikan Anda mengatur variabel lingkungan FLASK_ENV ke production jika Anda akan menggunakan aplikasi secara publik.
Kami menyambut semua bentuk kontribusi. Kami sangat tertarik dengan berikut ini:
Para penulis proyek ini tertarik untuk menambahkan fitur -fitur berikut dalam waktu dekat:
Kode dalam repo ini dan tutorial terkait mengasumsikan keakraban dengan Docker. Posting blog ini menawarkan pengantar yang lembut kepada Docker untuk para ilmuwan data.
Butuh inspirasi untuk produk data lain yang dapat Anda bangun menggunakan pembelajaran mesin dan kumpulan data github publik? Lihat contoh -contoh ini:
Kursus yang sangat baik tentang Flask: Web Harvardx CS50.
MOOC oleh Fastai untuk pembelajaran mesin dan pembelajaran yang mendalam.
Bot-label-label hanya untuk tujuan pendidikan dan demonstrasi. Tujuan kami adalah untuk memberikan contoh kerja minimal bagi masyarakat dengan jumlah kompleksitas paling sedikit. Karena itu, kami percaya model yang ditunjukkan memiliki ruang yang bagus dari perbaikan. Selain itu, aplikasi ini hanya berfungsi pada repositori publik dan tidak akan melakukan apa pun jika diinstal pada repo pribadi.