目录
原始作者:@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用于机器学习和深度学习。
问题标签机器人仅用于教育和演示目的。我们的目标是为社区提供最小的工作示例,其复杂性最少。因此,我们认为该模型所展示的有很大的改进空间。此外,此应用只能在公共存储库上使用,如果安装在私人仓库上,则无能为力。