← 种子集合

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结构不意味着只接一个聊天接口就能评测所有任务。