
本文档通过LangChain DashScope (qwen3.5-plus)的实际代码示例介绍 Prompt Engineering 中两个核心概念Few-Shot Prompting和Chain-of-Thought Prompting。目录环境准备Few-Shot Prompting少样本提示Chain-of-Thought Prompting思维链提示对比实验同样任务不同策略的效果总结与参考1. 环境准备1.1 技术栈组件说明LangChainLLM 调用框架提供 Prompt 模板等工具DashScope阿里云模型服务百炼平台兼容 OpenAI APIqwen3.5-plus千问 3.5 Plus 模型支持 1M 上下文Python 3.13运行环境1.2 安装依赖pipinstalllangchain langchain-openai langchain-core1.3 环境变量需要提前在系统环境变量中设置DASHSCOPE_API_KEY你的阿里云百炼API密钥1.4 模型初始化importosfromlangchain_openaiimportChatOpenAIfromlangchain_core.messagesimportHumanMessagefromlangchain_core.promptsimportFewShotPromptTemplate,PromptTemplate# 使用 DashScope OpenAI 兼容模式调用千问模型llmChatOpenAI(modelqwen3.5-plus,api_keyos.environ[DASHSCOPE_API_KEY],base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1,temperature0.7,)参考文档LangChain ChatOpenAI 集成DashScope OpenAI 兼容模式阿里云百炼平台2. Few-Shot Prompting少样本提示2.1 概念Few-Shot Prompting是指在 prompt 中给模型提供少量「输入 → 输出」示例shots让模型理解任务的格式和风格然后对新输入做出类似的回答。┌─────────────────────────────────────────────────────┐ │ 示例 1: 苹果 → 水果红色或绿色脆甜 │ │ 示例 2: 香蕉 → 水果黄色软糯 │ │ 示例 3: 西兰花 → 蔬菜绿色像小树 │ │ ───────────────────────────────────── │ │ 新输入: 火龙果 → ? │ └─────────────────────────────────────────────────────┘ │ ▼ 模型输出: 水果红色多汁带籽核心思想不需要微调模型纯靠上下文学习 (In-Context Learning)就能让模型照猫画虎。示例越多、质量越高输出越稳定。2.2 使用 LangChain 实现LangChain 提供了FewShotPromptTemplate来优雅地组织示例few_shot_promptFewShotPromptTemplate(examples[{input:苹果,output:水果红色或绿色脆甜},{input:香蕉,output:水果黄色软糯},{input:西兰花,output:蔬菜绿色像小树},],example_promptPromptTemplate(input_variables[input,output],template输入: {input}\n输出: {output},),prefix请根据以下示例为给定的词语生成类似的定义,suffix输入: {input}\n输出:,input_variables[input],)# 使用final_promptfew_shot_prompt.format(input火龙果)responsellm.invoke([HumanMessage(contentfinal_prompt)])print(response.content)2.3 运行结果构造的 Prompt请根据以下示例为给定的词语生成类似的定义 输入: 苹果 输出: 水果红色或绿色脆甜 输入: 香蕉 输出: 水果黄色软糯 输入: 西兰花 输出: 蔬菜绿色像小树 输入: 火龙果 输出:模型输出水果红色多汁带籽模型成功学到了模式——用类别特征的格式来描述新词。参考文档LangChain FewShotPromptTemplateFew-Shot 论文 (Brown et al., 2020)3. Chain-of-Thought Prompting思维链提示3.1 概念Chain-of-Thought (CoT)引导模型在给出最终答案之前先展示一步步的推理过程。这就像做数学题时写过程一样让模型的思考透明化。直观理解无 CoT: 输入: 2, 6, 18, 54, ? 输出: 162 有 CoT: 输入: 2, 6, 18, 54, ? 让我们一步一步思考。 输出: 6÷23, 18÷63, 54÷183, 所以是等比数列×3 54×3162答案是1623.2 两种 CoT 方式方式一零样本 CoT (Zero-shot CoT)只需在 prompt 末尾加上“让我们一步一步思考”或英文“Let’s think step by step”就能触发模型的推理链。论文来源Kojima et al., 2022 — 发现这句简单的 magic phrase 能显著提升推理效果zero_shot_cot问题: 小明买了 5 个苹果每个 3 元又买了 2 个橙子每个 4 元。 他一共花了多少钱 让我们一步一步思考。responsellm.invoke([HumanMessage(contentzero_shot_cot)])运行结果让我们一步一步思考 1. **计算买苹果花的钱** 小明买了 5 个苹果每个 3 元。 $5 \times 3 15$ 元 2. **计算买橙子花的钱** 小明买了 2 个橙子每个 4 元。 $2 \times 4 8$ 元 3. **计算总共花的钱** $15 8 23$ 元 答案他一共花了 23 元。方式二少样本 CoT (Few-shot CoT)给出带有推理步骤的示例让模型学习如何推理few_shot_cot_prompt以下是一些数学问题的解答展示了逐步推理过程 问题: 一个矩形长 8 米宽 5 米它的面积是多少 推理: 1. 矩形的面积 长 x 宽 2. 面积 8 x 5 40 答案: 40 平方米 问题: 商店上午卖出 15 件衣服下午卖出的是上午的 2 倍还多 3 件。 今天一共卖出了多少件衣服 推理:responsellm.invoke([HumanMessage(contentfew_shot_cot_prompt)])运行结果1. 上午卖出 15 件 2. 下午卖出 15 x 2 3 33 件 3. 今天一共卖出 15 33 48 件 答案48 件参考文档Chain-of-Thought 论文 (Wei et al., 2022)Zero-shot CoT 论文 (Kojima et al., 2022)4. 对比实验同样任务不同策略的效果为了直观对比我们用同一个数列推理任务试 4 种不同的策略任务一组数2, 6, 18, 54, ?下一个数是什么策略 A直接提问无策略question一组数: 2, 6, 18, 54, ? 下一个数是什么输出模型直接给出答案162虽然也附带解释了规律但未要求它推理策略 BFew-Shot给示例few_shot_task示例: 1, 4, 9, 16, ? 答案是 25 (因为 1^21, 2^24, 3^29, ...) 2, 4, 8, 16, ? 答案是 32 (每次乘以 2) 现在解答: 2, 6, 18, 54, ? 输出答案是 162 (每次乘以 3)—— 简洁准确。策略 CChain-of-Thought触发推理cot_taskf{question}让我们一步一步思考输出1. 观察相邻数字之间的关系 2. 计算倍数关系6÷23, 18÷63, 54÷183 3. 确定规律等比数列每个数是前一个的 3 倍 4. 计算下一个数54×3162 下一个数是 162。推理过程完整透明适合需要可解释性的场景。策略 DFew-Shot CoT 结合最强组合给出带有推理步骤的示例再让模型做新任务combined示例 1: 1, 4, 9, 16, ? 推理1^21, 2^24, 3^29, 4^216所以下一个是 5^225 答案25 现在解答 2, 6, 18, 54, ? 推理输出推理2x36, 6x318, 18x354, 54x3162 答案162同时具备 Few-Shot 的格式引导和 CoT 的推理链效果最好。对比总结准确率 可解释性 适用场景 ┌─────────────────────────────────────────────────────┐ │ 直接提问 ✅ 高 ❌ 差 简单问题 │ │ Few-Shot ✅ 高 ❌ 差 格式任务 │ │ CoT ✅ 高 ✅ 好 推理/数学/逻辑 │ │ Few-ShotCoT ✅ 最高 ✅ 最好 复杂推理任务 │ └─────────────────────────────────────────────────────┘5. 总结与参考核心要点概念一句话总结适用场景Few-Shot Prompting给示例让模型照猫画虎格式化输出、分类、翻译Zero-shot CoT加一句让我们一步一步思考数学、逻辑推理Few-shot CoT给带推理步骤的示例复杂推理、多步计算完整代码见同目录下的basic_concept.py可以直接运行。参考文档汇总LangChain 官方文档ChatOpenAI 集成 — 支持各种兼容 OpenAI API 的服务FewShotPromptTemplate 使用指南LangChain Prompt Templates阿里云百炼DashScope百炼平台入门OpenAI 兼容模式调用说明千问模型列表与定价学术论文Chain-of-Thought Prompting (Wei et al., 2022)Zero-shot CoT (Kojima et al., 2022)Few-Shot / In-Context Learning (Brown et al., 2020)最后更新: 2026-07-10