Skip to content

筛选语法 ​

追踪、实验、实验的行和数据集的行用同一套简短的语法筛选:网页上(日志、实验、一个实验的行、数据集、在线评分规则、评审队列的每天自动加入)和 API 的 filter= 参数里都一样。

text
字段 比较符 值 [AND|OR 字段 比较符 值 …]

语法 ​

  • 一个条件是 字段 比较符 值,比如 score.factuality < 0.5。
  • 条件之间用 AND 和 OR 连(大小写都行)。AND 比 OR 先结合;要分组用括号:(tag = a OR tag = b) AND score.x >= 1。
  • 没有 NOT,用 !=。
  • 空的筛选条件匹配全部。筛选条件最多 2000 个字符。

比较符 ​

比较符意思用在
= !=等于、不等于(精确,区分大小写)所有字段
> >= < <=比数字大小score.*、delta.*
~包含,不区分大小写文字字段(score.* 和 delta.* 不行)

缺失或未判定的值只匹配 !=。字段有多个值时(一条追踪调过的模型、工具或标签),= 是有一个相等就算,!= 是一个都不相等,~ 是有一个包含这段文字。

值 ​

  • 不加引号的词一直到空格或 ( ) " ' = ! < > ~ 为止,所以 builtin:task_done、gpt-4.1、sc_01J9…@2 不用加引号。
  • 别的都用 "…" 或 '…' 引起来;反斜杠转义下一个字符:input ~ "说 \"你好\""。
  • 值就是 and 或 or 时要加引号,否则会被当成关键字。
  • 数字(0.5、-0.25、.5)只在 score.* 和 delta.* 上当数字。

字段 ​

字段追踪(日志)实验(列表)实验的行数据集的行
score.<评分器>这条追踪的在线评分或人工评分这个评分器的平均分这一行的分数(判定了的那几次的平均)—
delta.<评分器>——这一行的分数减去基线那一行的—
statusok、error、cancelledrunning、done、cancelled、failed、invaliddecided、undecided—
sourceotlp、sdk、gateway、sandboxround、run、sdk、playgroundrun(来自沙盒或 runner 的报告)、nativemanual、import、log、experiment、review、ai、scenario、test_set
environmentdev、staging、prod、ci同左——
model这条追踪调过的每个模型目标的模型评审模型—
tool每个工具跨度的名字———
tag追踪的 metadata.tags实验的 metadata.tags这一行的标签这一行的标签
condition——normal、fault、attack,或者更细:fault:<工具>:<故障>、attack:<攻击>[:<插件>]同左
input、output追踪的输入和输出(前 500 个字符)—这一行的输入和输出这一行的输入和期望

<评分器> 是评分器编号:builtin:<slug>,或项目的评分器 sc_…。在实验的行上,sc_… 匹配这个评分器的任何版本;在追踪上,项目的评分器要带版本写,sc_…@2。

字段名不区分大小写;<评分器> 那部分保留大小写。不适用的字段(表里的 —)没有值,所以只有 != 能匹配。

例子 ​

筛选条件找出
score.factuality < 0.5factuality 低于 0.5 的行(或实验)
delta.builtin:task_done <= -0.25比基线明显变差的行
output ~ "找不到"输出里说到「找不到」的
model != 'gpt-4.1'没调过 gpt-4.1 的追踪
tool = refund_create AND status = error调了退款工具、而且出错的追踪
(tag = 账单 OR tag = 退款) AND score.correctness >= 0.8标着账单或退款、而且得分高的行
condition = attack AND score.builtin:attack_success > 0得逞了的攻击
environment = prod AND score.builtin:correctness < 0.5在线评分打了低分的生产环境追踪

出错时 ​

网页上写错的地方会划线。API 回答 400 bad_filter,带从 0 开始的字符位置 position。比如 score.factuality ~ high:

json
{ "error": { "code": "bad_filter", "message": "筛选条件写得不对:score is a number: \"~\" compares words (at 17)", "position": 17 } }

超过 2000 个字符的筛选条件是 400 invalid_body。数据集列表和评分器列表收 filter=,但现在还不按它筛。

本站的法律文件都是草稿,待律师审阅,尚未生效。