学 AI 开发这么久,我发现最被低估的技能其实是 Prompt 工程。不是会写几行提示词就算会,而是真的能让模型按你的思路输出。
我的第一次翻车
刚开始我用大模型写摘要,提示词是这样的:
请总结这篇文章。
结果?输出又长又啰嗦,重点全没抓到,废话一大堆。
后来我懂了:模型需要”说明书”
把上面那条提示词换成:
你是一名资深编辑。请把下面这篇文章总结为 3 个要点:
1. 每个要点不超过 20 字
2. 只输出要点列表,不要其他内容
3. 如果文章没有明确观点,标注"无明确观点"
文章内容:
{{文章}}
效果天差地别。同样是”总结”,加了角色、约束、格式、边界之后,输出立刻可控了。
我总结的核心原则
1. 给角色,别只给任务 “你是一名资深编辑” 和 “请总结” 是两种完全不同的效果。角色设定会让模型调用相关知识库,输出质量明显提升。
2. 明确输出格式 要列表就写”只输出列表”,要 JSON 就给出 JSON 示例。模型其实很擅长遵循格式,前提是你得告诉它。
3. 用 Few-shot 举例 与其描述半天”要简洁”,不如直接给两个”好”和”坏”的例子。示例比形容词管用一百倍。
prompt = """
把用户问题分类为:技术 / 生活 / 其他。
示例:
Q: 怎么用 Python 读 Excel?
A: 技术
Q: 周末去哪玩?
A: 生活
Q: {question}
A:
"""
4. 控制温度
做分类、抽取这类确定任务,temperature 设 0;做创意写作再调高。很多人栽在”永远用默认值”上。
一个反直觉的发现
我以前以为 Prompt 越长越好,后来发现废话越少越好。给模型一堆无关背景,它反而容易”想太多”。好的 Prompt 像写代码:每个词都有用途。
总结
Prompt 工程不是玄学,本质是”如何把需求说清楚”。就像写代码要注释清晰、接口明确,跟模型对话也是一样的道理。
现在我看到任何”模型输出不稳定”的问题,第一反应都是先检查我的 Prompt,而不是怪模型。这个习惯,帮我省了太多时间。