Promptfoo:AI提示词测试与安全演练神器(以智普GLM为例)

Promptfoo:AI提示词测试与安全演练神器(以智普GLM为例)

1.认识Promptfoo

这是一款专门为LLM应用设计的测试和红队演练框架,目的是帮助开发者自动化评估提示词以及模型的表现。使用 promptfoo,可以批量测试成百上千个测试用例,快速发现模型在安全性、隐私政策、指令遵循方面存在的问题。

2.Promptfoo的核心功能

  1. 多模型对比:支持OpenAI、Anthropic、Google、百度千帆等主流模型,也支持自定义API或者本地Python脚本,便于横向对比不同模型对相同提示词的响应;
  2. 自动化测试与断言:可以定义大量测试用例,通过 assert 规则(包含特定词语、符合某种格式、通过LLM评判)自动验证输出是否符合预期;
  3. 红队安全演练:内置了五十多种漏洞测试插件(越狱、提示注入、有害内容生成),可以模拟攻击者手法,自动生成对抗性输入来检测系统的安全边界;
  4. 可视化:测试结果可以通过命令行查看,也可以启动 Web UI 来分析。

3.安装Promptfoo

(1)Promptfoo 是基于 Node.js 构建的,需要事先安装20.0或以上版本的 Node.js。

验证环境:Win+R打开命令提示符输入 node --version

如果版本过低,去官网下载进行升级。https://nodejs.org/zh-cn

(2)使用 npm(Node.js包管理器)安装

这个方法适用于所有平台(Windows、macOS以及Linux)

打开终端或命令行工具,执行如下命令:

npm install -g promptfoo # 如果第一个安装太慢,使用镜像源安装 npm install -g promptfoo --registry=https://registry.npmmirror.com

其中,-g参数代表全局安装,以后就可以在终端任何位置直接调用 promptfoo 命令。

安装完成后,查看是否成功:promptfoo --version

显示正确的版本号表示安装成功。

4.初始化第一个项目

(1)创建项目目录

创建新的文件夹存放测试的配置文件,并进入该目录(我这里选择在F盘创建):

mkdir my-first-promptfoo-test cd my-first-promptfoo-test

(2)初始化配置文件

运行初始化命令,开始工具的使用:

promptfoo init

根据提示选择后,目录中会出现一个 promptfooconfig.yaml 文件,这是 Promptfoo 的核心配置文件。

熟悉 promptfooconfig.yaml文件:

# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json # Learn more about building a configuration: https://promptfoo.dev/docs/configuration/guide description: "My eval" prompts: - "Write a tweet about {{topic}}" - "Write a concise, funny tweet about {{topic}}" providers: - "openai:gpt-5-mini" - "openai:gpt-5" tests: - vars: topic: bananas - vars: topic: avocado toast assert: # For more information on assertions, see https://promptfoo.dev/docs/configuration/expected-outputs # Make sure output contains the word "avocado" - type: icontains value: avocado # Prefer shorter outputs - type: javascript value: 1 / (output.length + 1) - vars: topic: new york city assert: # For more information on model-graded evals, see https://promptfoo.dev/docs/configuration/expected-outputs/model-graded - type: llm-rubric value: ensure that the output is funny 

文件中的核心有三大部分:prompts(测试的提示词)、providers(调用模型)、tests(测试用例)。

  • prompts部分:

该部分用于插入提示词,支持多条插入,也支持文件导入

# 单条、多条插入 prompts: - 'Translate the following text to Chinese: "{{name}}: {{text}}"' 

文件导入:

prompts: - file://path/to/prompt1.txt - file://path/to/prompt.yaml
  • providers部分:

这部分用于指定测试的大模型,除了常见的模型之外也可以使用脚本语言自定义一个模型。

providers: - "openai:gpt-5-mini" - "openai:gpt-5"
  • tests部分:

该部分用于录入测试用例,通过vars设置不同的参数变量对prompts进行测试,同时通过assert断言来检验输出的结果。

yaml 代码解读 tests: - vars: topic: 苹果 city: 成都 assert: - type: starts-with value: '```json'

(3)体验示例(基于智普 GLM-4.7-Flash)

运行如下代码可以体验其提供的示例模板:

promptfoo init --example getting-started
cd getting-started

该示例会包含预设的提示词、模型配置以及测试用例。

修改promptfooconfig.yaml配置文件:

访问智谱开放平台https://bigmodel.cn/usercenter/settings/account并在控制台创建API Key

接着①设置环境变量

set ZHIPU_API_KEY=你的key

②验证是否设置成功(如果显示了刚才设置的密钥就是成功的)

echo %ZHIPU_API_KEY%

③最终运行 promptfoo

promptfoo eval

以上三步必须在同一个命令行窗口连续执行,如果重新打开CMD密钥就会失效。

!!!由于我是直接将密钥粘贴到CMD中,一直导致401报错,查询之后问题可能是因为环境变量的传递(特殊字符或者换行符)。因此我直接将API Key直接写进了.yaml文件中。

headers: "Content-Type": "application/json" "Authorization": "Bearer 6e9be。。。。。。" # 直接写密钥

然后就可以跑通测试了!

可以通过 promptfoo view 查看详细报告:

此外,web 界面还支持json/cvs格式的导出:

以上就完成了一次提示词测试的任务。

提示词调优案例:

5.最后

2026年3月9日,OpenAI宣布将收购人工智能安全平台Promptfoo,该平台可帮助企业在开发过程中识别并修复人工智能系统的漏洞。收购完成后,OpenAI将把Promptfoo的技术直接整合到OpenAI Frontier平台中。

Read more

Claude AI注册避坑指南:5分钟搞定海外手机号验证(附最新解决方案)

Claude AI 注册实战:从验证难题到高效上手的完整路径 最近几个月,身边不少朋友和同事都在讨论一个现象:想体验一下那个以“安全”和“长上下文”著称的Claude AI,却在注册的第一步——手机号验证——就卡住了。这确实是个挺让人头疼的体验,明明技术产品就在眼前,却因为一个看似简单的步骤而无法触及。对于国内的开发者、产品经理或是AI爱好者来说,这种“看得见却用不上”的感觉尤其强烈。这篇文章,就是为你准备的。我们不谈空泛的理论,只聚焦于一个核心目标:如何绕过那些常见的障碍,顺利、安全地完成Claude账户的注册与初步设置,并为你梳理清楚后续高效使用的关键点。整个过程,力求在5分钟内给你一个清晰的行动路线。 1. 理解注册流程的核心关卡与常见误区 在动手操作之前,我们先花点时间拆解一下Claude的注册流程,特别是那个让很多人“折戟”的环节。这能帮你避开很多不必要的试错,直接找到有效的路径。 Claude的官方注册流程,本质上和大多数国际主流互联网服务类似:邮箱验证 -> 手机号验证 ->

(第三篇)Spring AI 实战进阶:从0开发IDEA插件版AI代码助手(Java全栈+上下文感知)

(第三篇)Spring AI 实战进阶:从0开发IDEA插件版AI代码助手(Java全栈+上下文感知)

前言 作为 Java 开发者,我们每天都在重复编写 CRUD 代码、调试语法错误、优化性能问题 —— 这些机械性工作占用了大量时间,而市面上的通用 AI 代码助手(如 Copilot)往往无法精准感知项目上下文(比如项目的包结构、依赖版本、数据库表结构),生成的代码需要大量修改才能落地。 笔者近期基于 Spring AI+IDEA 插件开发了一款定制化 AI 代码助手:后端基于 Spring AI 整合 JavaParser、Maven API 实现代码解析与生成,前端通过 IDEA 插件提供对话窗口和一键插入代码功能,支持需求描述→完整代码生成代码优化、上下文感知、补全三大核心能力。本文将从实战角度,完整拆解这款 AI 代码助手的开发全流程,所有代码均为生产环境可直接复用的实战代码,同时结合可视化图表清晰呈现核心逻辑,希望能帮你打造专属的 AI

猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》

猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》

猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》 📌摘要 🚀大消息来啦!猫头虎AI赠书第12期火热启动🔥!这次,我为大家精选了《扣子Skills+OpenClaw实战:零基础玩转AI智能体 》📚。想要免费拿到这本书?简单到不能再简单:关注我的博客✨,添加我的wx📲,在文章下方留言 "我要学习扣子龙虾! !! "💬。3月30日,我将为大家挑选出②位幸运读者🎁,并在评论区与朋友圈公布!手里还藏着宝贵的源代码,等你来夺🌈!赶快行动起来,机会难得! 📢引言 亲爱的朋友们,大家好!👋是我,猫头虎博主!今天,我为大家带来了猫头虎AI赠书第12期的特别惊喜🎊!这次我将赠送的是一本精心挑选的 《扣子Skills+OpenClaw实战:零基础玩转AI智能体》 🌟。这本书内容丰富,无论你是新手还是老鸟,都能找到属于你的知识宝藏🔍。希望大家能喜欢这个小惊喜,和我一起分享这场编程的盛宴!🥳 文章目录 * 猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》 * 📖关于