如何在实际项目中对 LLM 提示词和测试数据进行版本控制
在出现第一个无法复现的生产环境 Bug 之前,提示词(Prompt)的变更看起来总是很轻量。我见过一些团队在管理后台直接修改提示词,优化了一个演示案例,却悄无声息地搞砸了五个正常案例。模型没变,代码没变,但没人能说清楚到底是哪个版本的提示词回复了客户。 现在,我将提示词视为带有发布历史的配置项来管理。每个生产环境的提示词都有版本号、负责人、简短的变更说明以及测试所用的模型名称。测试集与提示词放在一起。它不需要很大,但必须包含真实且杂乱的示例:简短的输入、模糊的请求、愤怒的用户、缺失的上下文,以及助手应该拒绝回答或要求提供更多信息的情况。 人们最容易忽略的部分是"预期行为"。对于每一行测试数据,我写下的是"必须满足的条件",而不是"完美的标准答案"。例如,答案必须引用一个来源、避免价格声明、保持 JSON 字段有效,或者将工单路由到计费部门。对于大多数 LLM 工作来说,精确的文本比对太脆…