AI Agent白手起家29: Few Shot 提示词工程实战
内容纲要核心概念Zero Shot零样本推理不给示例直接提问Few Shot少样本推理通过少量示例引导模型输出FewShotChatMessagePromptTemplateLangChain 中实现 Few Shot 的专用模板关键流程准备示例 → 定义示例模板 → 组合最终提示词 → 提交给 LLM涉及组件langchain_core.prompts、langchain_core.messages示例使用ChatPromptTemplate代码演示完整可运行的 Python 脚本包含构建示例、组合模板、调用模型使用模拟模型全过程引言在提示词工程中如果直接让大模型完成一个从未见过的任务往往会出现答非所问或质量低下的情况。Few Shot少样本提示就是通过提供少量“输入-输出”示例让模型快速理解任务模式从而在新问题上给出更符合预期的答案。本文将介绍 Few Shot 的核心思想并结合 LangChain 展示如何用FewShotChatMessagePromptTemplate高效地构建示例驱动的提示。Zero Shot 与 Few Shot 对比Zero Shot不提供任何示例直接提问。对于推理能力较强的模型如具备思维链的模型也能获得不错的效果但对于常规对话模型直接回答生僻或自定义的任务往往表现不佳。Few Shot提供若干精心设计的示例让模型模仿示例格式和逻辑进行回答。示例的质量和与任务的相关性远比数量更重要。例如直接问模型 “what is 2 小鸟 9?”Zero Shot 方式可能得到不知所云的回复而如果先给出两个示例 “2 小鸟 2 4”、“2 小鸟 3 5”模型便能推断出“小鸟”代表加法并正确回答 “2 小鸟 9 11”。下表对比了两种方式的特点方式示例数量适用场景对模型推理要求Zero Shot0常识问答、简单任务高Few Shot≥1自定义规则、格式转换、新任务较低LangChain 中的 Few Shot 实现LangChain 提供了FewShotChatMessagePromptTemplate它可以轻松地将一组示例和基础提示词组合成最终的消息列表。整个流程如下准备示例列表创建示例模板用FewShotChatMessagePromptTemplate组合示例与基础提示追加最终用户问题提交给大模型构建示例示例通常是一个字典列表每个字典包含input和output字段分别代表人类问题和期望的 AI 回答。创建示例模板使用ChatPromptTemplate定义如何将示例格式化为消息一般将input放入HumanMessageoutput放入AIMessage。组合最终提示将示例模板与包含系统消息和最终人类问题的完整提示词模板进行组合由FewShotChatMessagePromptTemplate统一编排。完整可运行代码以下代码演示了用 Few Shot 让模型理解自定义运算符“小鸟”为加法的过程。为便于运行使用FakeListChatModel模拟大模型响应无需 API Key。安装依赖pipinstalllangchain langchain-core langchain-community核心代码fromlangchain_core.promptsimport(ChatPromptTemplate,FewShotChatMessagePromptTemplate,)fromlangchain_community.chat_models.fakeimportFakeListChatModel# 1. 定义示例列表examples[{input:2 小鸟 2,output:4},{input:2 小鸟 3,output:5},]# 2. 构建示例模板将每个示例格式化为 HumanMessage 和 AIMessageexample_promptChatPromptTemplate.from_messages([(human,{input}),(ai,{output}),])# 3. 用 FewShotChatMessagePromptTemplate 组合示例和模板few_shot_promptFewShotChatMessagePromptTemplate(example_promptexample_prompt,examplesexamples,)# 4. 构建最终提示词模板系统消息 few shot 示例 最终人类问题final_promptChatPromptTemplate.from_messages([(system,你是一位神奇的数学奇才。),few_shot_prompt,(human,{input}),])# 5. 格式化并查看组合后的消息formatted_messagesfinal_prompt.format_messages(input2 小鸟 9)print(组合后的消息列表)formsginformatted_messages:print(f{msg.type}:{msg.content})# 6. 使用模拟模型进行回答预设输出为 11modelFakeListChatModel(responses[11])chainfinal_prompt|model responsechain.invoke({input:2 小鸟 9})print(f\n模型回答{response.content})运行上述代码可以看到消息列表中包含了示例的 Human 和 AI 消息以及最后的用户问题 “2 小鸟 9”。模拟模型返回 “11”证明 Few Shot 成功让模型掌握了“小鸟”的含义。示例设计的注意事项示例与任务高度相关如果任务是写唐诗示例应该是唐诗而不是宋词或现代诗。质量优于数量一两个精准的示例往往比一堆模糊的示例更有效。格式一致保证示例的输入输出格式与最终期望的格式完全一致让模型容易模仿。总结Few Shot 是提升大模型在特定任务上表现的重要技巧LangChain 通过FewShotChatMessagePromptTemplate将其变成了一个可复用、可组合的组件。无论是自定义符号运算、特定领域的文本生成还是格式转换都可以通过提供少量示例大幅提高模型的输出质量和稳定性。

相关新闻

昆泰芯 KTM1922|1.8~5.5V/-40~125℃单 N 极 TMR 磁开关 SOT23-3L/TO92S 水表 TWS 笔记本磁吸场景分享

昆泰芯 KTM1922|1.8~5.5V/-40~125℃单 N 极 TMR 磁开关 SOT23-3L/TO92S 水表 TWS 笔记本磁吸场景分享

一、产品整体概述 KTM1922 是昆泰芯基于 TMR 隧道磁阻工艺开发的定向 N 极低功耗磁开关,片内整合 TMR 传感电桥、基准电源、阈值修调、滤波放大、时序时钟与开漏输出全套 CMOS 电路,无需外置信号调理元件。芯片仅对平行封装表面的 N 极磁场产生感应&…

2026/10/15 9:59:43 阅读更多 →
AI会取代FAB工程师吗:干了5年的真实答案

AI会取代FAB工程师吗:干了5年的真实答案

一、背景故事:FAB里的AI浪潮来得比想象中更快2020年我刚进FAB的时候,AI在车间里还是个很虚的概念。大家聊的都是"机器学习"和"大数据",但具体怎么落地,没人能说得清楚。三年后的今天,情况完全不同…

2026/10/7 14:36:29 阅读更多 →
告别论文赶工内耗!宏智树 AI 课程论文撰写功能,打通本科写作全链路解决方案

告别论文赶工内耗!宏智树 AI 课程论文撰写功能,打通本科写作全链路解决方案

作为深耕论文科普的教育博主,我每天都会收到数百条学生私信吐槽课程论文写作难题:期末多门课程叠加,短短几天要产出数篇论文;选题宽泛找不到合适切入点;翻阅几十篇文献仍梳理不清研究脉络;写完初稿还要熬夜…

2026/10/14 1:32:03 阅读更多 →

最新新闻

内网服务器离线安装实战:从零搭建本地YUM源完整指南

内网服务器离线安装实战:从零搭建本地YUM源完整指南

搞内网运维这几年,但凡服务器数量超过二十台、业务又对公网访问有强限制,你早晚会遇到这样一个问题:明明在联网机器上一条yum install就能装好的包,到了内网机器上就成了“Could not retrieve mirrorlist”,要么超时、…

2026/10/15 18:34:48 阅读更多 →
Arduino寻迹避障小车:简单避障程序从接线到状态机全解析

Arduino寻迹避障小车:简单避障程序从接线到状态机全解析

简介:面向STC单片机入门者的寻迹避障小车简单避障程序,是一份围绕STC15系列MCU的嵌入式实践代码包,适合正在学习8051内核、传感器检测与小车运动控制的开发者参考。程序涵盖初始化配置、IR红外传感器读取、避障策略判断以及PWM电机调速等核心…

2026/10/15 18:34:47 阅读更多 →
用OLED实时显示MPU6050姿态数据:I2C驱动与互补滤波详解

用OLED实时显示MPU6050姿态数据:I2C驱动与互补滤波详解

简介:面向STM32与传感器开发初学者的完整工程包,演示如何将MPU6050六轴陀螺仪与加速度计数据实时显示在OLED屏幕上,适用于快速搭建姿态检测显示系统。工程基于STM32标准外设库编写,涵盖I2C通信、DMP姿态解算、LCD驱动等关键模块&a…

2026/10/15 18:34:47 阅读更多 →
【Bug已解决】Understanding input shape to PyTorch conv1D? 解决方案

【Bug已解决】Understanding input shape to PyTorch conv1D? 解决方案

【Bug已解决】Understanding input shape to PyTorch conv1D? 解决方案 问题描述 在 PyTorch 中使用 nn.Conv1d 进行一维卷积时,输入张量的形状(shape)是一个经常让开发者困惑的问题。与 TensorFlow/Keras 不同,PyTorch 的卷积层…

2026/10/15 18:34:47 阅读更多 →
树莓派3B用WiringPi IIC驱动0.96寸OLED实战指南

树莓派3B用WiringPi IIC驱动0.96寸OLED实战指南

简介:面向树莓派3B及同类Linux单板计算机的OLED显示驱动套件,集中解决基于WiringPi库通过IIC/I2C协议控制0.96寸OLED屏的问题,适配SSD1306与SH1106控制器,适合嵌入式DIY学习者与物联网项目开发者参考。资源包共包含10个文件&#…

2026/10/15 18:34:47 阅读更多 →
SAP PP与CO集成配置指南:生产订单成本核算与月末结账要点

SAP PP与CO集成配置指南:生产订单成本核算与月末结账要点

做SAP实施这些年,PP(生产计划)和CO(成本控制)的交接地带一直是项目里最容易翻车的区域。生产部门觉得订单是计划问题,财务觉得订单是钱的问题,但生产订单在系统里却同时承载着物料消耗、工时确认…

2026/10/15 18:33:47 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →