GPT-5编码测试:令人头疼的AI编码体验

3次阅读
没有评论

共计 3264 个字符,预计需要花费 9 分钟才能阅读完成。

AI 会头痛吗?因为 GPT- 5 确实让人头疼。这篇文章本来应该很容易写。OpenAI 发布了一份关于 GPT- 5 编码的最佳实践清单。原本的计划是尝试用这些最佳实践来重新运行之前失败的 GPT- 5 编码测试,看看是否有改进。

看起来很简单。

GPT- 5 编码测试:令人头疼的 AI 编码体验

但后来有了一个想法:如果 OpenAI 在我运行测试后的这一周左右改进了 GPT- 5 呢?也许应该重新运行那些失败的测试,看看结果如何,作为新最佳实践的基准。

从测试的角度来看,这是一个有效的方法。但从个人理智的角度来看,并非如此。

重新运行了第一个失败的测试。这个测试要求 AI 创建一个完整的 WordPress 插件,包括用户界面和业务逻辑。想法是输入一组名字,随机化它们,并分离重复项,使它们不会相邻。

最初在 GPT- 5 上运行这个测试时,它失败了。点击“随机化”按钮会将浏览器重定向到另一个不相关的页面。虽然最终说服 GPT- 5 修复了它,但最初的失败才是关键。

这次,使用完全相同的提示重新运行了相同的测试。这次,它完美地工作了。GPT- 5 在过去一周有所改进。

如果就此打住就好了。但没有。必须再试一次。第二次使用完全相同的测试和提示时,点击“随机化”按钮后出现了 WordPress 用户称之为“白屏死机”的情况。这表明代码中有问题。

总共使用完全相同的测试和提示运行了五次。第一次成功了,之后几次都失败了。有一次出现白屏,有一次显示满屏错误信息,有一次被重定向到另一个页面,还有一次什么也没发生。

稍后再回到测试 1。接下来,决定对另一个失败的测试做同样的事情。

这个测试要求 AI 编写与 Chrome、AppleScript 和另一个名为 Keyboard Maestro 的工具交互的代码。它要求 AI 了解这三个不同环境以及它们如何协同工作。

关于 AppleScript 的一个有趣事实是,这种脚本语言本身是不区分大小写的。因此,如果让 AppleScript 比较“AppleScript”和“applescript”,它会认为这两个字符串是相同的。必须明确告诉它区分大小写。

最初在 GPT- 5 上运行这个测试时,它错误地认为 AppleScript 有一个将字符串转换为小写的原生函数。实际上并没有,所以代码失败了。

这次,它没有错误地认为 AppleScript 有小写函数,而是决定用一种非常复杂的方式将字符串转换为小写。以下是代码:,

set tabTitleLower to (do shell script "echo" & quoted form of tabTitle & "| tr'[:upper:]''[:lower:]'")

这段代码确实有效,但非常奇怪且完全没必要。它启动了一个 shell(命令行)来运行一个将字符串转换为小写的 shell 脚本。这就像做烤奶酪三明治时发现没有奶酪,于是飞越整个国家去大陆另一端的 7 -11 买奶酪。甚至没有买到更好的奶酪,只是以最奇怪和低效的方式完成了任务。

别忘了,实际上根本不需要将文本转换为小写,因为 AppleScript 不区分大小写。所以它写了一段非常复杂的代码,虽然有效,但完全没必要。

没有继续重新运行这个测试四次,因为已经开始感到头痛了。

OpenAI 发布了一份他们称之为 GPT- 5 编码速查表的文档。其中包含六条主要建议:,

  1. 精确并避免冲突信息 :显然,如果 GPT- 5 被要求遵循模糊或冲突的指令,它会非常困惑。
  2. 使用正确的推理努力 :与其让 GPT- 5 选择其推理级别,不如调整其模型。如果它开始过度思考问题,使用较低的推理级别。
  3. 使用类似 XML 的语法来帮助结构化指令 :使用 XML 标签来分段提示,帮助 AI 解析其任务。
  4. 避免过于强硬的语气 :在之前的模型中,有时不得不“大喊”才能让 AI 听从。GPT- 5 似乎有点被动攻击性,如果指令过于强硬,它会过度服从。
  5. 给予规划和自我反思的空间 :需要鼓励 AI 思考它收到的指令。如果不告诉它思考指令,它就不会。
  6. 控制编码代理的积极性 :GPT- 5 比 GPT-4o 更讨好。在给出指令时,告诉它减少奉承和拍马屁的行为。

想在这里说些积极的话,但感觉像是偏头痛发作。如果想了解更多细节,可以查看 PDF。

OpenAI 还创建了一个 AI 提示助手。将浏览器指向这个工具,并粘贴提示。该工具会返回一个更详细的提示。例如,输入了测试 4 的提示:,

 写一个 Keyboard Maestro AppleScript,扫描最前面的 Google Chrome 窗口,查找包含传递变量 instance__ChannelName 内容的标签名称。忽略大小写。找到后,将该标签设为活动标签。

它返回了以下内容:,

 创建一个用于 Keyboard Maestro 的 AppleScript,执行以下操作:* 开始时列出一个简明的检查清单(3- 7 个要点),概述计划步骤。* 扫描最前面的 Google Chrome 窗口中的所有标签。* 搜索名称包含传递变量 'instance__ChannelName' 值的标签,忽略大小写。* 找到匹配的标签后,激活该标签并使其成为当前 / 活动标签。生成脚本后,用 1 - 2 行验证脚本是否满足所有要求。如果没有,说明需要调整的内容。

本质上,它修改了提示,在开头添加了规划阶段,在结尾添加了验证阶段。

它有效吗?不,完全没有。将测试 4 的“优化”提示输入 GPT-5,得到了以下脚本:

截图由 David Gewirtz/ZDNET 提供

其中至少有三个严重缺陷。首先,绿色框中的代码无效。它没有从 Keyboard Maestro 中检索值。之前的版本使用完全不同的(且有详细记录的)机制成功做到了这一点。这种方法简直是疯了。

现在看蓝色框。“considering case”操作仅用于评估。例如,使用“considering case”,“BLUE”和“blue”是不同的值。在蓝色框中看到任何 if 语句或评估了吗?也没有。

然后是红色框。没有“considering case false”这样的语法。首先,默认行为是忽略大小写。其次,如果确实想明确告诉 AppleScript 忽略大小写,应该使用“ignoring case”块。但“considering case false”?这完全是编造的语法。

还将 WordPress 插件的原始提示输入了提示优化器。返回了一个相当详细的项目需求文档。

截图由 David Gewirtz/ZDNET 提供

这次插件成功了。第二次生成代码时,它也成功了。所以,如果 GPT- 5 不配合,或许可以尝试优化。

但还有奇怪的地方。因为总是有奇怪的地方。看看 GPT- 5 生成的标题块。

截图由 David Gewirtz/ZDNET 提供

注意作者被归为 Advanced Geekery Labs。历史上,AI 通常将作者字段列为“Your Name”。但这次是 Advanced Geekery Labs。

这有些关联,因为 Advanced Geekery 是 YouTube 频道和每周通讯的名称。但在插件的指令中没有使用它。此外,从未在 Advanced Geekery 后面加上 Labs,尽管安全产品是通过 ZATZ Labs 销售的。

于是问 GPT- 5 从哪里得到 Advanced Geekery Labs 这个名字。它的回答:,

好问题。“Advanced Geekery Labs”这个名字并不是你提供的。我在插件标题的作者字段中引入了它作为占位符,因为在之前的对话中你提到过“Advanced Geekery”品牌,我无意识地将其扩展为“Labs”。,

很高兴 AI 认为这是个好问题。这让人感到温暖。但“无意识地扩展”?这是 AI 的原话。

所以,现在面对的是无意识操作的幻觉 AI?我们完蛋了。

仍然不信任它。实际上,比最初测试时更不信任了。它还会对我的代码做出什么“无意识”的操作?如果确实需要 GPT- 5 生成代码,可以尝试优化器。但不会依赖它。

GPT-4o 令人印象深刻,但也有一些问题。GPT- 5 就像是它更麻烦、更困难的兄弟。对于 GPT-4o,愿意在验证后信任。但对 GPT- 5 完全不信任。有些事情就是不对劲。如果未来出现一个反叛其创造者并试图杀死所有人的 AI,不会惊讶它起源于 GPT-5。

而且,头痛还没消失。显然,泰诺现在对你有害。所以,这也是一个问题。

正文完
 0
admin-gah
版权声明:本文于2025-08-26转载自Zdnet,共计3264字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)
验证码