使用 LangSmith SDK 以编程方式创建和管理评估器。通过 SDK 创建的评估器是工作区级别的资源,会出现在 LangSmith UI 的 Evaluators 表中,与在 UI 中创建的评估器相同。您可以将它们附加到数据集以运行离线评估,或附加到追踪项目以运行在线评估。使用 SDK 可以实现评估器管理自动化,并将评估集成到您现有的工作流中。

前提条件

通过 SDK 管理评估器需要:
  • Python: langsmith>=0.9.8 (PyPI)
  • TypeScript: langsmith>=0.7.16 (npm)
有关安装和设置,请参阅 Python SDK 文档 和 TypeScript SDK 文档。
本页的示例在初始化客户端时不带参数,因此它会读取 LANGSMITH_API_KEY 和 LANGSMITH_ENDPOINT 环境变量。请通过环境变量配置您的 API 密钥,而不是将其硬编码。 在下面的示例中,请将 <evaluator-uuid> 等占位符替换为 LangSmith 中的相应信息。本页所有 Python 异步示例都假定它们运行在 async def main(): ... asyncio.run(main()) 内部,如创建代码评估器示例所示。

创建评估器

代码评估器

代码评估器使用您定义的函数为每次运行或示例评分。

LLM 作为评判者评估器

LLM 作为评判者评估器引用提示词库中的一个提示词,并将您的运行或示例字段映射到提示词变量。
该提示词必须是一个结构化提示词(类型为 StructuredPrompt)。StructuredPrompt 将提示词模板与输出架构相结合,确保模型返回具有定义结构的数据。
prompt_repo_handle 是提示词的内部仓库名称,而不是其显示标题或 URL。要查找它,请列出您的工作区提示词并读取 repo_handle 字段,或通过其在 LangSmith 中的标识符检索特定提示词。提示词的标识符可以是以下格式:
  • promptName(用于私有提示词),例如 my-prompt。
  • owner/promptName(用于公共提示词),例如 langchain-ai/correctness。

检索评估器

通过 ID 获取单个评估器,以读取其配置,包括名称、类型、反馈键和运行规则。

更新评估器

传递与评估器类型匹配的字段:代码评估器使用 code_evaluator,LLM 作为评判者评估器使用 llm_evaluator。update 方法仅更改您传递的字段。

配置运行时设置

LLM 作为评判者评估器接受额外的设置,以控制其对追踪进行评分的方式:
  • variable_mapping:将运行或示例字段映射到评判者提示词变量。当评估器运行时应用。
  • use_corrections_dataset 和 num_few_shot_examples:启用基于人工评分修正的少样本学习。仅当评估器附加到项目或数据集且已提交修正时才应用。
这些设置在下一次评估运行时生效,而不是在您调用 update 时立即生效。

列出评估器

按名称、类型、反馈键、附加资源或标签值进行过滤,并对结果进行排序或分页。当您直接迭代返回的对象时,list() 会自动分页遍历所有匹配项。limit 设置每页结果数(1 到 100),而不是总结果数。sort_by 是可选的,接受 created_at 或 updated_at,默认为 created_at。

跟踪评估器花费

检索评估器的预估美元花费和追踪计数:
  • period_start:一个纯日期的 ISO 字符串,例如 2026-06-29。传递 datetime 会返回 400 错误。
    • 窗口:period_start 开始一个固定的 7 天窗口,包含 period_start 及其后的六天。该窗口是半开放的,[period_start, period_start + 7 days),因此 period_end(period_start 加 7 天)被排除。例如,period_start 为 2026-06-29 时,涵盖 2026-06-29 到 2026-07-05,而 2026-07-06 被排除。
  • type:将结果范围限定为单一评估器类型,llm 或 code。省略它则包含所有类型。
  • 空结果:如果该窗口没有记录任何花费,则返回的 groups 列表为空。
请仅传递 group_by、evaluator_id、session_id(LangSmith 追踪项目 UUID)或 dataset_id 中的一个。

删除评估器

当评估器附加到追踪项目或数据集时,您无法删除它。请设置 delete_run_rules 为 true,以在删除评估器之前删除引用该评估器的运行规则。

相关