返回笔记列表
Prompt 工程

从 Zero-shot 到 Few-shot:我在处理非结构化采购数据时的 Prompt 进化史

5 min read

`从 Zero-shot 到 Few-shot:我在处理"地狱级"采购数据时的 Prompt 进化史` 这篇文章记录了我在开发政府采购合规审计助手过程中,如何通过迭代 Prompt 方法,将模型准确率从70%提升到95%+的实战经验。


在搞那个政府采购合规审计助手的时候,我遇到的第一个下马威不是代码,而是那堆乱七八糟的采购公告。

几百页的 PDF,有的写着"供应商要求",有的写着"准入条件",格式五花八门。我当时想:既然模型都 GPT-4 级别了,直接丢给它不就行了?结果,这一路走来,我的 Prompt 经历了一场从"盲目自信"到"精雕细琢"的进化。


Zero-shot 阶段:我以为它是"神",其实它是"复读机"

刚开始,我的 Prompt 极其简单粗暴:"请提取以下采购公告中的供应商资质要求,并以 JSON 格式输出。"

结果呢?

  • 幻觉满天飞:模型找不到信息时,会根据常识编造一些"注册资本不低于 XXX 万"。
  • 格式不稳定:这一秒是 JSON,下一秒就带上了各种空行和废话,导致后端程序直接报错。
  • 业务理解偏差:它分不清什么是"强制性要求",什么是"加分项"。

💡 PM 总结:Zero-shot 适合写诗写段子,但在严肃的 B 端业务逻辑面前,这种"盲盒式"的交互太危险了。


约束加固阶段:给 AI 带上"紧箍咒"

为了解决格式问题,我开始在 Prompt 里疯狂叠 buff:

  • "必须输出 JSON。"
  • "如果找不到对应字段,请填充 null,严禁编造。"
  • "禁止输出任何解释性文字。"

虽然格式稳定了,但提取的精准度还是上不去。模型就像一个刚入职、听不懂潜台词的实习生,你给它指令,它执行得战战兢兢,却抓不住业务的重点。


Few-shot 阶段:给 AI 一张"参考卷"

真正的突破发生在我引入 Few-shot(少样本提示)之后。

我不再只给指令,而是直接在 Prompt 里喂给它 3 组真实的"地狱级"采购公告片段,并附上我人工标注的最优输出。

Input: (一段极其混乱的文字)
Output: (我想要的标准 JSON 结构)

这招简直是降维打击。通过 2-3 个例子,模型瞬间"悟"到了:

  • 哪些生僻词对应哪个字段;
  • 遇到嵌套逻辑(如:A 情况选 B,C 情况选 D)时该如何归纳。

💡 我的实战感受:Few-shot 本质上是在定义标准。作为 PM,我发现自己不是在写提示词,而是在进行"业务建模"。我给出的例子越典型,AI 的输出就越像一个有 5 年经验的老采购。


终极奥义:思维链(CoT)与业务逻辑的融合

最后,我把 Few-shot 和 Chain of Thought 结合了。我要求模型在输出最终 JSON 前,先在内部做一遍"推理拆解":

  • 先识别公告类型;
  • 提取所有的资质关键词;
  • 根据合规库进行对标。

这样一搞,审计的准确率直接从 70% 飙升到了 95% 以上。


写在最后:AI PM 的核心竞争力是什么?

这段"Prompt 进化史"让我意识到:AI 时代的 PM,本质上是"高质量需求"的定义者。

很多人觉得 Prompt Engineering 只是说话的艺术,但我认为它更像是把模糊的业务语言,翻译成精准的逻辑蓝图。无论是 Zero-shot 还是 Few-shot,背后折射出的都是你对业务边界的理解。

📝 要点总结

  • Zero-shot:简单直接,但风险高,适合非严肃场景
  • 约束加固:稳定格式,但精准度有限
  • Few-shot:通过示例定义标准,大幅提升模型理解
  • CoT + Few-shot:结合思维链推理,实现业务级准确率
  • AI PM 的核心价值:把模糊的业务语言,翻译成精准的逻辑蓝图

如果一个 PM 说不清楚业务逻辑,那无论模型多强,吐出来的都只会是垃圾。