掘金 人工智能 05月02日 16:23
Karpathy自曝:“氛围编程”很理想,但现实远比想象复杂
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

前特斯拉AI负责人Andrej Karpathy分享了其“氛围编程”实践项目MenuGen的开发过程。MenuGen旨在通过OCR技术和图像生成,帮助用户理解餐厅菜单上不熟悉的菜品。文章详细描述了Karpathy在开发中遇到的挑战,包括API集成、部署认证、支付集成以及缺失功能等问题。他指出,虽然大语言模型能加速局部开发,但实际部署仍面临诸多“痛苦”,现有基础设施也未针对LLM驱动的开发方式优化。Karpathy对未来集成化、智能化的开发平台充满希望,认为“氛围编程”有潜力降低开发门槛。

🖼️MenuGen应用通过OCR技术提取菜单信息,并利用AI生成图片,为每道菜提供可视化展示,帮助用户理解菜单上描述简单的菜品。

🔑Karpathy在开发中面临API集成难题,特别是OpenAI和Replicate API的幻觉问题,以及API密钥设置和速率限制等问题,拖慢了开发速度。

☁️将应用部署到Vercel云平台时,Karpathy遇到本地调试正常的错误在云端无法重现的问题,以及Vercel自动公开私有仓库的风险,用户认证配置也比预期复杂。

💰支付集成也是一个复杂的环节,Stripe的集成需要更多配置和API密钥,且Stripe与项目的TypeScript代码不完全匹配,需要手动修复。

🛠️Karpathy意识到MenuGen缺少处理超时和持久化结果等必备功能,理想情况下需要数据库和工作队列,但考虑到集成复杂性,他选择暂时跳过。

最近,前特斯拉 AI 负责人、OpenAI 联合创始人 Andrej Karpathy 在一篇博文中,分享了对他此前所提出的“氛围编程”概念的一次实践,开发了一个名为 MenuGen 的应用程序。

MenuGen 的目标是帮助用户理解餐厅菜单上那些不太熟悉的菜品,这些菜品往往只有简单的配料和做法,顾客很难从字面上理解这到底是怎样的一道菜。

现在,顾客只需拍照上传菜单,MenuGen 应用就能通过 OCR 技术(光学字符识别)提取菜单信息,再通过生成图片的方式为每道菜提供可视化展示。

这篇文章很直观地罗列了 Karpathy 在开发过程中遇到的各种挑战,可以视为 Karpathy 对之前被自媒体热炒的“氛围编程”概念的一次“自我降温”。

什么是“氛围编程”?

氛围编程”是 Karpathy 提出的一个新概念,它描述了一种完全沉浸在开发“氛围”中的编程方式。

在这种模式下,开发者可以完全拥抱大语言模型(LLM)带来的指数级进步,甚至到了一种几乎忘记代码本身存在的程度。

在实际操作中,开发者通常只需要提出最基础的需求,并直接点击“全部接受”,而无需关注具体的代码差异。

如果遇到报错,他们就把错误信息复制到对话框中,交给 LLM 去修复。

有时候,如果 LLM 无法解决问题,开发者也可以选择绕过错误,或者随机调整代码直到问题自动消失。

对于一些轻松的周末项目来说,氛围编程简直充满了趣味。你只需要观察、口述、运行、复制粘贴,结果大多数时候都能顺利运行。

实际开发中遇到的挑战

1. 初步开发:快速上手,有一种看似完成的错觉

Karpathy 发现,使用大语言模型来在本地构建应用的前端原型是非常快且简单的。

只需要一些指令,语言模型就能生成一个视觉上吸引人的界面,给人一种项目马上就能完成的错觉。

然而,这只是开始。

2. 集成外部服务:API 集成的挑战

随着开发深入,Karpathy 遇到了集成外部服务的困难。

特别是在使用 OpenAI 和 Replicate API 时,语言模型常常“产生幻觉”,也就是生成一些已经过时的 API 文档或接口。即使是 API 密钥的设置和权限管理,也让他非常头疼,

(小声哔哔:Karpathy 大神显然是还没了解到 Context7 这个 MCP 服务,这个服务可以自动把最新文档“喂”给 AI ,降低幻觉问题,详情可看我之前写的一篇文章。)

另外,他也常常遇到了速率限制(特别是刚创建账户时)。这无形中拖慢了开发速度。

3. 部署和认证问题

在将应用部署到云平台时,Karpathy 又遇到了不少麻烦。

部署在 Vercel 时,很多在本地调试正常的错误,到了云平台上却无法重现。

特别是他忽略了手动配置 API 密钥,导致了一个常见的错误。

而且,他还发现,Vercel 自动将他的私有仓库公开,这让他感到惊讶。

至于用户认证部分(例如使用 Clerk 配置 OAuth),这一过程也比他想象的要复杂很多。

将应用从开发环境转移到生产环境,需要做大量的配置工作,包括购买域名、配置 DNS 记录等等。

4. 支付集成:又一个复杂的环节

接下来,Karpathy 将支付功能集成进了 MenuGen,然而这又是一番折腾。

Stripe 的集成需要更多的配置和 API 密钥,而且他还碰到了代码和技术栈之间的兼容问题。

最终,Stripe 和项目的 TypeScript 代码并不完全匹配,Karpathy 不得不亲自指导语言模型修复代码。

5. 忽略的功能:想法与现实的差距

虽然 MenuGen 能够初步完成任务,但 Karpathy 也意识到,应用缺少一些必备的功能,比如处理超时和持久化结果。

理想情况下,这些功能需要数据库和工作队列,但考虑到集成这些服务的复杂性和预期的“痛苦”,他决定暂时跳过。

从开发到反思:“氛围编程”之外的局限性

通过这次开发经历,Karpathy 深刻认识到,虽然大语言模型能在局部开发中发挥巨大的作用,但要把这些技术应用到实际部署的环境中,依然是一个“痛苦的过程”。

大部分时间,他都在设置和配置各种服务,而不是编写实际的代码。

更重要的是,现有的基础设施并没有为这种由语言模型驱动的开发方式而设计,这使得开发过程中的很多步骤都显得不够顺畅。

未来的方向:更加集成和智能的工具

虽然 Karpathy 对目前的开发过程感到沮丧,但他并没有失去信心。

未来,他认为,需要一种更加集成的开发平台,这种平台可以“开箱即用”,帮助开发者快速完成托管、认证、支付、数据库等复杂功能的配置。

他还建议,未来的服务可以变得更加友好,特别是对 LLM 开发者来说。

总结:氛围编程的潜力与挑战

Karpathy 的这次经历证明了通过“氛围编程”,我们确实可以大大加速开发过程,甚至让非专业程序员也能参与到应用开发中来。

然而,真正将这些技术应用到实际环境中时,我们仍然会面临很多挑战。

尽管如此,Karpathy 对未来充满希望。他相信,随着技术的发展,氛围编程将变得越来越成熟,最终能降低开发门槛,让更多的人能够创造出自己的应用。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MenuGen 氛围编程 Andrej Karpathy 大语言模型 AI应用开发
相关文章