Header Image

少样本提示:教会AI通过例子学习

快速入门 🚀

想象你在教一个外国朋友学习中文。与其解释复杂的语法规则,直接给几个例子可能更有效:

# 教外国朋友说"我想要..."
示例1:我想要一杯咖啡 ☕️
示例2:我想要去公园 🌳
示例3:我想要学中文 📚

现在轮到你:我想要___

这就是少样本提示的核心思想 - 通过例子教会AI完成任务!

学习概览 📋

本章你将学会

  • 设计清晰的示例来指导AI
  • 处理各种实际场景
  • 提高AI输出的准确性
  • 避免常见的坑

学完就能 💪

  • 写出高质量的提示词
  • 让AI更好地理解你的需求
  • 解决实际工作中的问题
  • 建立自己的提示词模板库

核心概念:像教小朋友一样教AI 👶

什么是少样本提示?

就像教小朋友认识水果:

看,这是苹果🍎,圆圆的,红红的
这是香蕉🍌,黄黄的,长长的
这是橙子🍊,圆圆的,橙橙的

现在,你能告诉我这是什么水果吗:
圆圆的,紫紫的,有点甜...

为什么要用示例?

  1. 直观:胜过千言万语的解释
  2. 清晰:明确告知期望结果
  3. 高效:快速上手新任务

实用技巧:提高成功率 📈

1. "三明治"法则

像做三明治一样,层层构建你的提示:

# ❌ 杂乱无章
prompt = """
写一篇文章
主题:环保
字数:500
"""

# ✅ 结构清晰
prompt = """
任务:写一篇环保主题文章

🎯 目标要求:
- 主题:环保
- 字数:500字
- 风格:通俗易懂
- 结构:总分总

📝 示例文章:
标题:《让地球更美好》
正文:
随着科技的发展,环境问题日益严重...
[示例文章内容]
结尾:让我们共同守护地球家园。

✍️ 请参考以上格式写一篇文章,主题是:
[你的主题]
"""

2. "积木"搭建法

像搭积木一样,从简单到复杂:

# 第1块积木:基础问候
prompt = """
任务:生成客服开场白

示例1:
早上好,欢迎光临!请问需要什么帮助?

示例2:
下午好,很高兴为您服务!有什么可以帮您的吗?
"""

# 第2块积木:添加个性化
prompt = """
任务:生成个性化客服开场白

客户信息:
- 名字:张先生
- 会员等级:黄金
- 上次购买:手机

示例回复:
张先生您好!感谢您一直以来对我们的支持。
看到您上次购买了手机,使用还满意吗?
有任何问题都可以随时问我哦!
"""

3. "食谱"法则

像写菜谱一样详细:

# ❌ 简单食谱
prompt = "写一个煎蛋的步骤"

# ✅ 详细食谱
prompt = """
任务:描述美食制作步骤

示例 - 完美煎蛋:
1. 准备材料:
   - 新鲜鸡蛋 1个
   - 食用油 适量
   - 盐 少许

2. 制作步骤:
   a) 小火预热平底锅
   b) 加入少许油预热
   c) 打入鸡蛋,注意不要打破蛋黄
   d) 煎至蛋白凝固,撒盐调味

3. 成品展示:
   - 蛋黄金黄完整
   - 蛋白洁白不焦
   
请按此格式描述:[你的菜品]
"""

4. "标签引导法" 🏷️

像给商品贴标签一样,通过标记关键信息来引导AI:

# ❌ 混乱的标签
prompt = """
分析:这个产品很好用
优点:便宜
缺点:包装简单
"""

# ✅ 结构化标签
prompt = """
任务:产品评价分析

示例1:
评价:这款手机拍照效果很棒,但是价格有点贵
[情感倾向] = 中性
[核心优点] = 拍照效果好
[主要缺点] = 价格偏高
[购买建议] = 对拍照需求高的用户推荐

示例2:
评价:这个耳机音质一般,续航也不行,不推荐购买
[情感倾向] = 负面
[核心优点] = 无
[主要缺点] = 音质一般,续航差
[购买建议] = 不推荐购买

现在分析:
评价:这款平板屏幕素质很好,操作流畅,就是有点重
[情感倾向] = ?
[核心优点] = ?
[主要缺点] = ?
[购买建议] = ?
"""

为什么要用标签?

  1. 结构化信息:让AI更容易识别和提取关键信息
  2. 统一格式:保证输出的一致性
  3. 突出重点:明确标注需要关注的方面

实战应用:智能简历分析系统 📄

prompt = """
任务:简历关键信息提取与分析

示例简历1:
小明,男,28岁,5年工作经验。
本科毕业于清华大学计算机系,
曾在阿里担任高级开发工程师,
主导过3个大型项目,
技术栈包括Python, Java, Docker。

[基础信息]
- 姓名:小明
- 性别:男
- 年龄:28岁
- 工作年限:5年

[教育背景]
- 学历:本科
- 学校:清华大学
- 专业:计算机系

[工作经历]
- 公司:阿里
- 职位:高级开发工程师
- 成就:主导3个大型项目

[技术技能]
- 编程语言:Python, Java
- 开发工具:Docker

[加分项]
- 名校背景
- 大厂经验
- 项目管理经验

示例简历2:
李华,女,24岁,应届生,
硕士毕业于北京大学人工智能专业,
在校期间发表2篇论文,
参与过1个国家自然科学基金项目,
熟悉机器学习和深度学习。

[基础信息]
- 姓名:李华
- 性别:女
- 年龄:24岁
- 工作年限:应届生

[教育背景]
- 学历:硕士
- 学校:北京大学
- 专业:人工智能

[研究成果]
- 论文:2篇
- 项目:国家自然科学基金项目

[技术技能]
- 领域:机器学习、深度学习

[加分项]
- 高学历
- 研究经验
- 学术成果

请分析以下简历:
张三,男,26岁,2年工作经验...
"""

标签设计技巧

  1. 层次分明

    • 使用主标签和子标签
    • 保持层级结构清晰
    • 避免标签嵌套过深
  2. 命名规范

    • 使用简短清晰的标签名
    • 保持命名风格统一
    • 避免歧义词汇
  3. 灵活扩展

    • 预留扩展空间
    • 支持添加新标签
    • 保持向后兼容

常见应用场景

  1. 文本分类

    [文章类型] = 新闻/博客/技术文档
    [写作风格] = 正式/轻松/专业
    [目标读者] = 专业人士/普通用户/学生
  2. 情感分析

    [情感类型] = 喜悦/愤怒/悲伤/惊讶
    [情感强度] = 强烈/中等/轻微
    [情感触发] = 具体事件/原因
  3. 数据提取

    [时间信息] = 年/月/日
    [地点信息] = 国家/城市/详细地址
    [人物信息] = 姓名/职位/联系方式

注意事项

  1. 避免过度标签

    • 只标注必要信息
    • 保持标签简洁
    • 控制标签数量
  2. 保持一致性

    • 统一标签格式
    • 统一命名规则
    • 统一层级结构
  3. 处理异常情况

    • 设计缺失值处理
    • 准备备选标签
    • 添加验证规则

通过"标签引导法",我们可以更好地:

  • 规范化信息提取
  • 提高处理效率
  • 保证输出质量
  • 简化后续处理

记住:好的标签系统就像一个优秀的图书馆分类系统,让信息检索和处理变得简单高效!

实战案例:智能写作助手 ✍️

场景

小明需要写各种风格的文章,但经常不知道怎么开始...

解决方案

prompt = """
📝 智能写作助手

场景选择:
1️⃣ 正式商务
2️⃣ 轻松博客
3️⃣ 技术文档
4️⃣ 生活随笔

示例1 - 商务邮件:
主题:项目进度汇报
正文:
尊敬的王总:
    项目进展顺利,现已完成以下里程碑...
    [详细内容]
此致
敬礼

示例2 - 美食博客:
标题:探索城市最美味的角落
嘿,美食爱好者们!
今天我要分享一个超赞的小店...
[详细内容]
记得点赞关注哦!

您想要尝试哪种风格?
"""

效果检验清单 ✅

quality_check = {
    "内容相关": {
        "主题切合": "✓",
        "逻辑连贯": "✓",
        "细节丰富": "✓"
    },
    "风格统一": {
        "语气一致": "✓",
        "用词规范": "✓",
        "格式整齐": "✓"
    },
    "实用性强": {
        "可直接使用": "✓",
        "易于修改": "✓",
        "效果明显": "✓"
    }
}

动手练习时间! 💪

新手任务:写个自我介绍

  1. 创建3个不同场合的自我介绍示例
  2. 标注关键要素
  3. 生成新的自我介绍

进阶挑战:多场景对话生成

设计一个能处理多种场景的对话系统:

  1. 商务会谈
  2. 朋友聊天
  3. 客服交流

趣味测试

问问自己:

  1. 你的示例够生动吗?
  2. 换个人看得懂吗?
  3. 实际用起来顺手吗?

常见问题解答 🤔

1. "示例越多越好?"

就像教小朋友:

  • 太少:学不会
  • 太多:记不住
  • 最佳:3-5个典型例子

2. "示例顺序重要吗?"

像教数学:

  • 先教1+1=2
  • 再教2+2=4
  • 最后教复杂的

3. "怎么避免照搬示例?"

训练创造力:

  • 多变换场景
  • 调整细节
  • 保持核心逻辑

效果对比:零样本 vs 少样本 🆚

让我们通过几个实际例子,对比使用和不使用少样本提示的效果:

1. 商品标题生成

# ❌ 零样本提示
prompt = """
为这款产品生成标题:
红色连衣裙,真丝面料,优雅设计
"""

# 可能的回答:
"真丝红色连衣裙"
# 问题:平淡无奇,缺乏吸引力

# ✅ 少样本提示
prompt = """
任务:生成吸引人的商品标题

示例1:
商品:黑色皮衣,进口羊皮,修身版型
标题:「意大利小羊皮」奢华修身皮衣 解锁秋冬高级感

示例2:
商品:蓝色牛仔裤,弹力面料,破洞设计
标题:「四季百搭」显瘦神裤 明星同款破洞牛仔

请为以下商品生成标题:
商品:红色连衣裙,真丝面料,优雅设计
"""

# 优化后的回答:
"「真丝系列」法式复古红裙 尽显优雅气质"
# 优点:突出卖点、风格鲜明、感染力强

2. 代码注释生成

# ❌ 零样本提示
prompt = """
为这段代码写注释:
def process_data(data):
    result = {}
    for item in data:
        if item.status == 'active':
            result[item.id] = item.value * 1.1
    return result
"""

# 可能的回答:
"处理数据并返回结果"
# 问题:过于简单,缺乏细节

# ✅ 少样本提示
prompt = """
任务:生成清晰的代码注释

示例1:
代码:
def calculate_discount(price, member_type):
    if member_type == 'gold':
        return price * 0.8
    return price * 0.9

注释:
'''
计算会员折扣价格
参数:
    price (float): 原始价格
    member_type (str): 会员类型('gold'或其他)
返回:
    float: 折扣后价格
        - 金卡会员(gold)享受8折
        - 其他会员享受9折
'''

请为以下代码生成注释:
def process_data(data):
    result = {}
    for item in data:
        if item.status == 'active':
            result[item.id] = item.value * 1.1
    return result
"""

# 优化后的回答:
'''
处理活跃数据项并应用加价
参数:
    data (list): 数据项列表,每项需包含id、status和value属性
返回:
    dict: 处理后的数据字典
        - 仅处理status为'active'的项
        - 对活跃项的value增加10%
        - 使用id作为键存储结果
'''

3. 客服回复生成

# ❌ 零样本提示
prompt = """
回复这个客户投诉:
产品收到了,但是包装有点破损,不太满意
"""

# 可能的回答:
"抱歉,我们会注意改进包装"
# 问题:敷衍了事,缺乏专业性

# ✅ 少样本提示
prompt = """
任务:生成专业的客服回复

示例1:
投诉:发货太慢了,等了一个星期才收到
回复:尊敬的客户您好,非常抱歉让您久等了。我们已经注意到配送时效的问题,目前已经优化了物流环节,大部分订单可在3天内送达。为表歉意,已为您赠送50元无门槛优惠券。您的体验对我们非常重要,感谢您的理解与支持。

示例2:
投诉:手机屏幕有划痕,很失望
回复:尊敬的客户您好,对于产品出现划痕的情况,我们深表歉意。请您提供订单号和产品照片,我们会第一时间为您处理。根据售后政策,您可以选择:1. 直接退货退款;2. 免费更换新机。请问您想选择哪种处理方式?

请回复这位客户:
投诉:产品收到了,但是包装有点破损,不太满意
"""

# 优化后的回答:
"尊敬的客户您好,非常抱歉您收到的商品包装出现破损。作为注重产品体验的企业,这确实是我们的疏忽。为确保您的权益,我们建议:
1. 请您检查产品本身是否完好
2. 如有任何损坏,我们将立即安排换货
3. 同时补偿您30元无门槛优惠券

我们已经向物流部门反馈包装问题,将加强发货环节的质检。您的反馈对我们非常重要,感谢您帮助我们提高服务质量。"

主要提升效果

  1. 输出质量

    • 零样本:简单、粗糙、缺乏细节
    • 少样本:专业、完整、结构清晰
  2. 格式规范

    • 零样本:格式随机,不够统一
    • 少样本:格式统一,易于处理
  3. 内容丰富度

    • 零样本:内容单薄,要点遗漏
    • 少样本:内容充实,要点完整
  4. 语言表达

    • 零样本:表达生硬,缺乏人情味
    • 少样本:表达自然,更有温度
  5. 专业程度

    • 零样本:内容通用,不够专业
    • 少样本:行业特色,专业规范

通过这些对比,我们可以看到少样本提示能显著提升AI输出的质量,使其更符合实际业务需求。

继续探索 🚀

相关技术

  • 思维链:让AI像人一样思考
  • 零样本:无需示例的魔法
  • 提示链:组合多个技巧

下一步

  1. 创建自己的示例库
  2. 实践不同场景
  3. 分享你的经验

记住:熟能生巧,多试多练!