近几个月来,使用生成式预训练 Transformer (GPT) 模型进行自然语言处理 (NLP) 已获得显着关注。基于 Transformer 架构的 GPT 模型可以从任意来源的输入数据生成文本,并且可以经过训练来识别错误并检测文本中的异常。因此,GPT 模型越来越多地用于各种应用,从自然语言理解到文本摘要和问答。

 

在软件开发领域,开发人员使用拉取请求向代码库提交建议的更改。然而,其他开发人员的审查有时可能需要很长时间并且不准确,并且在某些情况下,这些审查可能会引入新的错误和问题。为了降低这种风险,在我的研究过程中,我发现 GPT 模型的集成是可能的,我们可以添加 Azure OpenAI 服务作为 Azure Pipelines 服务的拉取请求审核者。

 

GPT 模型在开发人员代码库上进行训练,能够检测潜在的编码问题,例如拼写错误、语法错误、风格不一致和代码异味。此外,他们还可以评估代码结构并提出整体代码质量的改进建议。

 

GPT 模型经过训练后,可以将它们集成到 Azure Pipelines 服务中,以便它们可以自动审查拉取请求并提供反馈。这有助于减少代码审查所需的时间,并减少引入错误和问题的可能性。

 

如何使用它

 

1.创建Azure OpenAI实例

Azure OpenAI 服务提供对 OpenAI 强大语言模型(包括 GPT-3、Codex 和 Embeddings 模型系列)的 REST API 访问。此外,新的 GPT-4 和 ChatGPT (gpt-35-turbo) 型号系列现已全面上市。这些模型可以轻松适应您的特定任务,包括但不限于内容生成、摘要、语义搜索和自然语言到代码翻译。用户可以通过 REST API、Python SDK 或 Azure OpenAI Studio 中基于 Web 的界面访问该服务。

 

 

VinodSoni_0-1687202692697.png

 

 2. 部署模型

设置部署以针对 Azure OpenAI Studio 中提供的基本模型或自定义模型进行 API 调用。

VinodSoni_1-1687202692704.png

 

3. 安装扩展

要使用 GPT 拉取请求审核任务,请首先在 Azure DevOps 组织中安装该扩展。单击“免费获取”按钮并按照提示进行安装。您可能需要授权扩展程序才能访问您的 Azure DevOps 帐户。

 

 

 

4. 将任务添加到构建管道

安装扩展后,将任务添加到构建管道中。转到构建管道,单击“+”图标添加新任务,然后搜索“Review PullRequest by GPT”。选择它并将其添加到您的管道中。

 

5. 配置任务

将任务添加到管道后,对其进行配置。在任务配置中,提供 OpenAI API 的 API 密钥。要创建 API 密钥,请转到 Azure OpenAI 实例 > 密钥和端点,如下面的屏幕截图所示。 

 

注意:这些密钥用于访问您的认知服务 API。不要分享您的钥匙。安全地存储它们 - 例如,使用 Azure Key Vault。我们还建议定期重新生成这些密钥。只需一把钥匙即可进行 API 调用。重新生成第一个密钥时,您可以使用第二个密钥继续访问服务。

 

VinodSoni_4-1687203166840.png

 

 

6. 审核拉取请求

当拉取请求触发构建时,任务将对其进行审核。如果对更改的代码有反馈,该任务将向 Pull Request 添加注释。如果手动触发构建,则任务将被跳过。

 

7. 权限设置

在使用此任务之前,请确保构建服务有权向存储库中的拉取请求做出贡献,并允许该任务访问系统令牌。

8. 授予构建服务代理权限

VinodSoni_2-1687202692705.png

 

9.允许Task访问系统令牌

根据您使用的管道类型,请执行以下两个步骤之一:

 

10.Yaml管道

添加一个 checkout 部分,并将 persistCredentials 设置为 true。

步骤:- 结账:自我 persistCredentials:true

 

11.经典编辑器

在“代理作业”属性中启用选项“允许脚本访问 OAuth 令牌”。

VinodSoni_3-1687202692706.png

 

总体而言,将 GPT 模型集成为 Azure Pipelines 的拉取请求审阅者可以帮助减少代码审阅所需的时间并提高代码的整体质量。这是开发过程中向前迈出的一大步,有助于使软件开发过程更加高效和安全。

 

请随时提供有关此主题的反馈和任何建议。