首页 > 人工智能 > 人工智能 > ChatGPT是如何帮助我写代码的?
来源:分布式实验室
现在,AI 发展如火如荼。我在社交媒体上看到的内容都是关于使用 ChatGPT 插件能做些什么新鲜事,或者展示由生成式 AI 创造的新照片。这些都相当酷,我对此感到很兴奋。
科技界似乎正全力投身于这场 AI 的淘金热潮中。现在每天都会涌现出新的软件、功能和增强功能,我们很快发现自己处于一个 “成败存亡” 的关键时刻。我们是要全面拥抱这些新发展,看看会带来哪些变化?还是选择无视它们,希望它们消失?抑或我们可以找到一种折中方案?

如果我们看一下上面那张人工智能采用曲线图,我估计我们仍然处于早期采用者阶段的初期。很多人在网上对此议论纷纷,但实际上在生产中使用的人并不多。
AI 时代即将到来,它无处不在。我们不会特别注意到它存在,它将被默认为已经存在,并使软件更好用。
不过对我来说,情况并非如此。我已经全身心投入其中,它已经完全改变了我规划、设计和实施软件的方式。虽然我不再是企业架构师,但我独自管理着我的网站,它背后有大量的软件和服务可以自动化一切。
现在我想分享一下,在我拥有极其强大的 AI 技术后,我是如何进行应用程序设计的。
#01
前言
在我开始之前,我们需要谈论一个我见过很多次的谬误,它会影响技术和设计决策(并最终偏离创新的方向)。
不存在完美的软件。你越早接受 “差不多就好” 的观念,你和你的客户就会越快乐。
在进行任何设计时,不要以为你正在构建完美的软件。即使你将其设计得 “完美”,在实施过程中你可能会经历多次迭代,最终导致完全改变。
不可能让每个人都满意。人们不需要 “完美的软件”,他们需要的是能解决问题的东西。
有了这个想法,我知道 AI 并不完美。它会出现一些小问题,偶尔会让我措手不及,但这没关系。如果我能以一种创新的方式解决问题,并且能够在 80% 的情况下做到正确,那我就已经为成功做好了准备。
既然我们已经明确了这一点,让我们来谈谈随着 AI 的快速普及,我们所面临的一些新可能性。
#02
新的可能性
ChatGPT 和其他生成式 AI 服务具有令人惊叹的准人类能力。以前通常需要向人类询问的问题,现在可以通过 AI 来回答。如果你愿意接受这些服务提供的答案(这是个很大的假设),那么你将打开许多以前需要人类交互才能实现的新可能性。
数据转换
当我发布博客文章时,我希望能够为我的博客创建社交媒体帖子。以前我总是手动完成这个任务,但如果有机会的话,我完全可以交给虚拟助手去完成。我有博客文章的数据,但我缺乏我目标受众喜欢的关键词、结构和格式。虽然我做这个已经有一段时间了,有一个大致的想法,但不是完美的。
然而,ChatGPT 可以做到。它知道如何从我的文章中提取信息,并根据特定的目标受众进行转化。它对市场细分有着出色的了解,我只需要询问,就可以将我的数据转换为特定受众喜欢的形式。
“针对美国的 Serverless 开发人员,为我的内容创建一条推文。”
如果我想针对其他目标进行推广,我可以要求它提供不同的变体,比如 “为我的博客文章创建一条针对西班牙的 .NET 工程师的西班牙语 LinkedIn 帖子。”
生成的回应可以直接通过 Twitter API 发送。
数据生成
这可能是我们已经知道的最常见的用法。给 ChatGPT 一个提示,让它生成数据、电子邮件或 PDF 文档。但它有如此广泛的应用领域,值得明确指出。
我曾在博客中介绍了我如何构建一个健身应用程序,每天为我生成锻炼计划。我有一个 Lambda 函数,它会随机决定每天要使用哪个肌肉群组和健身设备,并为 ChatGPT 生成一个提示。然后 ChatGPT 会为我生成完整的锻炼计划,包括热身和放松运动,然后将其保存到数据库中。
在生成式 AI 之前,这样的实现将是一场噩梦。我需要一个练习数据库,并找到一种方法来根据不同类型的锻炼进行调整。然后,我还需要设计逻辑来对练习进行伪随机化和结构化。这将是一个耗时几周,结果可能还不尽如人意的过程。
现在,我花了 3 个小时构建了一个 Step Function 工作流程,用它查询 ChatGPT 并为我完成所有繁重的工作。相比自己构建,借助 AI 的力量我节省了数周的时间。
这种应用不仅仅局限于锻炼计划,你还可以生成故事,根据提供的模式构建完整的模拟数据集,或者根据厨房里的食材创造菜谱。
现在,我可以通过合适的提示自动地生成有意义的数据。我从 “软件工程” 转向 “提示工程”。你不再需要庞大的元素数据库来满足定制的业务逻辑,只需向 ChatGPT 提供合适的提示,让它利用自身的知识即可完成。
#03
找准时机
确定何时发布内容、对事件做出反应或发送通知是非常困难的。理想的时间通常因情况而异,很少符合通用的配置。一个很好的例子是在检测到异常时通知值班工程师。你不希望在每个弹出的异常上都发送通知,因为这可能导致警报疲劳。
如果你定时将数据集传递给 AI,它可以识别异常并观察它们是否会自行解决,甚至可以推断出为什么首先出现异常。你可以为人工智能提供一些准则,只有在满足一定的条件时才发送警报,以此提高值班人员的效率,并基于人力降低总拥有成本(TCO)。
你还可以将 JSON 对象传递给 ChatGPT,并要求返回 JSON。让我们通过另一个例子来说明:员工通知。
[
{
"timestamp": "2023-05-26T14:52:21Z",
"event": "login"
},
{
"timestamp": "2023-05-27T16:40:09Z",
"event": "logout"
},
{
"timestamp": "2023-05-28T07:55:13Z",
"event": "login"
},
{
"timestamp": "2023-05-28T19:30:10Z",
"event": "logout"
}
// more audit events
]
以 ISO-8601 格式返回一个具有最高概率在该人下次上线时联系到他们的 “sendAtTime” 属性的 JSON 对象。
{
"sendAtTime": "2023-05-29T15:20:55Z"
}
这样,之前需要花费数周仔细计划和努力才能完成的工作,现在可以轻松完成。
#04
如何改变开发方式
通过前面的所有示例,一整套新的用例得以实现。我不再专注于构建平凡无奇的跟踪 CRUD 操作的系统。我们已经有了数百个解决这个问题的例子。
相反,我现在以人工推理为导向来处理软件。我思考如何通过向 ChatGPT 提问来尽量减少我的代码量。我曾多次表示,代码是一种负担。只要有机会减少代码量,我就会毫不犹豫地去做。以前,我可能会直接将 API Gateway 与不同的 AWS 服务进行连接,从而通过跳过 Lambda 函数的编写来减少代码量。
但现在,我可能甚至不需要一个端点来实现我想要的功能。这些可以自动实现。
在开发中,我采用 “我可以自动化什么,我可以从哪里获取反馈,以及何时应该采取行动” 的方法来处理数据的创建。以我的博客为例说明。
我的所有文章都在 GitHub 中保存为 Markdown 文件。当我将一篇新文章推送到主分支时,一系列活动就会自动发生:
根据目标受众的最佳时间安排社交媒体帖子的发布计划
现在,尽管其中一些功能尚不存在,但借助生成式 AI 的出现,这些功能将得以实现。如果你看一下这些操作,ChatGPT 基本上已经成为了一个自动化的营销团队。识别与文章产生共鸣的受众,知道如何与他们联系,并在他们上线时向他们发送量身定制的消息,这些都是营销任务,而且是非常困难的任务!
但是,由于我开始采用全新的软件开发方法,这一切都成为可能。我不再关注 “如何构建一个能够执行 X、Y 或 Z 任务的系统”,而是弄清楚我需要向 AI 提出什么问题来代替我完成这些任务。
这真的是一个改变游戏规则的时刻,考虑到所有因素,这种方法的投资回报率非常高,而且成本非常低廉。是的,答案并不总是完美的,但我可以接受这一点。坦率地说,当我自己构建解决方案时,它也从来不是完美的。但是,我将完成时间缩短了 100 倍,这绝对物超所值。
Happy coding!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70027828/viewspace-2956715/ ,如需转载,请注明出处,否则将追究法律责任。