So!azy

别急着说自己做不了

chris-ried-ieic5Tq8YMk-unsplash

半个月前,我的领导来找我,说希望在我们的某款产品里做一个功能:用户和大模型对话时,右边能同步生成一份 Word 文档。不是等模型全部写完再下载,也不是先生成 Markdown,再套个 Word 的壳,而是标题、正文、列表、表格和分页都能实时出现在编辑器里,最后还能保存成真正的 Word 文件。

我在脑子里过了一遍,觉得能做,就把思路整理清楚,让团队里的小朋友去跟开发团队沟通。

两周过去,得到的反馈是这个需求有各种问题。流式内容不好处理,Word 格式复杂,编辑器选型麻烦,大模型输出不稳定,导出也可能有兼容性问题。

这些问题都是真的,我并不觉得开发是在胡说。让我不舒服的是,两周之后交付回来的还是一串问题,没有原型,没有验证,也没有一句明确的边界判断。哪些确实做不了,哪些只是暂时没找到办法,哪些换个方案就能绕过去,全都混在了一起。

今天晚上我干脆自己试了一遍。

我先找了适合闭源商用的开源方案,用 MIT 协议的 Tiptap、ProseMirror 和 docx.js 搭编辑器和 Word 导出。模型不直接生成 Markdown,而是输出一行行结构化操作,告诉编辑器这里是标题、这里是段落、这里插入表格。内容到了就写进页面,最后再把编辑器里的文档结构打包成标准的 DOCX。

中间当然也遇到了问题。最开始的方案对闭源商用不够友好,那就换。自定义模型等待时间太长,不知道到底在做什么,那就把请求、连接、首段输出、推理内容、正文内容和 Word 操作分别追踪出来。用户希望不用部署,也不想运行命令,那就把依赖、样式和代码全部塞进一个 HTML,双击就能打开。

最后它确实跑起来了,而且完成度比我最初想的还多一点。

生成的实际 Demo

这件事挺有意思。我以前听到「这个做不了」,多少还会考虑是不是自己不懂技术,所以低估了实现难度。现在有了 AI,我至少可以先花一点时间,把自己的判断验证一遍。哪怕最后真的失败,我也能知道失败发生在哪里,而不是被一句模糊的「有各种问题」挡回来。

AI 给我的最大变化,并不是让我突然变成了专业开发。我依然不会因为做出一个原型,就觉得自己可以替代开发团队。真正上线还要考虑安全、稳定性、模型兼容、数据隐私和大量异常情况,这些工作不会因为有 AI 就自动消失。

但我现在很难再接受那种没有验证过的无能为力。

很多人面对陌生的事情,会先根据自己的身份划一条线。我不是程序员,所以我做不了产品;我不会设计,所以我做不了页面;我不懂写作,所以我没法表达。以前这些判断多少有点现实基础,因为学习和试错的成本确实很高。现在这个成本已经低了很多,继续用身份替自己做决定,更多时候只是习惯。

我后来想了想,AI 真正交还给普通人的,是一部分动手验证的权利。

你不需要先证明自己具备某种资格,才可以开始做。你可以先把需求讲清楚,看它给出的结果,再一点点修正。协议不合适就换,模型不兼容就查响应,生成过程太黑盒就加追踪,交付方式太麻烦就继续封装。判断始终在我手里,AI 只是把执行的距离缩短了。

当然,这也意味着「我不会」越来越难成为一个完整的回答。不会没关系,可以查,可以试,也可以承认试过之后仍然做不到。至少要知道自己卡在哪里。

以后再遇到类似的事情,我大概不会急着接受别人给出的结论,也不会因为自己不是这个领域的人就立刻退回去。我会先花一点时间做个最小验证。

做不出来是一种结果,没动手就觉得自己做不了,是另一回事。

#daily