LangSmith SDK 和 REST API 允许你使用一组过滤参数和一种结构化的过滤查询语言,以编程方式对运行进行过滤、查询和导出。本页记录了过滤参数和查询语言,并提供了常见查询的示例。 要查看将这些过滤器与 SDK 结合使用的可运行端到端示例,请参考使用 SDK 查询跟踪。

过滤参数

性能提示:传递 select 参数并从列表中排除 inputs 和 outputs 可以显著提高查询性能并减小响应大小,尤其是对于大型运行。

过滤查询语言

LangSmith 支持使用过滤查询语言进行复杂过滤操作,以便在获取运行时使用。这在通过 SDK 或 API 以编程方式查询跟踪时特别有用,例如在评估管道、监控脚本或检查先前跟踪的代理工作流中。

比较器

过滤语法基于应用于运行对象字段的比较器函数:

逻辑运算符

使用 and 和 or 组合多个比较器:

可过滤字段

值格式

  • 字符串:用双引号或单引号括起来,eq(name, "MyChain") 或 eq(name, 'MyChain')。
  • 时间戳:ISO 8601 格式,"2024-06-01T00:00:00Z"。
  • 持续时间:秒数,可以是数字或带有 s 后缀的字符串,"5s"、"1.5s"、"90s" 或 1.5。不支持其他单位后缀(m、h)。
  • 列表:JSON 数组语法,["session_id", "thread_id"]。

快速参考示例

以下示例仅显示过滤器字符串。在 client.list_runs() 或 /runs/query API 端点中,将字符串作为 filter、trace_filter 或 tree_filter 参数传递。
有关包含 Python、TypeScript 和 Java 代码的完整 SDK 示例,请参考使用 SDK 查询跟踪。

按运行名称过滤

按错误状态过滤

按延迟过滤

按时间范围过滤

按标签过滤

按元数据键或值过滤

按线程 ID 过滤

按反馈分数过滤

全文搜索所有字符串字段

组合条件

使用 trace_filter 和 tree_filter

filter 应用于返回的运行。trace_filter 应用于跟踪的根运行。tree_filter 应用于跟踪树中任意位置的任何运行。
tree_filter 将相同的查询语法应用于跟踪树中任意位置的运行。对于针对任意嵌套子运行字段(例如返回的 inputs、outputs 或 extra 负载路径)的谓词,请首先使用服务器端过滤器缩小候选范围,然后使用子运行填充根跟踪并在本地遍历它们。请参见使用子运行谓词查询跟踪树。