第14章 进阶技巧:Prompt 单元测试与质量评估
-
目标概述:本章探讨如何对提示词(Prompt)本身进行测试和评估。随着项目复杂度上升,Prompt 对输出的控制力至关重要,我们需要确保 Prompt 修改不会造成其他功能退化。这类似于软件的单元测试概念,但对象变为Prompt。读者将学到在 Prompt 工程中引入自动化检查的方法,提高 Prompt 的可靠性和可调试性。
-
Prompt 单元测试理念:解释什么是 Prompt 的“单元测试”。即针对一个Prompt设计若干输入情景(上下文),预期模型输出满足某些要求,通过批量调用模型验证。如果有偏差就算测试失败。这种方法可用于回归测试:当Prompt更新后,用相同测试检查输出变化。强调这是前沿实践,未必成熟,但值得尝试。
-
实例:FAQ 机器人 Prompt 测试:以知识库问答系统为例,其Prompt要求模型未找到答案时回复“不知道”。设计三个测试问题:一个知识库有答案的问题、一个没有答案的问题、一个边界模糊的问题。通过脚本自动调用模型3次,收集回复,判断是否符合预期(如第二问模型确实回答“不知道”)。展示AI生成的测试脚本代码,它可能使用OpenAI API,输入固定Prompt+问题,看输出包含关键词“不知道”。截图展示测试脚本及执行结果通过/不通过的情况。
-
工具与框架:介绍社区已有的一些 Prompt 测试工具,如 Promptfoo、Langfuse 等支持A/B测试和打分的框架。比如Langfuse可以版本化Prompt,随机路由不同版本收集用户反馈。亦可提及微软Guidance等允许对LLM输出加约束检查。鼓励读者结合项目使用这些工具,尽管本书主要以自建简单方法为主。
-
可视化过程:选取内容创作Bot或工单回复中的Prompt,演示Prompt单测。截图1:Prompt模板及预期格式说明。截图2:测试用例表(输入->预期输出片段)。截图3:运行测试工具或脚本结果,若某项失败,高亮显示预期与实际的差异。这样读者直观理解Prompt修改影响输出如何被检测到,例如我们把回复语气从礼貌改幽默,测试可能发现某些正式场景下不适合。
-
维护Prompt的最佳实践:总结在项目中维护高质量Prompt的一些建议:版本控制Prompt文件,每次修改伴随注释;建立Prompt Library,不同功能的Prompt分开存储;在上线前对关键Prompt进行人工review和模拟测试;以及A/B测试在Prompt优化中的作用(为下一章埋下引子)。
-
术语解释:解释“回归测试”“评估指标”等。尤其说明Prompt输出的评估不同于代码的确定性:需要选取合理衡量标准,比如包含特定关键词、回答正确性(可能需要人工或AI辅助判断)。引出LLM-as-a-judge概念(用AI评价AI输出)但提醒可能的偏差。本章前沿性质浓厚,但内容深入浅出,为读者日后深入Prompt工程指明方向。