提示:本网站现在为维护调试状态

Prompt Engineering 入门:Few-Shot + CoT + 结构化输出

Choyeon
Choyeon
2026年9月21日 1 分钟阅读 588 阅读
953 字 2,050 字符 更新于 2026年11月8日
Prompt Engineering 入门:Few-Shot + CoT + 结构化输出
目录

大模型能力是固定的,真正拉开差距的是 Prompt Engineering 水平。掌握三大核心技术(少样本示例、思维链、结构化输出)可以让同一个模型输出质量提升一个档次,稳定对接生产流水线。

Few-Shot:示例驱动风格对齐

直接写"把这段写得专业点"产出效果随机性大。在 Prompt 里先给 2-3 个真实的输入输出示例,模型会从示例中精确学习你的写作风格、格式要求、术语偏好。比纯自然语言指令稳定得多,且支持中英混合示例。

from openai import AsyncOpenAI
import json
from typing import Any
from pydantic import BaseModel, Field

client = AsyncOpenAI()

FEW_SHOT_PROMPT = '''你是资深后端技术写作编辑,擅长将草稿改写成精炼博客风格。
要求:事实准确,保留技术细节,简洁专业,段落开头先给核心结论。

## 示例1 输入
"FastAPI比Flask快,因为用了ASGI和Pydantic,自动生成文档"
## 示例1 输出
**核心结论:FastAPI 通过 ASGI 异步 + Pydantic 类型驱动两大设计,同等硬件下单接口吞吐量约为 Flask 的 2.5-4 倍。**
除异步网络栈外,FastAPI 的请求校验基于 Pydantic v2 的 Rust 内核(pydantic-core),单个 schema 校验耗时较 Flask + marshmallow 方案低一个数量级;另一个隐形收益是基于 OpenAPI spec 自动生成的接口文档和类型化客户端 SDK,在团队协作场景相当于免费的 API 契约工具链。

## 待改写输入
"{raw_input}"

## 你的输出'''

COT_PROMPT = '''你是算法竞赛金牌选手。请逐步推导再给出最终答案,每一步标记并解释推理依据。
问题:给定数组 nums = [3, 1, 4, 2, 5, 8, 7, 6],求最长递增子序列的长度。
思考步骤:
步骤1:
步骤2:
步骤3:
最终答案(仅数字):'''

class ProductCategorizeResult(BaseModel):
    reasoning: list[str] = Field(description="分类判断过程,每个维度一条")
    category: str = Field(description="必须属于 [Electronics, Fashion, Books, Home, Other]")
    confidence: float = Field(ge=0.0, le=1.0)
    matched_keywords: list[str] = Field(default_factory=list)

async def few_shot_transform(raw: str) -> str:
    r = await client.chat.completions.create(
        model="gpt-4o-mini", temperature=0.3,
        messages=[{"role": "user", "content": FEW_SHOT_PROMPT.format(raw_input=raw)}])
    return r.choices[0].message.content or ""

async def categorize_structured(title: str, desc: str) -> dict[str, Any]:
    r = await client.chat.completions.create(
        model="gpt-4o-mini-2024-07-18", temperature=0.0,
        messages=[{"role": "user", "content": f"商品标题 {title}\n描述 {desc}"}],
        response_format={"type": "json_object"})
    data = json.loads(r.choices[0].message.content or "{}")
    return ProductCategorizeResult(**data).model_dump()

CoT 思维链 & 结构化输出

需要复杂推理(逻辑/数学/代码调试)时,显式要求模型分步骤推理,最后才给结论,准确率平均提升 15-30%。要喂给下游系统的结果,用 Pydantic + response_format 强制 JSON 模式,失败重试兜底,避免自由文本解析。

技术 解决问题 最佳温度 典型应用场景
Zero-Shot 纯指令 任务简单标准 0.1-0.3 翻译、摘要、格式转换
Few-Shot 示例注入 风格/格式特殊要求 0.2-0.5 文案改写、标签标注、代码风格统一
CoT 思维链分步 多步推理/数学/逻辑 0.0-0.3 算法题、代码调试、根因分析
JSON Schema 结构化 对接程序接口 0.0 固定 打标入库、字段抽取、函数调用

最佳实践

写 Prompt 先给角色(System Prompt),再给上下文+任务,再给约束(字数/格式/语气/禁忌)。迭代:用 20 条样本测真实准确率,失败案例回灌为 few-shot 示例,每次改进都有量化依据。

X微博Telegram

本文作者

投票

你最希望 Rosetta 优先加入哪项功能?

社区投票(演示数据,可后台删除)

评论 (3)

0 / 3000
前端艺术家
前端艺术家fe-gallery.dev2026年9月11日

代码示例里那个 SQL 查询是不是应该加个 LIMIT?不然数据量大的时候全表扫描会很慢哦。

机器学习萌新
机器学习萌新2026年9月11日

建议加一下关于幂等性的讨论,现在的分布式系统里这个真的太重要了,很多坑都是没处理好幂等导致的。

运维老司机
运维老司机ops-notes.cn2026年9月10日

太及时了,正好项目里要上 Redis 集群,照着来一遍省了好多事,谢谢!

相关文章

GraphQL vs REST:从 7 个维度深度对比

GraphQL vs REST:从 7 个维度深度对比

终结选型焦虑:从网络传输效率、前端开发体验、后端演进成本、缓存策略、类型安全、安全风险、生态工具链 7 大维度系统对比 GraphQL 与 REST,给出清晰决策树与混合架构模式。

1 分钟阅读
RAG 检索增强生成实战:Embedding + Vector DB + ReRank

RAG 检索增强生成实战:Embedding + Vector DB + ReRank

从零搭建生产级 RAG 系统:文档分块策略(Chunk Size/重叠窗口)、Embedding 模型选型与向量化、向量数据库(PGVector/Milvus)检索过滤、Reranker 重排精修 Top-K,加上引用溯源和 Prompt 压缩优化,附完整可运行代码。

1 分钟阅读
JWT 认证安全最佳实践 + OAuth2 vs SAML

JWT 认证安全最佳实践 + OAuth2 vs SAML

系统性归纳 JWT 常见安全漏洞防护:算法混淆攻击(none/RS256→HS256)、密钥爆破、KID注入、重放攻击防御,再从多个维度对比 OAuth2(授权码+PKCE)、OIDC、SAML 2.0 三种主流认证协议选型。

1 分钟阅读
CQRS + Event Sourcing 架构模式解析

CQRS + Event Sourcing 架构模式解析

透彻解析两种高复杂度分布式架构模式:CQRS 读写模型分离实现查询极致性能、Event Sourcing 以事件作为唯一真相源实现全量审计与时间回溯,讨论一致性/快照/幂等难点与反模式。

1 分钟阅读
测试金字塔:单元/集成/E2E 测试比例与落地

测试金字塔:单元/集成/E2E 测试比例与落地

系统解析测试金字塔架构:从底层单元测试(大量快速、Mock 隔离依赖)、中层集成测试(服务/数据库/消息协作真实交互)、顶层 E2E 测试(真实用户路径少量精测)的推荐比例 70% / 20% / 10%,附项目覆盖率指标与落地实践。

1 分钟阅读
Git 高级工作流

Git 高级工作流

全面掌握 Git 进阶操作:Interactive Rebase 整理提交历史、Cherry-pick 精挑细选移植提交、Bisect 二分查找回归 Bug 源头,配合 reflog 与 reset 拯救误操作。

1 分钟阅读