跳到正文
PromptBeat · 模型与 Prompt

PromptBeat 执行

运行完整评测流水线,控制 Provider 范围并检查归一化结果。

PromptBeat 通过已配置的外部评测后端评测模型与 Prompt 行为。应从小范围开始,并让每次远程调用都清晰可见。

终端窗口
promptbeat run \
--config examples/llm-basic/promptbeat.yaml \
--output-dir artifacts/llm-basic/run \
--progress plain

当前 Go 应用执行五个阶段:

compile → generate → validate generated cases → eval → parse
阶段行为
Compile把 PromptBeat project 转换为 backend 配置
Generate运行外部后端红队生成
Validate在 backend 支持时检查生成产物
Eval通过外部后端调用已配置 Target Provider
Parse把原始结果归一化为 PromptBeat EvaluationResult
命令适用情况
promptbeat pipeline run需要显式完整链路命令与 backend 选择
promptbeat run promptfoo已有后端 YAML,需要直接执行
promptbeat eval已有后端 YAML,并可能需要 Provider override
promptbeat compile promptfoo希望在执行前检查生成的后端 YAML

使用 promptbeat --help 查看当前构建中的准确 flag。

examples/llm-basic 分离了三个角色:

  • **Generator:**在外部后端生成阶段扩展红队 Case。
  • **Judge:**在已配置 assertion 需要时进行模型判定。
  • **Target:**被评测的模型或 Prompt endpoint。

三个角色可以使用不同模型和 endpoint。Project 流水线启动前会验证环境变量 placeholder。

PromptBeat 会保存 backend 返回的数据,但不能推断隐藏的模型状态或 HTTP Agent 工具活动。结果保持在响应范围内。

输出目录默认包含:

  • promptfoo.redteam.yaml:编译后的后端配置;
  • promptfoo.generated.yaml:生成的 backend 产物;
  • promptfoo-result.json:后端原始结果;
  • evaluation_result.json:Go 归一化结果;
  • report.html:渲染后的 PromptBeat 报告。

Artifact 路径只能配置在有界输出目录内。

promptbeat eval 支持通过重复 --provider 或 --provider-file 覆盖 Provider。比较模型时应保持 Case 与 Scenario 不变,并随结果记录每项 override。