Header Image

本教程已经开源:https://github.com/learnagi/learnagi-course/blob/main/prompt-engineering/zero-shot.md

后面会持续更新可以关注 AGI01

本节概要

通过本节学习,你将学会:

  • 理解零样本提示的工作原理和应用场景
  • 掌握编写高质量提示词的核心技巧
  • 学会在实际工作中灵活运用零样本提示
  • 能够处理各类常见任务并持续优化效果

💡 重点内容:

  • 零样本提示的基本原理
  • 提示词编写的最佳实践
  • 实战应用案例分析
  • 效果优化和进阶技巧

什么是零样本提示?

想象你遇到一位博学多才的助手。他知识渊博,理解力强,最妙的是:你不需要给他看以前的工作案例,只要清晰地说明任务要求,他就能很好地完成工作。这就是零样本提示的核心理念。

核心特点

  1. 无需示例 - 直接利用模型已有知识
  2. 即时应用 - 快速上手各类任务
  3. 灵活通用 - 适应不同场景需求

工作原理

零样本提示就像是在和一个博学的助手对话:

  • 📝 你描述任务 → 助手理解要求
  • 🎯 设定规则 → 助手遵循规范
  • 🔄 给出反馈 → 助手持续改进

实战应用:生活中的AI助手

1. 学习助手 📚

# 概念解释助手
prompt = """
请用通俗易懂的语言解释这个概念:
要求:
1. 使用生活中的例子
2. 分点列举重要信息
3. 难度适合高中生理解

概念:{你的课程概念}
"""

# 实际效果
输入:光合作用
输出:
• 简单来说,就像植物的"做饭"过程
• 原料:阳光(能量)+ 二氧化碳 + 水
• 成品:养分(糖分)+ 氧气
• 生活例子:就像太阳能充电器,把阳光能量转换成植物能用的能量

2. 写作助手 ✍️

# 文章润色助手
prompt = """
帮我改进以下文字:
要求:
1. 保持原意
2. 让表达更生动
3. 改正语法错误

原文:{你的文字}
"""

# 实际效果
输入:今天天气很好,我很开心
输出:和煦的阳光洒满大地,让我的心情也变得格外愉悦

3. 生活小帮手 🏠

# 食谱推荐助手
prompt = """
根据以下食材,推荐一道简单的菜:
要求:
1. 烹饪时间不超过30分钟
2. 只需要基础厨具
3. 列出详细步骤

现有食材:{你家的食材}
"""

# 实际效果
输入:鸡蛋、西红柿、葱花
输出:
推荐:西红柿炒鸡蛋
1. 准备时间:5分钟
2. 烹饪时间:10分钟
3. 详细步骤:...

4. 工作助手 💼

# 邮件优化助手
prompt = """
帮我修改这封邮件:
场景:工作邮件
要求:
1. 保持专业礼貌
2. 表达简洁清晰
3. 重点突出

原邮件:{你的邮件}
"""

# 实际例子
输入:老板,我明天要请假,下周来上班
输出:尊敬的XX经理:
      因个人原因,申请明天请假一天,将于下周一返岗工作...

5. 社交媒体助手 📱

# 社交文案优化
prompt = """
优化以下社交媒体内容:
要求:
1. 增加趣味性
2. 添加合适的表情符号
3. 控制在100字以内

原文案:{你的文案}
"""

# 实际例子
输入:今天去爬山了,风景很美
输出:🏃‍♂️征服山顶的感觉真好!
      大自然给了我最好的周末礼物 🎁
      蓝天、白云,还有满满的幸福感 ☁️

核心技巧:提升成功率

1. 任务分解法

将复杂任务拆分为简单步骤,逐步完成:

# ❌ 不好的做法
prompt = """
分析这篇文章并给出改进建议
"""

# ✅ 好的做法
prompt = """
第1步:提取文章主要论点
要求:
1. 列出中心论点
2. 提取关键论据
3. 标注重要数据

第2步:评估论证逻辑
检查:
1. 论据是否支持论点
2. 逻辑是否连贯
3. 举例是否恰当

第3步:给出改进建议
针对:
1. 论证结构
2. 数据支持
3. 表达方式
"""

2. 上下文增强法

添加背景信息,提升理解准确度:

# ❌ 不好的做法
prompt = "这个价格合理吗?"

# ✅ 好的做法
prompt = """
背景:高端智能手机市场分析
市场情况:
- 竞品价格区间:4000-8000元
- 目标用户:25-35岁中高收入群体
- 主要竞争对手:iPhone 15,华为Mate 60

产品信息:
- 处理器:最新旗舰芯片
- 屏幕:2K+高刷
- 电池:5000mAh
- 定价:5999元

请从以下维度分析定价合理性:
1. 竞争力分析
2. 目标用户支付意愿
3. 产品定位匹配度
"""

3. 约束优化法

通过设定具体约束提升输出质量:

# ❌ 不好的做法
prompt = "写一篇产品介绍"

# ✅ 好的做法
prompt = """
任务:撰写产品介绍文案
目标受众:25-35岁职场人士
文案要求:
1. 篇幅:300字以内
2. 结构:问题-解决方案-效果
3. 风格:专业但不晦涩

关键要素:
- 点明痛点(2-3个)
- 突出核心功能(3-5个)
- 强调独特优势(1-2个)
- 添加行动召唤

语言规范:
- 避免过度承诺
- 数据必须真实
- 用词积极向上
"""

进阶技巧:提升应用效果

1. 多轮对话策略

通过多轮对话优化结果:

# 第一轮:获取初步方案
prompt_1 = """
任务:设计产品功能方案
要求:列出核心功能点
"""

# 第二轮:优化和完善
prompt_2 = """
基于上述功能清单,请:
1. 评估实现难度(高/中/低)
2. 标注优先级(P0/P1/P2)
3. 补充技术依赖
"""

# 第三轮:制定执行计划
prompt_3 = """
结合难度和优先级,请:
1. 设计迭代计划
2. 制定时间节点
3. 识别潜在风险
"""

2. 模板库构建

建立个人或团队的模板库:

# 模板结构示例
templates = {
    "需求分析": {
        "prompt": """
        需求背景:{background}
        目标用户:{target_users}
        核心问题:{core_problems}
        
        请提供:
        1. 需求优先级分析
        2. 可行性评估
        3. 建议方案
        """,
        "使用场景": "产品需求讨论",
        "注意事项": "明确约束条件"
    },
    
    "代码优化": {
        "prompt": """
        代码评审要点:
        1. 性能优化空间
        2. 安全隐患
        3. 可维护性
        4. 扩展性考虑
        
        代码段:{code}
        """,
        "使用场景": "代码审查",
        "注意事项": "关注边界情况"
    }
}

3. 效果评估框架

建立系统的评估机制:

# 评估指标示例
metrics = {
    "准确性": {
        "评分标准": [
            "完全符合要求:5分",
            "基本符合要求:4分",
            "部分符合要求:3分",
            "较多偏差:2分",
            "完全不符合:1分"
        ],
        "权重": 0.4
    },
    "完整性": {
        "评分标准": [
            "覆盖所有要点:5分",
            "遗漏次要点:4分",
            "遗漏重要点:3分",
            "严重遗漏:2分",
            "基本未覆盖:1分"
        ],
        "权重": 0.3
    },
    "实用性": {
        "评分标准": [
            "直接可用:5分",
            "简单修改可用:4分",
            "需要调整:3分",
            "较难应用:2分",
            "无法使用:1分"
        ],
        "权重": 0.3
    }
}

# 评估流程
def evaluate_prompt(prompt_result):
    scores = {}
    for metric, details in metrics.items():
        # 评分逻辑
        score = get_score(prompt_result, details["评分标准"])
        weighted_score = score * details["权重"]
        scores[metric] = weighted_score
    
    return {
        "总分": sum(scores.values()),
        "分项得分": scores,
        "改进建议": generate_improvement_suggestions(scores)
    }

4. 持续优化策略

数据收集

  • 记录成功/失败案例
  • 收集用户反馈
  • 追踪关键指标

定期复盘

  • 分析失败原因
  • 提炼成功经验
  • 更新最佳实践

知识沉淀

  • 维护问题库
  • 更新模板库
  • 分享实践心得

实战案例:智能客服系统

问题描述

  • 背景:电商平台客服中心,每天处理大量客户问询
  • 目标:提高响应速度,保证服务质量
  • 挑战:问题类型多样,需要准确分类和处理

解决方案

# 客服问题分类助手
prompt = """
任务:客服问题智能分类
背景:电商平台客服中心

输入问题分类:
- 📦 物流相关(发货、运输、签收)
- 💰 退款相关(退货、换货、赔付)
- ❓ 产品咨询(规格、用法、参数)
- 🎯 售后支持(安装、维修、保修)

优先级定义:
- 紧急:2小时内处理
- 高级:当天处理
- 普通:3个工作日内处理

客户问题:{customer_question}
"""

# 实际效果
输入:我的快递显示已签收,但是我没收到
输出:
{
    "类型": "物流相关",
    "优先级": "紧急",
    "建议回复": "非常抱歉给您带来困扰,我们将立即联系快递核实情况...",
    "处理建议": "1. 核实快递轨迹 2. 联系快递员 3. 必要时启动赔付"
}

优化建议

  1. 定期更新问题类型库
  2. 收集用户反馈优化回复模板
  3. 建立问题处理的评估机制

小结

零样本提示就像是在教一个聪明的助手完成任务:

  • 🎯 明确的指令带来好的结果
  • 📝 具体的要求产生精确的输出
  • 🔄 持续的优化提升使用效果

实践建议

  1. 从简单的任务开始
  2. 保持指令清晰具体
  3. 根据结果调整提示词
  4. 建立个人模板库
💡 提示:将好用的提示词保存下来,形成自己的模板库,这样可以在日后快速调用和优化。

练习任务

  1. 基础练习

    • 为一篇博客文章写摘要
    • 将专业文章改写成大众语言
    • 生成一份简单的周报
  2. 进阶挑战

    • 设计一个多步骤的任务处理流程
    • 创建自己的提示词模板库
    • 优化现有模板的效果

西树先森
7.1k 声望926 粉丝

从事开发多年,前端、后端(go、Python、php)、服务架构都有涉猎,经历过大公司、创业公司,擅长前端及公司技术选型。目前ALL in AI