让 AI 写代码时,你可能遇到过这种情况:输入“帮我做一个小工具”,它很快生成了页面,但点几下就发现,结果和自己想的不一样。
你要的是一个能复制结果的文本工具,它却先做了登录、侧边栏和数据看板;页面看起来完整,真正要用的那一步还没做好。
给 AI 提编程需求,先写清五件事:给谁用、解决什么问题、用户怎么操作、数据按什么规则处理、做到什么程度算完成。 不懂技术,也可以先把这些说清楚。
下面用一个“文本去重工具”演示。它是用于说明需求写法的案例,不代表已经开发和实测的产品。
一、把“做一个工具”改成一段具体操作
比较下面两种说法。
帮我做一个文本去重工具,界面简洁,功能完善。
这句话有方向,却留下了很多空白:按行还是按词去重?是否保留原来的顺序?空行怎么处理?结果能否复制?
换一种写法:
我经常整理活动报名名单,需要一个自己使用的网页工具。我会粘贴多行文字,每行一个名字。点击“去重”后,页面显示去重结果,保留每个名字第一次出现的顺序,并支持复制结果。第一版不需要账号和云端保存。
后一段没有专业术语,但用户、输入、操作和结果都有了。
开始写需求时,可以先套一句话:
我是【使用者】,在【场景】下,需要把【输入】处理成【结果】,以便【目的】。
这也符合 GitHub 官方提示词指南中强调的做法:明确需求、提供示例,并将复杂任务拆成较小的任务。本文的模板是在这些原则上组织的一种写法。参考:GitHub Copilot 使用建议
二、把处理规则写成输入和输出
对文本去重工具来说,“去重”仍然不够明确。
例如,张三和前面多了空格的 张三算不算同一个名字?Alice和alice要不要合并?
第一版可以这样约定:
- 每一行是一条记录。
- 先去掉每行首尾的空格,再比较内容。
- 空行不参与处理。
- 内容完全相同才合并,英文区分大小写。
- 保留第一次出现的顺序,不自动排序。
再给一个例子:
输入:
张三
李四
张三
王五
预期输出:
张三
李四
王五
示例可以暴露文字里的歧义。若你其实想把英文大小写不同的记录合并,就应该在开始前改掉那条规则。
三、这份 AI 编程需求模板可以直接复制
把下面的方括号替换成自己的情况,再交给你使用的 AI 编程工具。
我想做一个【项目名称】。
使用者和场景:
【谁会使用,在什么情况下使用,目前有什么麻烦】
第一版目标:
【用户完成哪一件事,就算这个版本有用】
操作流程:
1. 用户输入【内容】。
2. 点击【操作】。
3. 页面显示【结果】。
4. 用户可以【复制、下载或继续处理】。
处理规则:
【计算、排序、去重、保存等规则】
输入和预期输出:
【至少提供一组具体例子】
边界情况:
【空内容、错误格式、过长输入、操作失败时如何处理】
使用环境:
【手机或电脑、浏览器或其他平台】
已有项目请先阅读现有结构,沿用当前技术方案。
本次范围:
【必须完成的功能,以及明确暂不做的功能】
验收标准:
【写出可以实际操作和核对的检查项】
开始前请说明你的理解和实现步骤。
关键规则不明确时先问我,普通实现细节由你决定。
完成后说明运行方法、实际检查结果和未完成项。
模板不需要每次都填得很长。一个小工具可以只有十几行需求;涉及多人使用、权限或数据保存时,再补充相应规则。
四、完整示例:让 AI 做一个文本去重网页
这是填好的版本,可以作为练习项目的起点:
帮我做一个个人使用的文本去重网页。
场景:我整理活动报名名单时,经常需要去掉重复名字。
第一版只有一个页面,包含:
输入框、去重按钮、结果框、复制结果按钮、清空按钮。
规则:
1. 按行处理,去掉每行首尾空格,忽略空行。
2. 完全相同的内容才去重,英文区分大小写。
3. 保留第一次出现的顺序,不自动排序。
4. 去重后保留原输入,方便核对。
5. 所有文本只在当前页面处理,不上传服务器。
6. 本版不保存记录,刷新后清空;在输入区旁说明这一点。
例子:输入“张三、李四、张三、王五”(每个名字占一行),
结果应为“张三、李四、王五”(每个名字占一行)。
异常处理:
空输入时提示“请先输入内容”。
没有结果时禁用复制按钮;复制失败时提示手动选择复制。
清空按钮同时清除输入和结果。
验收:
上面的例子结果正确;首尾空格和空行按规则处理;
复制出来的文字与结果一致;手机竖屏不出现整页横向滚动。
先完成这个版本,不增加登录、支付、云同步或统计面板。
请说明实现步骤、运行方式、实际检查结果及未验证的项目。
这里的“不增加”是本次范围约定。等工具确实好用,再判断是否需要保存记录或批量导入。
五、需要修改时,说明位置、现象和预期
第一版出来后,少用“再优化一下”“还是不对”这种反馈。把问题写到能复现的程度。
例如发现去重后顺序被改变,可以这样说:
输入依次是“王五、张三、李四、张三”,每项一行。现在结果被自动排序了;预期是“王五、张三、李四”,保留第一次出现的顺序。请检查去重逻辑,修复后用这组输入验证。
界面问题也一样:
手机上打开页面后,结果框超出屏幕右边。请检查输入框、结果框和父容器的宽度,在 375px 宽度下确认整页没有横向滚动,同时保留文本框内部的正常操作。
每次集中处理一个问题。改完以后,重新检查之前已经正常的主要操作。
如果项目需要跨几天继续做,可以把已完成项、当前规则和未解决问题记下来,参考这份构建记录模板。
六、怎样判断 AI 真的做完了?
不要只看它回复“已完成”。用需求里的例子实际操作一次,再检查几种边界情况。
- 重复名字不相邻:仍能去重,保留首次出现顺序。
- 名字首尾有空格:去掉首尾空格后再比较。
- 输入只有空行:提示先输入内容。
- 英文只有大小写不同:按本版规则分别保留。
- 点击清空后再次输入:可以正常重新处理。
- 手机打开并复制结果:布局可操作,复制结果正确。
这些检查能帮助你判断结果是否符合自己的需求,不能代替所有代码和安全检查。若准备公开给别人使用,还需要检查部署、数据处理和异常情况,可以接着看AI 写的代码上线前要检查什么。
现在就可以从自己最近重复做过的一件小事开始:写出一组输入、一组正确输出,再用上面的模板补全操作和规则。第一版先做到这件事可靠可用。
社区讨论 加载中…