Prompt 回归测试器
一次只改变一个变量。先固定模型比较 Prompt,再固定 Prompt 比较模型,避免把差异归因错位。
授权边界
- 检查测试集、Prompt 文件和生成调用计划无需确认。
- 运行测试会发送用例并产生多次 API 调用。先展示端点、模型、版本数、用例数和总调用上限,确认后加入
--confirm-live-run。 - QixuAI 使用 浏览器设备授权,其他端点只从环境变量读取密钥;不得要求用户在聊天中发送密钥。测试集不得包含未经批准的生产隐私数据。
工作流
- 把现有 Prompt 作为
baseline,每个候选只改变一个可解释因素。 - 建立代表性用例,覆盖正常、边界、拒答、格式和已知故障。文件格式见 references/suite-format.md。
- 先检查调用规模:
版本数 × 用例数,默认上限为 10 × 200。 - 用户确认后运行:
powershell
python scripts/prompt_regression.py --variants variants.json --cases cases.json --output report.json --base-url https://example.com/v1 --model exact-model-id --api-key-env LLM_API_KEY --baseline baseline --confirm-live-run
- 先看失败用例和结构错误,再比较通过率、延迟和 Token。资源下降只有在质量门槛仍通过时才是改进。
- 对随机或开放任务增加多次运行与更强 grader;内置确定性断言不适合评估所有语义质量。
- 输出是否可发布、回归用例、改善用例、成本/延迟变化和未覆盖风险。
算点边界首次使用先读 浏览器设备授权,端点预设见 references/qixuai-preset.md。
约束
- 固定模型、temperature=0 和测试集;供应商仍可能存在非确定性。
- 不因为平均分提高而忽略关键安全用例失败。关键用例应单独设为发布门槛。
- 不无限重跑、不隐藏错误调用、不把无 usage 字段推算为准确 Token。
- 正则断言由用户提供;避免灾难性回溯模式和敏感数据回显。
输出格式
实验: 模型、版本、用例、总调用数
基线: 通过率、延迟、Token
候选: 与基线的差异
回归: 失败用例 ID、断言和输出摘要
结论: 通过/不通过、发布门槛、未覆盖风险