Drupal开发中人工智能的机遇挑战与应对之策

Drupal开发中人工智能的机遇挑战与应对之策

Drupal (AI) Playground: AI ate my work, and I need to be okay with that.

AI ate my work

在过去几个月里,我一直在尝试使用人工智能来构建 Drupal 模块。两周前,我发布了一个名为 AI Schema.org JSON-LD 模块的模块,并写了一篇关于它的博客文章。该模块本质上取代了我的 Schema.org 蓝图模块的主要成果,即通过提供高质量的 Schema.org JSON-LD 标记来增强 SEO。AI Schema.org JSON-LD 模块通过让 contrib 模块协同工作,以一个简单的提示调用人工智能提供商来生成 Schema.org JSON-LD。

这个我用四天时间构建的简单模块,取代了我花了四年时间开发的 Schema.org 蓝图模块的工作。我本可以对这个由人工智能创建的新模块取代我和我的工作感到不满,但实际上,它只是改变了我对自己正在做的工作的看法。

有了人工智能,我更容易探索新想法并承担更具挑战性的任务,同时知道我创建的代码和模块对人类和机器来说仍然是灵活且可扩展的。在感觉人工智能正在吞噬我们的工作、取代它、消耗它还是改进它之间,有一条微妙的界限。我们应该对此进行讨论。

一、人工智能对我意味着什么?

我最需要立即考虑的是,我如何看待自己之前构建的东西,以及如何认识到人工智能可以取代它,并愿意接受人工智能能够以不同的方式、更好更快地完成工作的机会。每个人都需要接受人工智能带来的这一现实:事情可以更快地完成,并且有更多的可能性。

我花了一段时间才意识到情况已经发生了变化。我构建了一些非常简单的模块,以了解人工智能编码代理如何规划、记录、构建、测试和维护代码。几周后,我开始看到其中的可能性。

即使在构建 AI Schema.org JSON-LD 模块时,我也知道只要有一个由人工智能生成的计划并要求有由人工智能生成的测试覆盖,大部分代码都可以由人工智能生成。

顺便说一下,我目前正在使用 Superpowers,“一种为你的编码代理提供的完整软件开发方法,建立在一组可组合的技能和一些确保你的代理使用这些技能的初始指令之上”。我并不局限于任何特定的代理技能、插件、工具,甚至是大语言模型;我致力于保持开放的态度,以不同的方式做事。

展望未来,我需要一副新的人工智能增强眼镜来规划、执行和实施工作。甚至向别人解释我的工作方式也发生了变化。

我提出的问题正在发生变化。

  • 我们要做什么? 
    具有讽刺意味的是,这个问题不会由人工智能来回答,因为它没有创造力。
  • 我们要怎么做? 
  • 人工智能有什么建议?
  • 我们如何为人工智能分解构建步骤?
  • 快速轻松地使用人工智能进行原型设计意味着什么? 

在人工智能出现之前,有些机会是不可能存在的,但现在我们需要考虑与之相关的挑战。

我是一个名为 Drupal 的社区的成员,我们共同协作开发软件。这就是我们成功的秘诀:“你为代码而来,为社区而留”。我们的编码方式现在正在改变和发展,我们的社区也必须随之发展。这是我们需要讨论的事情。

二、人工智能对 Drupal 社区意味着什么?

首先,Drupal 社区的 Drupal AI 倡议在规划、集成和实施人工智能方面处于领先地位。我的 AI Schema.org JSON-LD 模块建立在该倡议的出色工作基础之上,包括 AI Automators 和 Field Widget Actions,并且值得将 JSON Field 作为另一个关键要素添加进来。

通过 Drupal AI 倡议,我们正在探索如何在软件中使用人工智能来增强网站建设体验。我们才刚刚开始思考(并讨论)人工智能如何影响我们的社区以及我们在构建和维护软件方面的协作。

尽管人工智能可以修复我们花了多年时间构建的东西,或者解决我们一直难以解决的问题,但我们很难接受让人工智能在 Drupal 核心中自由发挥的想法。

例如,用纯原生 JavaScript 替换所有 jQuery 是人工智能一夜之间就能完成的事情。这一单一任务引发了许多问题,促使我们进行讨论并做出决策。

  • 维护者、贡献者和人工智能的工作流程是什么?
  • 我们能够为转换提供提示或指导方针吗?
  • 我们是否应该在 Drupal 核心中包含一个代理技能来协助转换?
  • 我们如何审查这些代码?
  • 这一切会不会变成人工智能的混乱输出?

我们需要从这些问题中退一步,认识到人工智能已经到来,并且能够完成几年前没有人会想到的事情。人工智能正在改变和转变我们作为软件工程师和开发者的工作、我们的产出、我们的生产方式以及我们的思考方式。

第一步可能只是要对此持开放态度,认识到新的现实以及随之而来的新可能性。我是一个谨慎乐观的人,当我想到人工智能时,我喜欢用这个词来形容。
 

DrupalCon Chicago 最乐观的成果是 Drupal AI 学习者俱乐部,它将人们聚集在一起,讨论他们的人工智能经验,分享他们的设置,并帮助他们提升技能。我喜欢“提升技能”这个词,因为它让人联想到一个规则不断更新、每天都有新版本发布的游戏。

人们将人工智能比作老虎机,但我认为弹珠台是更准确的类比,因为它结合了技能和运气,而老虎机的设计目的是让你输钱。人工智能可能会像赌博一样让人上瘾。坦率地说,人工智能对我们社区的影响有很大的社会层面因素,我们需要牢记这一点,并愿意讨论人工智能。我可以预见在 Drupal 社区会有一场关于人工智能焦虑的公开讨论。

三、我接下来该何去何从?

根据我生成 AI Schema.org JSON-LD 模块和开发 Schema.org 蓝图模块的经验,有两个方向可以选择。

首先,我是否应该使用人工智能来审查我过去的所有工作,重新思考并重新处理它?我可以使用人工智能来清理代码、修复漏洞、升级它、使其更易于维护并编写测试。从本质上讲,使其为人工智能做好准备并兼容,以便任何人都能与人工智能协作。

我需要考虑的第二件事是如何维护一个由人工智能生成的模块,例如 AI Schema.org JSON-LD 模块。代码完全符合我的编码标准,而且由于人工智能的帮助,测试覆盖更好。新功能会在有人参与的情况下使用人工智能来构建吗?将代码升级到 Drupal 的最新版本很可能会使用人工智能来完成。

但归根结底,这些代码应该完全由人工智能维护吗?我应该鼓励问题队列中的人们使用人工智能来创建问题和合并请求吗?人们应该给我提供我可以用来修复漏洞的提示吗?这是一个棘手的问题,我认为我们必须开始探索。
 

如果我们要让人工智能为 Drupal 编写代码,它们必须采用测试驱动开发,这是理想的方法。有时我们作为开发者不采用测试驱动开发,是因为我们没有时间或耐心。而人工智能有无限的时间和耐心。

关于人工智能编写的代码,我还有一个强烈的观点,即人工智能为我编写的每一行代码都要经过我和另一个人工智能的审查。每次我让人工智能复查我的代码或另一个人工智能的代码时,反馈都非常显著,通常能发现低级别的漏洞和测试覆盖方面的差距。如果我们回顾极限编程,结对编程可以显著减少漏洞,并增进对应用程序的了解。
 

我怀疑自动化代理能否生成可靠且持久的代码,至少在有人编写一种专为人工智能设计且人类可读的编程语言之前是这样,比如 Code Speak。然而,即使我们开始使用一种特定于人工智能的编程语言,我们又该如何处理现有的所有代码库呢?

四、我们接下来该何去何从?

在我们社区的各个方面,我们必须认识到人工智能的潜力并考虑其影响。例如,人工智能可以在文档编写、新成员融入和成员离开社区等方面提供帮助。

 

文档编写

文档编写是一件棘手的事情,因为人工智能可以编写大量文档,但这些文档有用吗?我认为每个人都在为此苦苦挣扎。与此同时,我们 Drupal 社区面临着文档不足的问题。有一些直接的机会,比如让人工智能审查我们所有的 API 文档,使其保持一致和语法正确,而不改变其内容,只是进行改进。我们可以通过为人工智能提供我们希望文档如何构建的模板,以及指导方针和要求,来改进我们的风格和文档指南:保持简洁、简单,并包含对复杂功能的描述。也许第一步是让人工智能审查人们正在编写的文档并提供反馈。
 

新成员融入

需要说明的是,新成员融入是指将人们带入社区。我们能否提供基础技能,帮助人们理解、编写代码并学习 Drupal?我们能否包含一些提示,引导人们了解 Drupal 的不同系统?我们能否在 Drupal.org 上设置一个代理,审查人类或人工智能生成的代码,解释其工作原理,并找出需要改进的地方?我甚至想问,我们是否愿意鼓励人们“随性编码”他们的第一个 Drupal 模块?

 

成员离开

我们不常谈论人们离开社区的情况,但我们理解人们的倦怠以及他们转向不同项目的情况。Drupal 能够繁荣发展二十五年的一个秘诀是,我们始终欢迎新成员加入,也接受成员离开。

 

通过使用人工智能加强我们的工具和文档,我们将使人们更容易在社区中进出。一个有才华的开发者或非开发者,只要我们通过人工智能提供合适的工具和指导,即使不了解 PHP,也可以做出有意义的“随性编码”贡献。这可能是一个巨大的胜利。

五、我们必须接受这一点。

这需要消化、接受和处理很多内容。我将这篇博客文章命名为“人工智能吞噬了我的工作……”,是为了承认这里存在一些焦虑。由于人工智能,软件开发面临着真正的生存威胁。人们的工作和生计受到威胁,这很可怕。与此同时,我们需要接受这种变化。我们必须相互协作、相互支持,迎接挑战,而不是将其视为威胁。

这里的影响是巨大的。而我仅仅谈论了我们开发的软件。它还包括我们支持的网站和应用程序。现实情况是,我们构建的网站、这些网站上的信息、它们的用途以及人们与它们的交互方式都将彻底改变。

人工智能正在吞噬网站。大语言模型正在消耗我们的信息,将其反馈给我们,并改变一个组织或公司在数字世界中的形象或品牌。

在 Drupal 中,我们需要解决我们的社区、企业主和客户如何应对人工智能的问题。AI 倡议在这方面做得很好,通过支持人工智能驱动的聊天和搜索走在了前面。与此同时,事情发展得如此之快,我们必须开始认识到这样一种可能性:五年后可能不再有网站。大多数人将使用聊天界面在侧边栏中搜索和呈现信息,而用户永远不会访问源网站。
 

网站不能只是接受这一点。然而,它们实际上别无选择,因为它们必须应对人工智能正在吞噬它们的网站这一现实,以及人工智能将控制谁能获得什么信息以及如何链接回你的组织。
 

我们得开始讨论这个问题了。我将在下一篇博客文章中开启这个话题,标题是“人工智能正在吞噬我们的网站,我们需要适应这一点”。

我正在通过提问、逐步探索解决方案和寻找答案来为人工智能时代做准备。我的最后一个问题是,作为 Drupal 社区的一员,你为人工智能做好了哪些准备?

联系我们

提供基于Drupal的门户网站、电子商务网站、移动应用开发及托管服务

长按加微信
长风云微信
长按关注公众号
长风云公众号