前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >谷歌Duet AI覆盖整个软件开发生命周期

谷歌Duet AI覆盖整个软件开发生命周期

作者头像
云云众生s
发布2024-03-28 16:10:46
850
发布2024-03-28 16:10:46
举报
文章被收录于专栏:云云众生s云云众生s

像开发者专用的Duet AI这样的基于上下文的生成式人工智能工具,能否在整个软件开发生命周期内推动全天候的生产力?

译自 Google’s Duet AI Launches GenAI across Full SDLC in the Cloud,作者 Jennifer Riggins 是技术故事、新闻、写作以及活动和播客主持的文化方面的叙述者,帮助分享文化和技术相互碰撞的故事,并翻译我们正在构建的技术的影响。她一直...

一位开发人员在生成式人工智能当前阶段的日常是怎样的?在云中,带有 GenAI 辅助的开发者体验是怎样的完整软件开发生命周期(SLDC)?在技术裁员和日益复杂的云环境中,认知负荷和更快交付的压力很大的情况下,生成式人工智能已经能够为软件开发人员带来价值吗?

今天,Google 正式发布了 Duet AI for Developers。Duet AI for Developers 包括编码辅助、集成开发环境 [IDE] 和控制台聊天,以及运维工具,旨在将辅助集成到开发者已经使用的地方。

Google Cloud 的开发者倡导者 Megan O'Keefe 和首席传道者 Richard Seroter,借此机会与 The New Stack 进行了对话,以帮助我们的读者开始想象生成式人工智能的端到端开发者体验。不仅仅是在 Google Cloud,还涉及与搜索、Bard AI、Google Workspace 等交互,试图迎合开发者已经存在的地方,而不是跨足通常的 40 个选项卡和 14 个工具。

“在很大程度上,软件开发不仅仅是编码。它是关于对话、电子邮件线程、混乱的白板会议和讨论的过程,” O'Keefe 告诉 The New Stack,回顾他们过去作为软件开发人员的生活,其中很多时间都花在设计、运维、编排和安全上。“通常,最容易的部分是编写那 10 行代码。在 IDE 之外的一切,都在这之前、期间和之后。”

在过去一年,对开发者生产力的优先级进行了空前的强调,现在是超越 GenAI 承诺的时候,以了解它如何立即应用于普通开发者的日常。

面向软件开发者的生成式人工智能

Duet AI 已经是 Google Cloud、Workspace、Docs、Gmail、聊天等一些客户可用的 AI 协作伙伴。此外,今天正式推出的 Duet AI for Developers 将 AI 辅助集成到 IDE 和 Google 自己的 Cloud Console 中。

“它是一个集成的聊天。它是用于安全性和 SRE(站点可靠性工程),以及数据和开发,” Seroter 解释道。“所以它更多地是将 AI 融入到云体验中,”使得开发人员已经在工作的工具更智能化。

为了讨论一个 AI 辅助团队“日常生活”可能是什么样子,O'Keefe 扮演了在线杂货零售商的 TypeScript 工程师的角色,“任务是在短时间内将一个小功能交付到生产环境。” 在这种情况下,这是一个运行在 Google Cloud 上的电商网站,新功能是展示最新零食的新产品页面。

这项任务通过电子邮件发送。他们使用 Gmail 的“帮助我写”功能(目前仅对一些使用美国英语的测试者可用)来讨论设计目标,并预订一个会议室,在那里,与同事一起“橡皮鸭”或讨论,然后在白板上规划实现。

一张手写的、模拟的白板架构流程草图。

O’Keefe回到他们的办公桌,使用Google Cloud Architecture Diagram Tool清理白板图。

一个包含参考架构的‘开发者速查表’,是使用Google Cloud Architecture Diagram Tool创建的。

然后,O’Keefe将他们的架构图上传到Bard,利用Google Lens来读取它。开发者和机器人一起围绕架构进行对话和头脑风暴。

“Bart能够理解这个图的内容,知道我们正在使用哪些Google Cloud产品,并在这里激发灵感,” O’Keefe说。“它并不是替我写设计文档,但它在提供灵感方面很有帮助。”然后将聊天机器人的对话导出到Docs,借助‘帮助我写’,他和同事创建了一个大纲。他们表示,这有助于他们集中精力解决更棘手的设计问题,比如如何缓存Firestore文档数据库查询。

在演示的这一点上,O’Keefe指出他们甚至还没有打开IDE —— 这符合典型的软件开发生命周期。

“你在这里看到的是前端团队,这是一个完全独立的团队,负责为这个新的功能页面制作模拟图,” O’Keefe解释说。“我的任务将是在AI助手的帮助下,将其转化为后端代码。”

一旦设计文档得到批准,就是开始编写后端代码的时候了。

“任何构建API的客户,都需要大量的管理 —— 长篇规范说明API的功能以及工作量,管理诸如代理之类的事务。因此,Apigee最近推出的Duet AI功能主要是围绕打开OpenAPI规范生成。” 在这里,O’Keefe以自然语言提示Apigee生成新产品和现有产品的初始规范。

“这涉及到工程文化和生成式人工智能固有的人性部分,即它在这里是来帮助我们作为人类的。它不是来自动化一切。因为如果出了问题,我们就不会知道如何修复。责任在于我,开发者,理解输出,确保这进入了生产仪表板,并且我与专家合作。” — Megan O’Keefe, Google

接下来的步骤是使用客户端查询Google Cloud数据库。在这一点上,特别是如果他们是第一次使用Google Cloud,通常需要打开很多标签,以执行Google和Stack Overflow的下一步,同时阅读文档。

“我需要了解客户端的工作原理,”他们说,但“我只想获取新产品 —— 应该相当简单。但是,如果我是Google Cloud的新手,事情就不那么简单了。我们可以使用Duet AI的代码完成来提示Duet AI在这里提供帮助,做出AI可以根据我的打开文件的内容和我的数据库架构推断的事情。它知道Firestore【文档数据库】调用应该是什么样子。”

当然,在构建之后,你必须进行测试。Duet AI聊天经过Google Cloud文档和示例代码的训练,因此它可以分析错误并帮助O’Keefe修复。他们继续说:“编写代码时一个永恒的问题,特别是在原型制作时,是调试步骤和试图弄清楚:发生了什么?为什么会出现这个错误?我的东西不起作用,求助!”

作为开发人员,他们大部分时间都在寻找答案 —— 寻求Google、Stack Overflow、Reddit和同事的帮助来解决问题。而且他们并不孤单。去年的StackOverflow调查发现,62%的受访者每天花费超过30分钟搜索答案或解决问题,而有25%的人每天花费超过一个小时。这种可避免的挫折不仅打破了工作状态,还增加了认知负担和开发人员的倦怠感。将帮助整合到开发者工作流中将显著提高开发者的生产力,使问题解决更多,挫折减少。

O’Keefe甚至说,你已经可以将错误复制/粘贴到Google中,找到一些生成式人工智能准备好帮助的内容。

生成式人工智能用于开发运维的一面

因此,一旦O’Keefe完成了设计、构建和测试他们的新功能,就是发布的时候了。这是DevOps工作负载经常在通往生产的道路上创建许多障碍、挫折和摩擦的地方。这正是Syntasso的Abby Bangser所说的“不是不重要,但不是差异化的工作”。许多这些重要的障碍都涉及人类的批准、部署和代码审查。

“人在循环中仍然非常重要,” O’Keefe说。“假设我已经发布了这个功能。新到货页面已经推出,对我们的客户可见。这很令人兴奋。但发生了很多事情。想象一下,作为一名工程师,我将要进行紧急值班。作为新的Google Cloud开发人员,我需要找到的第一件事是我的服务的日志和度量标准。所以你在这里看到的是,我已经在Google Cloud控制台中打开了Duet AI。”

有点像1996年的Microsoft Clippy,但更实用,他们可以点击控制台内的Duet AI图标,并回答关于如何找到日志、如何查询日志以及这个日志消息的含义的问题。至少六个打开的标签,会破坏达到流程状态的能力,现在可以在他们已经在的控制台中完成。这也成为了性能的提升,而无需打开大量的标签。

接下来是O’Keefe最喜欢的即将推出的功能:“帮我修改”,用于创建有关服务健康的复杂查询。例如,如果他们不是Prometheus的专家,他们可以利用这一点,用自然语言描述他们希望实现的目标,Duet AI会以正确的语法回应。

“查询度量标准,比如延迟,或者一些深度操作层面的事情,开发者可能并不真正了解,这些都是重要的信号 —— 像SRE任务、警报、从故障中恢复 —— 但查询语法确实很难理解,” O’Keefe说道,指出这在PromQL或SQL查询中尤其如此。“你可以使用自然语言提示,比如,好的,我想要这个确切的查询,但是要显示每个Google Cloud区域的区域,它可以为你生成该查询,然后你可以将该图表放入仪表板。这是在弥合知识差距。它有点像在提升我的能力,帮助我学习。”

但是开发者到底是在学习,还是GenAI正在替他们做这件事呢?

“我认为这归结为工程文化和生成式人工智能固有的人性部分,即它在这里是为了帮助我们作为人类;它不是为了将事情自动化,” O’Keefe说。“因为如果发生了问题,我们将不知道如何修复。责任在于我,作为开发者,要理解输出,确保这进入了生产仪表板,并且我正在与那些确实知道他们在说什么的专家一起工作 —— 在这种情况下,这将是SRE和运维团队,以验证这个输出。”

当应用于CI/CD流水线、编排和安全性时,这对生成式人工智能的关键考虑变得更加重要,他们继续说。

“在AI的世界中,我们可能更多地是监督而不是创造……但如果我们不了解这些事情,就无法验证它们的响应,” Seroter附和他的同事,甚至建议客户不要裁员,而是投资提升员工的能力,更好地为他们与生成式AI共事做准备。“这是对IT经理和领导的一种号召:是时候提升技能了,现在这就是使你的团队变得更加出色的原因,但不要忽视基础知识。” 他将此类比于他的儿子如何为驾驶考试做准备;在加利福尼亚,你在考试中不能使用后视摄像头。他的观点是,我们都必须学习基础知识,然后才能以批判的眼光利用AI。

生成式AI必须促使开发者进入工作状态,而不是妨碍它

开发者生产力工程的最大目标之一是提高开发者的工作流转状态,使他们真正进入状态,摆脱干扰、上下文切换以及一切使回到任务变得困难的因素。AI的目标不是消除协作任务,而是提高它们的效力。

Seroter表示,这是关于在组织和技术的上下文中获得快速反馈。“许多开发人员需要多长时间来设置一个架构审查委员会——一天、一周、一个月?如果我实际上能获得一些快速的专业级架构指导——即使它并不完美,我需要仔细检查关键点——这将帮助团队更快地验证他们的设计。如果我获得了架构、指导和所有这些东西,我就不会让每个开发人员排队等待测试审核、架构审核和编码协助。”

Seroter强调,这不是一个通用模型。Duet的生成式AI能够提供专业建议,因为它经过了对Google Cloud的文档和样本的训练。他说:“我们希望这对您来说是一位Google Cloud专家。”

截至今日,所有Google Cloud客户都将能够选择使用此服务。最初,它只在Google Cloud产品、文档和代码样本上进行了训练,但根据客户的需求进行定制化是未来的发展方向。

“昨天我和一家公司交谈,他们希望能够进来并说,‘嘿,这段代码是否符合我们的安全标准?’” Seroter说。“当你考虑整个SDLC时,必须有一定程度的个性化或者对你有足够了解的指导,告诉你,‘嘿,这一般没问题,但对我们来说不太好。这很重要。’”

同样地,Duet AI 也可以帮助编写测试。毕竟,除了保持文档更新外,开发人员最常抱怨并习惯性地避免编写单元测试。

“它可以查看我打开文件中其他内容的结构。所以想象一下,我有一个包含所有现有函数的大型测试文件,其中包含其他测试,“ O’Keefe说。“它可以使用相同的工具、相同的测试结构、我们当前测试中使用的相同最佳实践,并输出匹配的代码。”

随着生成式AI的成熟,上下文将真正驱动价值——作为开发人员的辅助而非替代。

在这个新的GenAI时代,人类和机器人之间的区别应该更为显著,而不是更小。生成式AI,特别是在您组织和角色的上下文中利用时,应该致力于使这些创意工作者专注于解决问题,而不是机械和重复的任务。

“作为一个行业,我们会实现这一点,” Seroter说,可能比我们能想象的更快。“这是我们试图考虑的大局,不仅仅是亲自动手编码的时间。”

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-182,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面向软件开发者的生成式人工智能
  • 生成式人工智能用于开发运维的一面
  • 生成式AI必须促使开发者进入工作状态,而不是妨碍它
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档