promptfoo:让语言模型评测不再“靠感觉”——一站式 LLM 自动化测评神器深度解读
大家好,这里是你们喜闻乐见、永远不低调的 AI 技术博主。这篇分享,我要隆重介绍一个我愿称之为“LLM 测试自动化福音”的神器——promptfoo。
如果你做 LLM(大模型)落地开发,调教 prompt 拼死拼活,一上线用户各种“灵魂拷问”:
“这答案不对啊,能不能过一下 case?”
“有没有安全问题啊,会不会 prompt injection 哦?”
“多模型能不能横向对比下,谁更会说话?”
此刻只想摇人帮忙,或者干脆自己拿小本本边试 prompt 边记笔记?(心累……)
别怕!promptfoo 的出现,就是让你的 LLM 应用研发彻底摆脱“全靠感觉”,正式步入“标准化测试时代”!
目录
-
promptfoo 是什么鬼?
-
关键能力列表盘点
-
架构与工作原理全景
-
Provider 全家桶
-
Red Team 黑客攻防测试
-
一站式集成与人性化交互界面
-
配置到底要怎么写?
-
核心评测系统全流程揭秘
-
评测强力武器:断言体系(assertions)
-
高阶玩法与扩展性
-
总结 & 我的实践建议
1. promptfoo 是什么鬼?
用一句话总结:
promptfoo 是 LLM 圈里的“持续集成 + 自动化测试 + 红队攻防一体机”。你写 prompt、做 RAG、造 agent、调模型,把测试交给它就对了!
它开源、免费、极其灵活,支持横评各种模型和 prompt,把 LLM 跑得像单元测试那样有章法。
你可以验证内容 quality、发现安全隐患、随时集成至 CI/CD,还有网页/命令行双界面。再也不用人肉 copy、粘贴、截图、用 Excel 记结果,非常适合实际工作流的接入!
一句话,promptfoo 让 LLM 工程师睡得更香,用户也信得更过。
2. 关键能力盘点
没点干货,你会看?直接把 promptfoo 的“赛博超能力”甩过来:
-
支持多模型跨平台评测(OpenAI/Gemini/Claude/Ollama/Bedrock/自定义等)
-
断言体系丰富,支持从字符串精确匹配到大模型自评
-
支持自定义用例和变量(变量组合自动生成 n 组 case)
-
安全攻击红队:prompt injection、越狱、隐私泄露等全流程自动攻防检测
-
命令行 CLI/网页界面都有,体验很丝滑
-
CI/CD 集成自动回归,一上线先检测,省矿机!
-
输出格式多样(CSV/JSON/YAML/HTML/Google Sheet)便于团队报告统计
-
极致扩展性:外挂 Provider、断言、处理逻辑,任你自定义
-
并发执行、高速评测,效率炫酷飞起
-
报错调试细致,全生命周期监控
一句话:你要的它都有,不要的它也能给你加!
3. 系统整体架构脑图
主要核心模块概览:
-
核心评测系统(大脑):调度整个 prompt-模型-断言流转
-
Provider 系统(模型接入总线):对接各种 LLM/自定义 API
-
断言系统 Assertion(灵魂判官):灵活选择验证方式,满足从业务到学术的所有需求
-
红队系统 Red Team(AI 攻防兵团):自动造难题,各种越狱爆破全覆盖
-
CLI & Web UI(命令行/UI 党都满意):配置测什么、随时查结果
-
分享系统:评测一键上传分享,全流程透明
-
存储与配置:YAML 配置,结果持久化,支持多种数据库
从上游 prompt 到底层 provider,再回到断言与报告,全自动无死角!
4. Provider 全家桶
什么是 Provider?
Provider 就是 promptfoo 里与外部“各种模型”的所有 API 对接桥梁。
支持的平台类型有这些:
-
商业巨头:OpenAI(所有 GPT)、Anthropic(Claude 家族)、Google(Gemini)、AWS Bedrock、Azure OpenAI、Vertex AI
-
本地模型:Ollama、LocalAI
-
自定义 API:HTTP/WS | Python | 文件
-
测试用:Echo(输入即输出)
你要啥有啥,理论链条拉满!
接口规范?
只要你实现 ApiProvider
接口(暴露 id()
、callApi()
),就可以直接 plug-in 进来。
这样不管第三方模型怎么玩花活,都能无感升级/对比/评测。
5. Red Team 红队攻防系统
炼丹不测安全=白练!AI 黑客站出来!
promptfoo 比你还懂安全:
- 集成全自动红队模块,流程如下:
-
自动构造逆天 prompt,尝试 jailbreak、prompt injection、PII 泄露、内容绕过等
-
编码混淆(像 base64、rot13、leetspeak、多语种攻击……)
-
甚至还支持自扩展插件体系,比如有 harmful plugin(恶意内容),pii plugin,injection plugin(注入 payload)。
-
效果?
自动帮你把 LLM 当作入侵靶机揍一顿,看看平时你写的安全检查是不是“只在心里有”~
6. 一站式集成体验 & 界面
不用选边站——
命令行党:pf eval
、pf redteam
、pf share
,所有动作一条命令解决,CI/CD 友好。
UI 党:网页端能编辑配置,能实时查看结果,有曲线有表格,支持红队流程配置直观。
所有的测试和结果,都进共享体系,一键生成分享链接,甚至团建用作“模型对决赛”都给劲!
7. 配置怎么写?YAML 万金油!
promptfoo 用 YAML(或 JSON)组织评测配置,极简又直观。
最简单例子:
prompts:- "Write a tweet about {{topic}}"providers:- openai:chat:gpt-4o-mini- anthropic:messages:claude-3-5-sonnet-20241022tests:- vars:topic: bananasassert:- type: containsvalue: "banana"- vars:topic: pineapplesassert:- type: llm-rubricvalue: "mentions health benefits"defaultTest:assert:- type: javascriptvalue: "output.length <= 280"
解释下含义:
-
prompts:待测 prompt 样板(支持插入变量)
-
providers:被测 LLM 列表
-
tests:变量值和断言列表
-
defaultTest:全局断言/规则
变量组合方式简单高效,自动展开成完整 nnn 的测试套件。
YAML 配置有严格 JSON Schema 校验,写错直接报错提示。
8. 核心评测系统工作流解剖
一张脑图(口述版):
-
加载配置(YAML)
-
展开 prompt & 变量及 provider 笛卡尔积
- 对每一组 prompt+provider+test case:
-
渲染实际输入(变量替换,支持 array 展开)
-
调用 Provider API,拿到响应
-
断言系统做检验(多断言/断言套装,分权重计分)
-
汇总结果(包括响应内容、断言分数、指标、消耗 token/费用/延迟,报错理由等)
-
写入最终报告(支持多格式)
-
高并发并行跑,更支持进度实时展示。
有错不断,自动收集并归因,生成详细报表,回溯问题定位超清晰!
9. 评测强力武器:断言体系大揭秘
LLM 输出和传统“算对错”远不是一回事。promptfoo 的断言体系/思路,全面拉高了自动化评测天花板!
9.1 断言种类
1)确定性断言(Deterministic)
-
equals:字符串完全相等
-
contains / icontains:是否包含,支持大小写无感
-
regex/正则:正则匹配
-
starts-with:是否以指定内容开头
-
is-json / contains-json / is-xml 等:格式校验
-
is-sql:SQL 校验
-
javascript / python:自定义 JS/Python 断言函数
-
cost / latency:检测回复延迟和 API 调用费用
2)模型辅助断言(Model-Assisted)
-
similar:语义 embedding 相似度(好用!)
-
llm-rubric:让 LLM 对输出再自评分(元评估的力量你懂的)
-
factuality:事实正确性验证(借助外部知识库,这类自定义空间大)
-
classifier / context-faithfulness / answer-relevance:上下文一致性、相关性、分类型判等
3)NLP 标准指标断言
-
bleu/gleu/rouge-n:NLP 蓝图分数家族
-
levenshtein:编辑距离
-
perplexity:困惑度
4)特殊玩法
-
not-*(反向断言)
-
assert-set(断言组,满足一定比例通过)
-
select-best(多答案择优,主观评测融合)
-
redteam 专用型(安全断言)
9.2 断言结构
每个断言其实就是一个结构体,可以指定 type、value、权重、针对哪个 provider/rubric prompt、转换方法、metric 名字,等等。
- type: similarvalue: "professional tone"threshold: 0.7metric: "professionalism"
9.3 断言加权和组合玩法
-
断言赋权重:某些断言权重高(业务关键),分数算加权平均
-
断言组(assert-set):设置一组断言门槛,比如组内 50% 及格
-
分层阈值:可以指定 0-1 分数线决定通过/失败
-
metric 聚合:断言可加 metric 标签,为业务打指标体系
-
自定义分数函数:支持自定义 scoring function 管更复杂场景
9.4 动态断言 & transform
“输出再来点变换”,比如全转小写再断 contains,或者加一段 JS 逻辑先预处理,都不是问题!
10. 高阶玩法 & 扩展性
-
插件式扩展任何东西:Provider、断言类型、结果处理、Transform,全部支持二次开发
-
代码断言:直接用 JS/Python 自定义,外部库可调用
-
LLM 断言套娃:可自定义 LLM Rubric Prompt,甚至选择哪个 LLM 做评委
-
外部引用:断言/Scoring Function/Prompt 模板路径直接写文件地址引入
-
安全断言阵营:promptfoo:redteam:xxx 断言专为攻防轮定制
-
分享/统计平台对接:一键 CRYPTO 分享结果给团队/老板/甲方
11. 总结 & 实践建议
promptfoo 如何让工作流脱胎换骨:
-
“拍脑袋评测”升级为“工程化流程”——保证每次评测可复现,回归无忧!
-
多 Provider 横向对比一键搞定,横扫各种“哪个更好用”的争论
-
问题定位细致,助力快速迭代 Prompt 和 Regression
-
红队安全评测:上线不用心慌,AI 黑客测试比黑产先快一步
-
支持 CI/CD 流,团队自动测试后再上线,工程稳定性 up
-
可扩展性高,随场景生长,满足未来所有新玩法
推荐使用场景
-
Prompt/模型横评 Benchmark
-
RAG 系统、问答助手、Agent 应用上线前测试
-
Prompt injection/安全性评估(自动红队)
-
多场景、多模型、多语言的综合回归
-
工业级 LLM App 工程师日常跟踪
最后,送你一句话:
有 promptfoo,自动化评测不用愁!
和“靠第六感+手抄”说拜拜,拥抱工程化的 LLM 未来吧!
——
写在后面
如果你觉得本文让你怒涨了 LLM DevOps 技能值,欢迎点赞收藏转发+关注!后面会带你玩转每类断言和高级插件开发实战,别走开哦!
源码推荐:
https://github.com/promptfoo/promptfoo
相关文章:
promptfoo:让语言模型评测不再“靠感觉”——一站式 LLM 自动化测评神器深度解读
大家好,这里是你们喜闻乐见、永远不低调的 AI 技术博主。这篇分享,我要隆重介绍一个我愿称之为“LLM 测试自动化福音”的神器——promptfoo。 如果你做 LLM(大模型)落地开发,调教 prompt 拼死拼活,一上线用…...

LINUX安装运行jeelowcode后端项目(idea启动)
参考 LINUX安装运行jeelowcode后端项目(命令行)-CSDN博客 IntelliJ IDEA下载地址(社区版、付费版)-CSDN博客 软件已安装好,数据库也初始化完毕。 步骤1:打开项目目录步骤2:配置JDK步骤3&…...

硬件I2C和软件I2C的区别
硬件I2C和软件I2C的区别 一、硬件I2C 1、硬件IC的局限性及学习意义 尽管硬件IC外设在STM32等微控制器中提供了标准化的通信支持,但在实际应用中,其稳定性可能存在问题。例如,某些情况下外设会因事件检测异常而进入死锁状态,仅能…...
单元测试报错
报错信息如下所示: 五月 30, 2025 5:35:44 下午 org.junit.vintage.engine.descriptor.RunnerTestDescriptor warnAboutUnfilterableRunner 警告: Runner org.junit.internal.runners.ErrorReportingRunner (used on class redis.demo.RedisTemplateTest) does not…...

AWS WAF设置IP白名单
目标 设置一个组白名单IP地址,当发现是这些IP地址发过来的请求后,WAF自动放行。 创建IP集 打开WAF页面,开始IP集创建如下图: 设置ip集,如下图: aws waf acl配置白名单 找到Web ACL,开始在…...

智能门禁的项目
项目需求 矩阵键盘输入密码,正确开锁,错误提示,三次错误后蜂鸣器响三秒;按下#号确认输入,按下*号修改密码;密码保存在W25Q128里;OLED屏幕显示信息。 硬件清单 矩阵键盘OLED显示屏继电器蜂鸣器…...

《Google I/O 2025:AI浪潮下的科技革新风暴》
Google I/O 2025 盛大开幕 在科技飞速发展的时代,Google I/O 开发者大会一直是全球科技爱好者和开发者瞩目的焦点,堪称科技领域的年度盛宴。2025 年 5 月 20 日至 21 日,Google I/O 2025 在美国加州山景城的 Shoreline Amphitheatre 盛大举行…...

职坐标IT培训:硬件嵌入式与AI芯片开发实战
课程体系以硬件嵌入式开发与AI芯片技术融合为核心,构建模块化知识框架。从硬件设计规范切入,系统讲解PCB Layout设计中的信号完整性控制、电磁兼容性(EMC)优化等关键要素,延伸至高速电路设计中阻抗匹配与电源完整性&am…...

一句话开发Chrome摸鱼插件
本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴。 CodeBuddy 一、CodeBuddy新功能特色 Craft智能体:自然语言驱动的全栈开发引擎Craft开发智能体的核心突破在于实现需求理解-任务拆解-代码生成的…...

Spring Boot + OpenCSV 数据清洗实战:CSV 结构化处理与可视化
目录 摘要 演示 一、背景:为什么需要自动化数据清洗? 二、技术选型:为什么选择这三个工具? 三、核心功能实现:从数据读取到智能清洗 1. 配置控制器 2. 文件上传控制器 3. CSV数据处理服务接口 4. CSV数据处理…...

Cmake编译glog成功并在QT中测试成功步骤
glog是开源的日志记录系统,下载地址GitHub - google/glog: C implementation of the Google logging module 跟gflags有点相似,编译和测试过程比较周折,所以记录下来具体的编译和测试步骤。 编译环境:WindowsCmakeVs2022Qt5.14.…...
AI绘画提示词:从零开始掌握Prompt Engineering的艺术
文章目录 什么是AI绘画提示词?提示词的基本结构主体描述场景/背景风格指定技术参数负面提示人物肖像模板风景模板 高级技巧权重调整混合风格颜色控制情绪氛围 常见问题与解决方法手部变形问题构图不理想风格不够突出 提示词示例库科幻场景奇幻人物静物画 结语 在当今…...

xhr、fetch和axios
XMLHttpRequest (XHR) XMLHttpRequest 是最早用于在浏览器中进行异步网络请求的 API。它允许网页在不刷新整个页面的情况下与服务器交换数据。 // 创建 XHR 对象 const xhr new XMLHttpRequest();// 初始化请求 xhr.open(GET, https://api.example.com/data, true);// 设置请…...
lcd-framebuffer驱动开发参考文章
MMAP mmap的时候总是失败,查了很多资料,显存大小是驱动层fb_info->fix.smem_len设置,要遵循内核页大小的整数倍,应用层调用mmap也要遵循对齐。 MMAP使用(一、基本接口)_mmap接口-CSDN博客 基于fbtft和…...

2025吉林ccpc【部分题解】
文章目录 C - SSPPSPSPProblemD.互互互质质质ProblemF. Ever ForeverProblemG.石石石头头头剪剪剪刀刀刀布布布Problem J.奇偶游戏Problem L.好矩阵 C - SSPPSPSP 题目来源:C - SSPPSPSP !](https://i-blog.csdnimg.cn/direct/26fc1492b1724446be61cf39b718cf9b.…...

PowerDesigner通过SQL反向生成类图
PowerDesigner通过SQL反向生成类图 背景操作步骤步骤1: 选择这个步骤2: 目前我是选择的这个步骤3: 选择这个 其他 背景 工作学习 操作步骤 步骤1: 选择这个 步骤2: 目前我是选择的这个 步骤3: 选择这个 其他 其他同事告诉我的, 我还没有亲自尝试, 应该问题不大. 尝试后再反…...
【appium】环境安装部署问题记录
1.安装uiautomator2 appium driver install uiautomator2(超时报错,多执行几遍) 出现code1,安装失败 执行APPIUM_SKIP_CHROMEDRIVER_INSTALL1 appium driver install uiautomator2 安装失败code196 清理缓存npm cache clean --for…...

【bug排查记录】由Redission配置引发的Satoken血案
背景 在今天服务更改服务配置的redis的database后,本地测试通过,发布到线上。出现所有用户登录状态失效,并且重新登录后也是失效的问题,由于鉴权登录框架使用的是satoken,线上database配置的是1,然后去red…...
深入理解 MySQL 隔离级别:理论与实战
深入理解 MySQL 隔离级别:理论与实战 在数据库管理系统中,事务的隔离级别是确保数据一致性和完整性的关键因素。MySQL 作为广泛使用的关系型数据库,提供了四种不同的事务隔离级别: 读未提交(Read Uncommitted)读已提交(Read Committed)可重复读(Repeatable Read)串行…...

MAC程序签名遇到的问题
整体步骤 需要一个apple开发者账号,个人账户注册需要按年付费 申请证书 申请证书链接 command 空格打开聚焦搜索 输入钥匙串访问打开 默认情况下是没有要的证书的 点击左上角的证书助理,选择请求证书 根据输入创建请求文件并保存到本地 点开申请…...

华为OD机试真题——宜居星球改造计划(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《宜居…...
C#实现图片缩略图生成:多种模式详解与实践
C#实现图片缩略图生成:多种模式详解与实践 在图像处理的场景中,生成图片缩略图是一项常见且实用的功能。无论是搭建图片展示网站,还是开发本地图片管理工具,按需生成合适尺寸的缩略图,能够有效减少图片传输和显示所需…...

Linux下基本指令的介绍
目录 1.目标 2.快速认识指令 1.pwd 2.clear 3.ls 4.mkdir 5.cd 6.touch 3.细化每一条指令 1.ls指令 2.pwd指令 注: 3.cd指令 4.touch和mkdir指令 6.删除文件 4.总结 1.目标 上一篇博客中,我们了解了Linux的起源和发展,也知道…...

零基础开始的网工之路第十四天------Linux程序管理
目录 一、Linux程序与进程 1、程序,进程,线程的概念 2、程序和进程的区别 3、进程和线程的区别 二、Linux进程基础(生命周期) 1、进程生命周期 2、父子进程的关系 三、程序管理 1、常见的软件包类型 四、Linux操作系统启动流程详解 1、概述 2、启动流程核心阶段 1…...

SIGGRAPH 2025 | 快手可灵团队提出3D感知的电影级文本到视频生成框架CineMaster
Sora、可灵等视频生成模型令人惊艳的性能表现使得创作者仅依靠文本输入就能够创作出高质量的视频内容。然而,我们常见的电影片段通常是由导演在一个场景中精心布置多个目标的运动、摄像机拍摄角度后再剪辑而成的。例如,在拍摄赛车追逐的场景时࿰…...

历年西安电子科技大学计算机保研上机真题
2025西安电子科技大学计算机保研上机真题 2024西安电子科技大学计算机保研上机真题 2023西安电子科技大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school 查找不同的连续数字串个数 题目描述 给定一个数字串,查找其中不同的连续数字串的个…...

利用openwrt路由器和随身WIFI搭建CPE
背景: 最近5GCPE挺火,各种硬件层出不穷,包括DY上很多商家在推的AX3000叠加展锐RM500 5G模块,自己组装CPE,成本也在300 看了下开源硬件,其实就是一个开源的openwrt系统,硬件上5G模块通过usb协议…...

科学智能赋能空间科学研究(2):AI4S 范式下空间科学实验的核心挑战
中国科学院空间应用工程与技术中心在空间科学实验领域的研究覆盖了多模态空间科学实验数据模式挖掘、领域知识抽取、跨学科知识融合与认知智能等研究内容,有效促进了空间科学实验领域的数据应用生态的体系化建设,相关研究成果已正式发表于权威学术期刊《…...
计算机网络学习(九)——CDN
一、CDN CDN(Content Delivery Network,内容分发网络)是一种通过分布式节点将内容更高效地传递给用户的技术架构,广泛应用于加速网站、视频、下载、直播等业务。 CDN 是把内容放到离用户最近的“高速公路入口”,提升访…...

Axure设计案例——科技感渐变线性图
想让数据变化趋势展示告别枯燥乏味,成为吸引观众目光的亮点吗?快来看看这个Axure设计的科技感渐变线性图案例!科技感设计风格凭借炫酷的渐变色彩打破传统线性图的单调,营造出一种令人过目难忘的视觉体验。每一条线条都仿佛是流动的…...