跳至正文

我花了3小时调教这个AI,结果它把我的需求理解成了“帮我写一首诗”

上周五下午,我对着Cursor的对话框,整个人处于一种“想砸电脑”的状态。

事情是这样的。我想做一个简单的博客文章排版工具——就是把Markdown格式的文本,自动转成带标题层级、代码块高亮、引用块样式的HTML。这玩意儿我手动写过至少20遍了,烦了,就想让AI帮我一次性搞定。

我打开Cursor,连上Claude 3.5 Sonnet,输入了我的需求:

“帮我写一个能解析Markdown的Python脚本,输出带样式的HTML,支持标题、代码块、引用、列表,代码块要有行号和高亮。”

AI秒回了一个300行的脚本。我一看,哇,代码结构清晰,注释完整,连CSS样式都内联好了。我心想,这波稳了。

然后我把一篇测试文章扔进去跑了一下。

标题被渲染成了黑色加粗,跟正文一模一样。代码块倒是有了高亮,但行号从0开始计数。引用块直接变成了灰色斜体字,完全看不出是谁说的话。列表项之间的间距忽大忽小,像是喝醉了酒。

我愣了三秒,然后开始手动改。

先改了标题的CSS类名,发现AI给

标签加的样式叫“title-style”,但CSS里写的是“heading-1”。找了半天才找到这个坑。

接着修代码块行号的问题,AI用了enumerate从0开始,改成1之后,又发现行号跟代码对不齐,因为代码里有tab字符,AI没做替换。

然后是引用块,AI给

加了个灰色背景,但字体颜色也是灰色,完全看不清。我改成了深灰色背景配白色文字。

列表的问题最恶心——AI用了一个统一的margin-bottom,导致嵌套列表的间距也跟外层一样大。我不得不手动给ul和li分别写样式。

折腾了将近2个小时,才把这些问题全部修完。

我盯着屏幕,突然意识到一个扎心的事实:我花了3个小时,其中AI写了30分钟,我修了2个半小时。这TM叫“提效”?

后来我跟一个做AI工具的朋友吐槽,他说了一句让我醍醐灌顶的话:“你把AI当成一个能一次写对的程序员,这就是最大的误解。”

他给我看了他们团队的内部数据:AI辅助开发的项目中,平均有47%的代码需要人工修改,其中25%是逻辑错误,22%是风格不一致。

“AI擅长的是生成一个80%正确的草稿,”他说,“剩下20%的细节打磨,恰恰是最耗时的。”

我回想了一下,确实。如果我自己从头写那个脚本,大概1个小时能写完,而且bug会少很多,因为我知道自己容易在哪里犯错。但用了AI,我花了更多时间在“找AI的bug”上。

这不是AI的问题,是我用AI的方式有问题。

后来我换了个策略。我不再让AI直接生成完整代码,而是让它帮我写函数级别的片段,然后我自己组装。比如,我让它单独写一个“解析Markdown标题”的函数,再写一个“生成代码块HTML”的函数,每个函数我都手动测试一遍,确认没问题再拼起来。

结果你猜怎么着?整个脚本加起来只用了45分钟——比我自己写还快15分钟,而且bug少了至少一半。

关键区别在于:当我把任务拆成足够小的单元时,AI出错的概率大幅下降。而且即使某个函数出错了,我也能快速定位,不用在一个300行的脚本里大海捞针。

这让我想起一个程序员圈子的老段子:“电脑最大的问题是,它完全按照你说的去做。”AI也一样,它最大的问题是,它完全按照你输入的提示去做,但你的提示往往不够精确。

你以为你说“写一个Markdown解析器”,AI就应该理解你要的是一个“带行号、高亮、样式统一、嵌套列表间距合理”的解析器。但AI理解的只是“写一个Markdown解析器”,至于行号从0还是从1开始,它随机选了一个。

所以我现在用AI的规则变了:

第一,永远不让AI一次性生成超过50行代码。

第二,每个功能模块独立测试,通过一个再写下一个。

第三,对于样式、格式这类主观性强的东西,先让AI生成一个版本,然后我再微调,而不是让它一次到位。

第四,最重要的一条:把AI当成一个“需要明确指令的实习生”,而不是“能揣摩上意的资深程序员”。

今天这个教训花了我3个小时。但我觉得值,因为以后我至少能省下几十个3小时。

对了,那个Markdown解析脚本我已经开源在GitHub上了,叫“md2html-clean”,有兴趣的可以去看看。虽然是被AI坑出来的,但最终结果还不错。


📎 延伸阅读

看完这篇,如果你想:

  • 直接拿工具 → 回复”13“,我把跨境获客工具包发给你
  • 系统学习 → 点击菜单”AI训练营”,从0开始跑通AI变现

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注