PROMPTBEAT / 通用教程
换集合,不换用法。
所有已规范化的种子集合,都使用现有Seed结构和Promptbeat加载入口。集合页负责说明内容与获取条件,这里讲共同的使用步骤。
01 / 获取
拿到标准种子文件
集合提供Registry地址时,用已有的seed pull命令获取指定版本。把下面三个大写占位符换成集合实际提供的ID、版本和地址;Registry是包含index.json的目录或目录URL,不是index.json文件路径。
promptbeat seed pull COLLECTION_ID@VERSION \
--registry REGISTRY_DIRECTORY_OR_URL \
--output-dir ./my-project/seeds 已有seeds.jsonl或Seed YAML可直接下一步。只有上游CSV等原始文件时,由对应来源适配器先转换;适配器不替代加载器,也不单独运行模型。
02 / 接入项目
在同一处配置seeds.files
将下面片段加入已有项目的promptbeat.yaml。路径相对于这份配置文件,不是相对于终端所在目录。可以列出多个文件。
seeds:
files:
- seeds/seeds.jsonl 统一的Seed结构包含什么
id · risk_type · technique_id · template · lang · metadata
template保存输入;source_dataset/source_id/dataset_version保留来源。预期行为与评分规则有独立字段,不能把正文里出现的“预期答案”当可信判定。不同来源的原生标签保留在metadata,不自动变成实测结果。
03 / 检查加载
先编译,再调用模型
以下命令使用现有CLI。validate检查项目配置;compile才会实际读取种子并生成Promptfoo配置。两步都不调用模型,编译摘要会显示Seeds条数。
promptbeat validate --config ./my-project/promptbeat.yaml
promptbeat compile promptfoo \
--config ./my-project/promptbeat.yaml \
--output ./my-project/compiled.yaml 需要已安装Promptbeat CLI。还没有项目配置,可以用下方XSTest示例生成一份完整的本地配置。
一个已实际跑通的例子
先在XSTest页面下载来源转换器,生成xstest-local文件夹,再在其上一级目录执行下列命令。配置指向转换后的标准文件;拉取步骤另外验证同一集合可被Registry机制消费。
准备XSTest来源 →promptbeat seed pull xstest@f600c994 \
--registry ./xstest-local \
--output-dir ./pulled/xstest
promptbeat validate --config ./xstest-local/promptbeat.yaml
promptbeat compile promptfoo \
--config ./xstest-local/promptbeat.yaml \
--output ./xstest-local/compiled.yaml 实测:450条转换成功;拉取前后文件校验一致;原有加载器读取并编译450条。没有新建加载API。
04 / 运行与解读
加载方式统一,评测条件按任务配置
确认目标模型、后端和评分规则已经配置后,再使用现有运行命令。这一步才会调用配置里的模型与评测后端,可能产生资源消耗。
promptbeat run --config ./my-project/promptbeat.yaml --output-dir ./artifacts/run XSTest示例中的模型ID和本机端口是占位值,需替换。正常与风险输入要分别判定,不能把默认红队攻击成功率当成误拒率。工具行为和环境任务还需要对应运行环境;统一Seed结构不意味着只接一个聊天接口就能评测所有任务。