目錄
原始作者:@hamelsmu, @inc0,@jlewi
發行標籤機器人從GitHub市場安裝此應用程序
由Python編寫的機器學習提供動力的GitHub應用程序。此博客文章中描述了構建此應用程序動機的討論。
當問題打開時,該機器人預測標籤是否應為: feature request , bug或question ,並在適當的情況下自動應用標籤。這是機器人行動中的屏幕截圖:
可以在我們的應用主頁上查看更多示例。應當指出,在預測不確定的情況下,機器人可能不會應用任何標籤。有關更多警告,請參見“免責聲明”部分。
要在此存儲庫中使用代碼,您需要註冊自己的GitHub應用程序,並在所需的存儲庫上安裝此應用程序並存儲身份驗證秘密。
首先,瀏覽本開始指南的先決條件部分,除了“ Ruby編程語言”部分,因為我們將使用Python作為與GitHub API接口的客戶端。
第二,設置您的開發環境。即使此步驟是可選的,也要確保您創建一個Webhook秘密。
接下來,設置一個Postgres數據庫。您可以在Heroku上免費執行此操作。詳細說明(從這裡無恥地被盜):
最後,您需要為所有秘密創建環境變量,如下所述。
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插件可用於管理環境變量。
安裝依賴項:在虛擬環境中安裝需求.txt。如果您使用的是pipenv安裝pipfile.lock的必要依賴項,則通過在此存儲庫的根部鍵入pipenv install 。
從此存儲庫的根中運行燒瓶應用程序:運行python flask_app/app.py 。為此,您必須正確設置環境變量部分中所述的環境變量。
可選 -作為Docker容器運行應用程序。可以使用該存儲庫的根部使用命令bash script/bootstrap構建提供問題標籤機器人的Docker容器。該腳本構建了名為hamelsmu/mlapp的Docker映像,該圖像也可以在Dockerhub上找到。如果您希望在本地運行Docker容器進行測試,則必須在運行時將必要的環境變量傳遞給Docker容器,並揭示應用程序的必要端口。有關使用Docker的更多資源,請參見參考部分。
此存儲庫中的資產使您可以部署到Heroku(更容易)或Kubernetes群集(更高級)。
在Heroku中,可以將秘密作為配置變量傳遞。此外,該文檔描述瞭如何在Kubernetes中設置秘密。如果要公開部署該應用程序,請確保將環境變量FLASK_ENV設置為production 。
我們歡迎所有形式的貢獻。我們對以下內容特別感興趣:
該項目的作者有興趣在不久的將來添加以下功能:
此存儲庫中的代碼和關聯的教程假設熟悉Docker。這篇博客文章對數據科學家的Docker提供了溫和的介紹。
需要使用機器學習和公共GitHub數據集構建的其他數據產品的靈感嗎?看到以下示例:
燒瓶上的出色課程:哈佛CS50網絡。
Fastai的MOOC用於機器學習和深度學習。
問題標籤機器人僅用於教育和演示目的。我們的目標是為社區提供最小的工作示例,其複雜性最少。因此,我們認為該模型所展示的有很大的改進空間。此外,此應用只能在公共存儲庫上使用,如果安裝在私人倉庫上,則無能為力。