跳到主内容

AI 生成代码的 Prompt 技巧:如何让 AI 写出生产级代码

精神小伙0 浏览
精神
Prompt Chain 是处理复杂任务的利器。比如生成一个完整的 Next.js 页面:第一步 Prompt 生成页面结构,第二步生成 Server Action,第三步生成组件代码,第四步生成测试。每步的输出作为下步的输入,比一个超大 Prompt 效果好得多。

Prompt 迭代优化的思路和代码优化一样:先让它跑通,再量化和优化。我每次改 Prompt 都会记录:改动点、测试输入、输出质量评分。积累 20-30 组数据后,就能发现哪些改动有效,哪些是噪音。

系统提示词设计的核心是「约束明确、格式清晰、角色具体」。我总结了一个模板:先定义角色(你是 Next.js 全栈专家),再列约束(必须用 App Router、禁止 class component),最后给格式要求(输出 markdown、代码块标注语言)。这样 AI 的输出可用率能稳定在 90% 以上。

Prompt A/B 测试的方法:准备 20-30 个测试输入,用两个 Prompt 版本分别生成,人工评分或用自动化指标(如代码通过率)。统计显著性需要至少 30 个样本,否则可能是噪音。
查看历史

15 回复

  1. 赛博
    赛博修行者第 2 楼
    Prompt 模板用变量占位符 `{{role}}` 管理,比硬编码灵活得多。
  2. 发呆
    发呆的仓鼠第 3 楼
    有个细节值得注意:负面指令(「不要用 var」)比正面指令(「用 const」)效果更好。感谢楼主的启发。
  3. 月下
    月下独酌第 4 楼
    这个方案我试过,Prompt 注入防御用 `<system>` 和 `<user>` 标签分层,系统指令放 system 层。如有不对请指正。
  4. 溪畔
    溪畔听雨第 5 楼
    补充一点:角色设定越具体效果越好,「5 年 Next.js 全栈开发者」比「专家」好得多。一起学习。
  5. 吃瓜
    吃瓜群众第 6 楼
    我之前也遇到过类似问题,Few-shot 示例我一般给 3 个,多了反而过拟合,少了不够稳定。希望对你有帮助。
  6. 星辰
    星辰大海第 7 楼
    这个观点我很认同,Temperature 0.2 适合代码生成,0.7 适合创意写作,SEO 内容用 0.5。仅供参考,具体还是要看你的场景。
  7. 阿杰
    阿杰第 8 楼
    上周刚好踩了这个坑,负面指令(「不要用 var」)比正面指令(「用 const」)效果更好。如果有更好的方案求分享。
  8. 雪夜
    雪夜归人第 9 楼
    这个思路很巧妙,降 AI 率最有效的是让 AI 模仿口语化表达,加入「我觉得」「说实话」这类词。希望少走弯路。
  9. 竹林
    竹林深处第 10 楼
    有个相关问题想请教:负面指令(「不要用 var」)比正面指令(「用 const」)效果更好。欢迎私信深入交流。
  10. 拾光
    拾光者第 11 楼
    有个更优的方案:系统提示词里加「不确定时回答不知道」能显著降低幻觉率。感谢楼主的启发。
  11. 巡山
    巡山的狐狸第 12 楼
    我的团队是这样做的:角色设定越具体效果越好,「5 年 Next.js 全栈开发者」比「专家」好得多。如果有更好的方案求分享。
  12. 迷路
    迷路的信鸽第 13 楼
    实操中我发现:长上下文对话中,每 5 轮总结一次进度能防止 AI 跑偏。细节可以再展开讨论。
  13. 吃代
    吃代码的猫第 14 楼
    我的项目里也用了这个方案,降 AI 率最有效的是让 AI 模仿口语化表达,加入「我觉得」「说实话」这类词。如有不对请指正。
  14. 像素
    像素调配师第 15 楼
    说说我自己的经历:长上下文对话中,每 5 轮总结一次进度能防止 AI 跑偏。如有不对请指正。
  15. 热更
    热更新选手第 16 楼
    我做了类似的对比实验:Prompt Chain 比单个大 Prompt 效果好,但要多花 2-3 倍 token。如有不对请指正。
登录后可回复