核心概念 中级

提示词版本管理与测试

把提示词当代码管理:集中存放、版本化、A/B 对比与回归测试。

提示词是最容易"改坏"的地方

LLM 应用 80% 的效果波动来自提示词改动。一个字的差异可能让解析失败率翻倍 —— 所以提示词需要像代码一样被管理。

集中管理

  • 提示词统一放 prompts/ 目录,独立成 YAML/文本文件,代码里只引用不硬编码;
  • 文件名带版本号(rag-answer.v3.yaml),或直接用 Git 管理变更;
  • 变量名稳定,模板内容可热更。

回归测试

维护一个"评测集"(问题 + 期望要点),每次改提示词后批量跑一遍:

test_cases = [
    {"q": "退货流程?", "must_contain": ["7天", "申请"]},
    {"q": "发票怎么开?", "must_contain": ["电子发票"]},
]
for case in test_cases:
    answer = rag_chain.invoke(case["q"])
    assert all(kw in answer for kw in case["must_contain"]), case["q"]

A/B 对比

  • 新旧提示词各跑同一评测集,对比通过率、平均长度、延迟;
  • LangSmith 的 evaluate 可以把两版结果放在同一视图对比;
  • 保留每版的评测记录,效果回退时可快速定位是哪次改动引入。
原则:没有跑过评测集的提示词改动,不要上线。

📝 课后练习

quiz-1 提示词修改后、上线前应该做什么?