Promptfoo CSV 回归评测:用本地结果文件先跑通检查链路
可本地操作的评测包,以及替换真实保存结果的明确边界。
适用场景用 __expected 精确断言与本地 JavaScript provider 比较保存结果,故意放一条错误验证报告;无需大模型评审,附完整练习包。
用 __expected 精确断言与本地 JavaScript provider 比较保存结果,故意放一条错误验证报告;无需大模型评审,附完整练习包。
来源 · JevLog 编辑部 · 本站原创

原文封面 · Promptfoo
2026-10-02 新增:依据当前官方文档整理,附本站编写练习。未做真实服务调用;来源首次发布日期未确认。
背景 / 问题
Section titled “背景 / 问题”改分类规则后要能发现旧样例变坏。评测 provider 如果直接返回预期答案会假通过,所以预期 CSV 与预测 JSON 必须独立保存。此包只核对虚构结果,没有接入 Jev。
-
安装 Node.js 与 Promptfoo,下载 promptfoo-local-regression.zip 解压到新目录。
-
示例使用 equals 断言,不调用 LLM 评审。首次安装需联网,provider 运行只读文件。
JevLog 原创流程图,非产品截图或实测结果。
1. 先冻结人工预期
Section titled “1. 先冻结人工预期”cases.csv 有 case_id、text、__expected。__expected 使用 equals: 指定精确标签。三条里 c03 的预测故意错误,用来验证报告会报错。不要修改预期来迁就预测。
case_id,text,__expectedc01,Download crashes,equals:bugc02,Please explain a setting,equals:questionc03,Thanks for your help,equals:other2. provider 只读独立预测
Section titled “2. provider 只读独立预测”只按 case_id 读取 results.json,不读取 __expected;缺 ID 返回 error,不能空字符串假装分类完成。文件名 provider.cjs 保持 CommonJS 格式。
const fs = require('node:fs');const path = require('node:path');module.exports = class SavedResults { id() { return 'saved-results-fixture'; } async callApi(prompt, context) { const results = JSON.parse(fs.readFileSync(path.join(__dirname, 'results.json'), 'utf8')); const id = context?.vars?.case_id; if (!Object.prototype.hasOwnProperty.call(results, id)) return {error: 'Missing result: ' + id}; return {output: results[id], metadata: {mode: 'fictional-local-fixture'}}; }};3. 配置并生成报告
Section titled “3. 配置并生成报告”配置与 provider.cjs、cases.csv 同目录,运行 npx promptfoo eval -c promptfooconfig.yaml,再 npx promptfoo view。下载包已有完整文件,本站没有运行模型评测。
description: Local saved-output regression fixtureprompts: - '{{text}}'providers: - file://provider.cjstests: file://cases.csv4. 先看到故意失败
Section titled “4. 先看到故意失败”results.json 把 c03 写成 question,应与 other 不一致。三条全过就检查读的 CSV、配置和 provider。两对一错只是虚构样例设计,不是 Jev 准确率。
5. 换成真实独立保存的结果
Section titled “5. 换成真实独立保存的结果”自己标注输入并脱敏,再通过真实调用另生成预测文件。保存模型版本、问题版本、输入哈希和错误;缺结果计失败。confidence 与复核量另算,不让文本评审掩盖基础标签错误。
练习样例:下载 promptfoo-local-regression.zip,可在本地练习;非本站实测结果。
可本地操作的评测包,以及替换真实保存结果的明确边界。
- 旧预测、缓存和不同版本会影响比较,要记录本次文件版本。
- c03 的故意失败被报告,缺 ID 是错误。
- 预期和预测独立,报告不伪装成模型跑分。
来源边界:依据所列公开来源整理;本站未复现演示。分类结果需人工复核,不会自动执行。
练习包已经接入 Jev 了吗?
Section titled “练习包已经接入 Jev 了吗?”没有。它只核对虚构保存结果;真实集成需要另生成预测,保留调用错误和版本。