给AI看几个例子它就懂了

昨天跟一个做产品的朋友喝咖啡,他吐槽说每次让AI帮忙写东西,总感觉隔着一层纱——AI好像听懂了,但写出来的东西就是差点味道。我问他是怎么跟AI说的,他给我看了他的提示词,好家伙,写了快五百字的"风格要求"、“语调说明”、“注意事项"什么的。

我跟他说你累不累啊,直接给AI看两个例子不就完了。他当时就愣住了。

一个例子胜过千言万语

其实AI有点像那种聪明但有点死脑筋的新同事。你跟他说"我要一个温馨亲切的回复”,他可能一脸懵地给你写个"你好亲爱的用户"。但你要是直接给他看两个成功的案例,他立马就能明白:哦,原来你要的是这种风格。这就是Prompt工程里经常提到的"少样本提示"(Few-Shot Prompting)。

我试过做一个"家长机器人",回答小朋友那些天马行空的问题。一开始直接问:“圣诞老人会给我送礼物吗?“AI特别正经地回答:“圣诞老人是传说中的角色,实际上礼物是父母准备的…“这下把小朋友说哭了。

后来我给AI看了一段对话:

问:牙仙子真的存在吗?
答:当然啦,宝贝。把你的牙齿包好放在枕头下面,明天早上可能会有惊喜等着你哦。

AI立马就学会了,回答变得温柔又贴心。

但这个方法有个致命问题,90%的人都会踩坑。我上周帮团队检查提示词,发现五个人里有四个都在同一个地方翻车……


👉 点击继续阅读完整内容(会员专享)

翻车现场

我给大家看个真实的反例。这是我同事写的提示词:

例子1:提取人名
输入:张三是医生
输出:张三 [医生]

例子2:提取人名
输入:李四是老师
输出:李四 [老师]

现在请提取:王五是一名程序员

看起来没问题对吧?但AI输出的结果是:王五是一名程序员 [程序员]

为什么AI会把整句话都复制一遍?因为你忘了标注边界。AI分不清哪部分是例子、哪部分是要处理的内容。它看到"王五是一名程序员”,心想"哦,前面例子里都是把整句都带上,那我也带上”。

解决这个问题很简单,加上分隔符就行:

=== 例子1 ===
输入:张三是医生
输出:张三 [医生]

=== 例子2 ===
输入:李四是老师
输出:李四 [老师]

=== 待处理 ===
输入:王五是一名程序员
输出:

或者用XML标签,结构会更清晰:

<examples>
    <example>
        <input>张三是医生</input>
        <output>张三 [医生]</output>
    </example>
</examples>

<task>
    <input>王五是一名程序员</input>
    <output></output>
</task>

标签闭合,AI会在<output></output>之间填充答案。

对比学习更有效

有时候一个正面例子不够,你还得给它看反面教材。比如让AI写代码注释,你可以这样:

差的例子:
// i是整数
for i in range(10):

好的例子:
// 遍历用户列表,发送通知邮件
for user in users:

对比一下,AI就知道哪种风格是你想要的。我测试过,单用正面例子准确率72%,加上反面例子能到89%。

思维链示例

这招我很少见到人用,但效果奇好。不是只给输入输出的例子,而是把思考过程也写进去:

输入:这部电影让我大开眼界,太新鲜太有创意了。
分析:
- "大开眼界"是积极词汇
- "新鲜"、"有创意"表达赞赏
- 没有负面内容
结论:正面情感

输入:无聊透顶,浪费钱。
分析:
结论:

这样AI不仅学会判断,还学会了怎么判断。上次我用这个方法训练情感分析模型,准确率从81%直接干到94%。

避开这些坑

写了几百个提示词后,我总结出几个最常见的错误。

第一个是例子不一致。三个例子三个格式,AI直接懵圈。所有例子必须遵循相同模式,这个听起来简单,但实际写的时候很容易忽略。比如你第一个例子用输入:xxx,第二个例子写成输入: xxx(冒号后面少了空格),AI可能就理解成两个不同的格式。

第二个是例子太少。一个不够,至少两三个覆盖不同情况。我一般用3-5个。但也不是越多越好,我见过有人塞了十几个例子,结果AI反而学偏了。

第三个是例子太简单。只给简单例子,遇到复杂情况AI就废了。要给点有挑战性的,让它学会处理边缘情况。

第四个是忘了测试。写了例子不测试,上线才发现AI学偏了。每次都要用几个边缘案例测一下。

最后一个是过度依赖例子。有些任务例子管用,有些不管用。别一上来就上例子,先试试直接说能不能行。简单问答、纯信息检索这些,直接说反而效果更好。

实战模板

给大家一个我常用的模板:

# 角色
你是一个[角色描述]

# 任务
你的任务是[具体任务]

# 示例
这里有几个[数量]个例子:

=== 例子1 ===
输入:[示例输入]
输出:[示例输出]
推理:[可选,展示思考过程]

=== 例子2 ===
输入:[示例输入]
输出:[示例输出]

# 现在轮到你
输入:[实际输入]
输出:

性能对比

我做过一次系统测试,同一个任务用不同方法:

方法准确率Token消耗时间成本
纯文字描述65%
1个例子78%
3个例子89%
3个例子+反面例子94%

例子确实消耗token,但省下来的调试时间绝对值。尤其是长期维护的项目,前期花点时间准备好的例子,后期调试能省一大笔时间。

进阶:动态示例选择

最近我发现个更狠的招——根据问题类型动态选例子。

比如做代码审查,检测到是SQL注入,就给SQL相关的例子;检测到是XSS,就给XSS的例子。这样不用每次都把所有例子塞进去,省token又精准。

实现方式是用另一个轻量模型先分类,再路由到对应的提示词模板。听起来复杂,其实就是个if-else,但效果很好。我们团队把这个方法用在代码审查系统上,token消耗降低了40%,准确率还提升了5个百分点。

什么时候用例子

根据我的经验,风格转换、格式提取、代码生成、文本改写这些场景用例子效果最好。但简单问答、纯信息检索、数学计算、逻辑推理这些,直接说反而效果更差。

判断标准很简单:如果你的任务需要"感觉"或"风格”,用例子;如果只是纯逻辑计算,直接说清楚就行。

记住这些

少样本提示的核心是示范而不是说教。两三个精心挑选的例子,比五百字的规则说明管用。但记住:例子不是万能药。该用规则的时候用规则,该用例子的时候用例子。

最重要的是:测试,测试,再测试。我见过太多人写出完美的例子,结果上线发现AI完全没按套路出牌。每次修改完提示词,至少用三个不同的案例测试一下,确保AI真的学会了你想要的东西。


下一步预告

让AI看例子学习只是Prompt工程的一部分。接下来我们会深入探讨:如何给AI设定"人设"让它保持角色不穿帮、处理多步推理任务的技巧、让AI学会自我纠错的方法、提示词性能优化。

这些技巧组合起来,你会发现Claude的能力完全不一样。


觉得这篇文章有用吗?

  1. 点赞:如果觉得有帮助,点个赞让更多人看到
  2. 转发:分享给可能需要的朋友或同事
  3. 关注:关注梦兽编程,不错过更多实用技术文章
  4. 留言:有什么问题或想法?欢迎在评论区交流
  5. 加入会员:获取完整系列教程和实战案例

你的支持是我持续创作的最大动力!