AI节省时间并提高我们软件开发人员的生产力

通过: 阿迪提亚·普尔瓦

我们如何在日常软件开发中使用人工智能?

AI,特别是ChatGPT,已经迅速改变了软件行业(以及其他行业)。然而,ChatGPT对于我们来说过于平淡和原始,无法高效利用。这就是为什么我们决定在ChatGPT背后的技术基础上建立,即GPT本身;同时集成了与我们日常开发流程相结合的功能。我们开发了CVAI,以提高Clearview的开发效率。

为什么需要人工智能?

AI,尤其是LLM,可以作为一个非常聪明的鹦鹉,如果我们正确地教导它们,它们可以重复正确的文字。幸运的是,代码是文本形式的,这意味着我们可以使用LLM来模仿我们想要的代码。鉴于它们的大量语料库,LLM可以根据现有的训练数据和给定的提示猜测下一个正确的代码,或者是最可能的文本。

好的例子包括:

  • 分析 — 人工智能可以根据代码的结构语法帮助检测潜在问题。它可以作为静态分析工具和代码检查器。
  • 重构 - 在进行分析时,我们可以要求AI提出重构建议,从而从思维的链条中解放出来。
  • 评论-进一步完善思路,AI可以在需要时对最终代码进行审查,并可能进行最后的调整。

我们在Clearview的问题

我们在Clearview有这些日常任务,我们看到了AI的潜在的用例,可以帮助我们节省时间并提高效率。

  • 管理JIRA我们知道,JIRA运行缓慢并不是我们喜欢整天盯着的东西。因此,我们实施了一个摘要生成器,可以总结出我们在JIRA任务上应该做什么。
  • 在实施代码之后的下一步是提交PR,并且我们有一个特定的模板用于PR,以确保评审人员了解上下文以及PR的重点。但是,PR的大部分内容是JIRA描述的副本,并在其中加入了详细信息,以适应任务的变化。
  • 审查公关 当开发者可以专注于审查重要内容时,我们可以借助人工智能来解除审查拼写错误、最佳实践、不一致性等微小细节的负担。这将充当第三只眼睛,帮助我们发现公关中的潜在问题。
  • 重构 我们的代码库中包含许多我们想要重构的旧方法。例如,我们在前端使用了 Axios,我们希望将其迁移到 React Query。在基于示例的生成中,人工智能发挥了重要作用。我们向AI展示旧代码的样子以及重构后的样子,然后我们再给它另一段旧代码,它可以根据我们的示例推断出新的重构代码的样子。

计算机视觉人工智能

CVAI是Clearview AI的简称,它是一套模块化功能,可以与我们的一些内部工具进行接口。与输出文本的基于聊天的人工智能不同,CVAI输出的是JSON格式的数据,这样可以在前端进行解析,从而以更好的用户体验呈现出来。由于它输出的是JSON格式,所以它的模块化特性非常有帮助,因为它可以使用先前的JSON输出来延续对话。

CVAI是:

  • 与GitHub和JIRA集成 - 允许在这些工具上使用自然的查询语言。例如:“活动PR是什么?本周到期的任务有哪些?”
  • 能够访问存储库元数据,根据分支名称和提交消息生成拉取请求。
  • 能够访问拉取请求数据并进行代码审查。
  • 能够连接GitHub和JIRA之间的知识,以产生有意义的发布变更日志和拉取请求。

首先看一下CVAI

以下是您可以看到AI机器人正在进行工作。

CVAI 进行代码审查。

CVAI doing a Code review.
CVAI doing a Code review.

CVAI 进行代码重构。

CVAI doing code refactoring.

CVAI 与 JIRA 的接口化。

CVAI interfacing with GitHub and creating a PR.
CVAI interfacing with GitHub and creating a PR.

CVAI 与 GitHub 进行接口交互并创建一个 PR。

CVAI interfacing with GitHub and creating a PR.
CVAI interfacing with GitHub and creating a PR.

所显示的屏幕截图并非产品的实际图像,我们使用图形编辑软件来避免在截屏中分享敏感信息。

如何在内部运作?

CVAI 是在 GPT-4 的基础上构建的,使用了 Assistant API 上的 128K 上下文。我们需要大范围上下文来能够提供差异并生成代码评审或拉取请求。

它与JIRA和GitHub进行接口连接,因为它可以使用GPT函数调用,所以它知道在处理用户输入之前何时调用JIRA和GitHub。

生成一个公关

例如,当我们请求它生成公关时,它将按照以下流程运行:

  1. 获取当前分支的名称
  2. 从JIRA获取与该分支相关的工单。
  3. 从GitHub获取此分支上的提交列表
  4. 根据票务信息生成拉取请求标题
  5. 根据票务信息生成拉取请求描述
  6. 和提交记录列表
  7. 自动创建拉取请求

在这个流程中,有4个功能调用发生。

请求审查PR

另一个例子是当我们请求对其进行审核的 PR。

  1. 获取 PR 分支和目标分支之间的差异
  2. 获取与公关相关的门票
  3. 根据工单信息和差异进行代码审查。

改进

我们观察了在使用CVAI之前花费的时间以及它如何改变了我们的开发速度。

在CVAI之前,当我们创建拉取请求时,我们会按照以下流程进行操作:

  1. 开放GitHub
  2. 创建公关
  3. 写标题
  4. 编写描述 a. 打开JIRA从中获取票据链接 b. 从票据中复制相关信息 c. 将其粘贴到描述中 d. 浏览提交列表并确定发生了什么变化 e. 重新构思提交消息,使其易于阅读

此流程取决于票务的复杂性。可能需要大约2-3分钟。

我们使用CVAI后,我们只需要5秒钟就能够输入:

Create a PR for branch cv-1234 to dev

那是令人惊讶的节省了115秒。

结论

我们的内部AI助手仍处于早期开发阶段,我们正在不断改进它以适应我们的使用场景。它在提高我们开发人员的工作效率方面帮助很大,我们始终将AI视为增强我们能力的工具,而不是取代我们。随着我们在日常工作流程中发现AI的潜在用途,我们的使用情况还将进一步增长。

Clearview 是一家软件开发公司,我们的开发人员帮助许多客户构建软件。我们专注于构建高质量、具有未来可扩展性和现代化的软件,以帮助组织解决业务问题。如果您想与我们合作,对软件开发有些问题,或想了解更多关于CVAI以及我们如何利用人工智能来帮助自己和合作伙伴,请通过 info@clearview.team 联系我们。

2024-01-20 04:18:25 AI中文站翻译自原文