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

Prompt Engineering 入門:Few-Shot + CoT + 結構化輸出

Choyeon
Choyeon
2026年9月21日 1 分鐘閱讀 584 閱讀
953 字 2,050 字元 更新於 2026年11月8日
Prompt Engineering 入門:Few-Shot + CoT + 結構化輸出
目錄

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 分鐘閱讀