大模型prompt工程Zero-Shot与Few-Shot以及json格式

笔记跟着黑马程序员大模型RAG与Agent智能体项目实战教程,基于主流的LangChain技术从大模型提示词到实战项目学习记录的

一、前言

提示词工程(Prompt Engineering)是大模型应用落地最基础、成本最低的优化手段,无需微调模型权重,仅通过优化输入指令,就能大幅提升大模型输出准确率与规范性。其中 Zero-Shot(零样本)Few-Shot(少样本) 是提示词设计的两大核心思想,本文结合原理、案例、实战业务完整拆解。

二、Few-Shot 少样本学习核心概念

2.1 基础定义

Few-shot Learning 即少样本学习 :模型在海量通用数据预训练完成后,面对全新未知任务,仅需要提供少量参考样本,就能快速学会任务规则并完成推理。

  • One-shot Learning:单样本学习,属于 Few-shot 的特殊形式,只给 1 条示例;
  • Few-shot:一般提供 2~5 条示例,提示词场景最常用。

2.2 两个层面理解 Few-Shot

(1)模型底层训练层面(图像识别举例)

以企鹅分类任务为例:

  1. 先给模型少量企鹅、鹈鹕、海雀的参考图片(Support Set);
  2. 模型通过相似度函数计算待识别图片(Query Image)与各类别的匹配分值;
  3. 分值最高的类别即为最终预测结果。简单说:靠少量样本学习特征,靠相似度匹配未知数据。
(2)提示词工程应用层面

核心逻辑:用少量示例定义输出格式、规则、风格,强制模型对齐结果,减少幻觉与格式错乱

实操示例:产品信息抽取(JSON 固定格式)

任务:抽取产品名称、核心卖点,严格输出 JSON 格式,参考下面 2 个示例执行示例 1:MacBookPro 高效节能,性能强大,适合牛马工作使用输出:{"产品名称":"MacBookPro","产品卖点":"高效节能,性能强大"}示例 2:联想笔记本拥有 RTX4060 独立显卡,畅玩游戏,丝滑流畅输出:{"产品名称":"联想笔记本","产品卖点":"畅玩游戏,丝滑流畅"}待处理文本:华为 MatepadPro,高清大屏,长效续航,你的好帮手最终输出:{"产品名称":"华为 MatepadPro","产品卖点":"高清大屏,长效续航"}

三、Zero-Shot 零样本学习核心概念

3.1 基础定义

Zero-Shot Learning 零样本学习:不给任何参考示例,只通过自然语言文字描述任务要求,依靠大模型预训练阶段学到的海量知识、语义关联,直接完成全新陌生任务。

3.2 两个层面理解 Zero-Shot

(1)模型训练层面

模型依靠预训练时学习到的类别关联、语义特征,直接对从未见过的新类别做迁移推理,全程不需要提供该类别的任何样本。

(2)提示词工程应用层面

只口头描述任务规则,无任何示范案例,完全依赖大模型自身知识库完成输出。

极简示例

任务:判断下面用户评价的情感,只输出「正向」或「负向」评价:这家银行办理业务速度太慢,等待时间过长输出:负向

四、Zero-Shot vs Few-Shot 对比

4.1 模型底层训练维度

  1. Zero-Shot 零样本不提供任何新类别样本,利用模型预训练沉淀的语义、特征关联,直接迁移识别未知类别。
  2. Few-Shot 少样本提供少量标注样本,让模型快速学习新任务特征,泛化能力更强,识别精度更高。

4.2 提示词编写落地维度

  1. Zero-Shot仅用自然语言描述任务规则,无示例,完全依赖大模型自身预训练知识作答;优点是提示词简短,缺点是复杂任务容易格式跑偏、产生幻觉。
  2. Few-Shot给模型多条标准输出示例,引导模型严格对齐示例的结构、格式、措辞;优点是输出稳定、格式统一,适合 RAG 信息抽取、分类、结构化输出场景。

五、业务实战场景

5.1 实战业务目标

基于 Zero-Shot、Few-Shot 两种提示词思想,完成金融行业三大经典 NLP 任务:

  1. 文本分类(如客户投诉分类、业务咨询类别划分)
  2. 信息抽取(如合同关键字段、金额、日期、业务主体提取)
  3. 文本匹配(如问句与知识库标准问题相似度匹配)

5.2 落地选型

  1. 简单分类、简短问答:优先使用 Zero-Shot,提示词简洁高效;
  2. 需要固定 JSON / 表格格式、高准确率抽取、多规则约束:优先使用 Few-Shot 少样本提示词,规避模型输出混乱问题;
  3. 工程化方案:实际开发中采用 Zero-Shot + Few-Shot 混合模式,封装成通用提示词模板调用大模型接口。

六、总结

  1. 本质区别:Zero-Shot 靠模型自有知识干活,Few-Shot 靠少量示例教模型怎么干活;
  2. 提示词使用口诀:简单任务零样本,格式严格少样本;
  3. 行业落地:在金融、政务、企业知识库 RAG 项目中,Few-Shot 是保证结构化输出最常用的提示词方案。

一、什么是 JSON

1. 核心定义

JSON(JavaScript Object Notation)是带固定规则的格式化字符串 ,专门用来存储、传递带层级结构的数据,最大优势是跨编程语言通用,Python、Java、前端 JS、Go 都能无障碍解析,是接口数据传输的标准格式。

2. 三种数据格式对比

  1. 纯文本

    小明11岁是个男孩
    小李12岁是个女孩
    小王16岁是一个男孩子

缺点:没有字段划分,代码提取姓名、年龄极其麻烦,无法自动化解析。

  1. CSV 逗号分隔格式

    小明,11,男
    小李,12,女
    小王,16,男

优点:结构简单、占用体积小;缺点:依赖固定顺序,少一列、顺序错乱直接解析失败,不支持嵌套复杂数据。

  1. JSON 格式

    {"name": "小明", "age": 11, "gender": "男"}

优点:自带 key 字段标识、支持无限嵌套、全语言兼容;

缺点:符号冗余,存储空间略大于 CSV。


二、JSON 和 Python 数据结构

JSON 本质是字符串,解析后会自动映射成 Python 内置类型:

  1. **JSON 对象 {} → Python 字典 dict**JSON 嵌套结构示例:

    {
    "age": 11,
    "name": "小明",
    "hobby": ["唱", "跳", "rap"],
    "other": {
    "身高": 172,
    "体重": 68
    }
    }

解析后就是 Python 嵌套字典,取值方式:dict["other"]["身高"]

  1. **JSON 数组 [] → Python 列表 list**JSON 数组(多条数据集合):

    [
    {"name": "小明", "age": 11},
    {"name": "小李", "age": 12},
    {"name": "小王", "age": 16}
    ]

解析后为 Python 列表套字典,取值:list[0]["name"]

格式硬性规则

  1. JSON 的键必须用双引号 ",不支持单引号;
  2. 只支持:对象、数组、字符串、数字、true/false/null,不能存放 Python 对象、函数。

三、Python 内置 json 模块方法

无需 pip 安装,Python 自带库,直接导入:

复制代码
import json

1. json.dumps():Python 对象 → JSON 字符串

作用:把字典 / 列表打包成标准 JSON 字符串,用于网络接口传输、写入文件。语法:

复制代码
json.dumps(数据, ensure_ascii=False, indent=2)
  • ensure_ascii=False:必加参数,避免中文转义为\uXXXX乱码;
  • indent=2:可选,自动换行缩进,美化打印格式。
示例代码
复制代码
import json

# Python嵌套字典
person = {
    "age": 11,
    "name": "小明",
    "hobby": ["唱", "跳", "rap"],
    "other": {
        "身高": 172,
        "体重": 68
    }
}

# 转为JSON字符串
json_str = json.dumps(person, ensure_ascii=False, indent=2)
print(type(json_str))  # 输出 <class 'str'>
print(json_str)

2. json.loads():JSON 字符串 → Python 对象

作用:接收接口返回 / 文件读取的 JSON 字符串,还原成字典 / 列表,方便代码取值计算。语法:

复制代码
json.loads(json格式字符串)
承接上面的示例

python

复制代码
# 把JSON字符串还原为Python字典
python_data = json.loads(json_str)
print(type(python_data)) # <class 'dict'>
# 嵌套取值
print(python_data["other"]["身高"]) # 输出 172
  1. dumps打包,Python 字典 / 列表 → JSON 字符串(对外发送)
  2. loads拆包,JSON 字符串 → Python 字典 / 列表(接收解析)
  3. 中文不乱码,永远带上参数 ensure_ascii=False
  4. JSON 大括号对应 Python 字典,JSON 中括号对应 Python 列表
相关推荐
Fluxart.ai1 小时前
2026电商AI出图质量验收标准与质检SOP完整教程
大数据·人工智能
全栈技术负责人1 小时前
Ollama + Open WebUI 搭建本地大模型
人工智能·ai·ai编程
海兰1 小时前
【记忆】openclaw之Honcho 记忆系统
人工智能·agent·openclaw
泛普软件1 小时前
工程施工项目管理办公系统能解决哪些现场管理难题与超支问题
大数据·人工智能·软件需求
happy_baymax1 小时前
MATLAB MCP Server+ MATLAB Agentic Toolkit+Simulink Agentic Toolkit自动更新批处理文件.ps1
人工智能·算法
深兰科技1 小时前
深兰科技携手绿地集团布局行业智能体,绿地深兰科技智能体科技公司揭牌
人工智能·科技·启发式算法·推荐算法·深兰科技·绿地集团·deepagent
AIVOClaw容剪1 小时前
AI 成片系统搭建如何让矩阵号差异化从「同一脚本 50 个号发」变成「反推提示词每号一版」——5 模块防止同质化被判搬运 · AI 视频智能体平台
人工智能·矩阵·音视频
A15362552 小时前
WMS 仓储系统的软件有哪些?2026 主流产品分类与选型参考
大数据·人工智能
爱炼丹的James2 小时前
目标检测任务
人工智能·深度学习