主题
管理评估器
在 LangSmith 的工作区级别查看和管理评估器。
LangSmith 中的评估器是工作区级资源。你可以将单个评估器附加到多个追踪项目和数据集,这样你就能在你的各项工作中应用一致的评估逻辑,而无需每次重新创建它。
TIP
评估器分数是 LangSmith Engine 的高优先级信号:它在选择要分析什么时会拉取低分追踪,因此将评估器附加到项目上会使 Engine 在那里发现的问题更精准。
查看评估器
在 LangSmith UI中,在左侧边栏选择 Evaluators,以查看你工作区中的所有评估器。
评估器表格显示以下列:
| 列 | 描述 |
|---|---|
| Name | 评估器名称 |
| Type | LLM as a judge 或 Code。复合分数评估器被限定到各个追踪项目和数据集,不出现在此处。 |
| Feedback Key | 评估器所产生的反馈键 |
| Projects & Datasets | 此评估器所附加到的追踪项目和数据集 |
| Evaluator Trace Count (this week) | 此评估器在过去一周所运行的追踪数。仅在启用支出跟踪时显示;对于 Code 评估器或没有附加规则的评估器显示 –。 |
| Spend (this week) | 此评估器在过去一周的估计 USD 支出。仅在启用支出跟踪时显示;对于 Code 评估器或没有附加规则的评估器显示 –。 |
| Spend Status | 评估器是处于 Under limits、Unlimited,还是已达到一个或多个配置的支出上限。仅在启用支出跟踪时显示;对于 Code 评估器显示 –。 |
| Created By | 创建此评估器的工作区成员 |
| Updated At | 评估器上次被修改的时间 |
| Created At | 评估器被创建的时间 |
创建评估器
你可以在 LangSmith UI中创建评估器,或使用 SDK 以编程方式创建。以任一方式创建的评估器都是出现在 Evaluators 表格中的工作区级资源。
在 UI 中创建评估器
- 在 LangSmith UI中,在左侧边栏选择 Evaluators。
- 点击 + Evaluator 以打开新评估器面板。
- 该面板让你能够:
Create from scratch:构建一个新的 LLM-as-a-Judge 或 Code 评估器。要使用一个决策模型作为评判者,选择 LLM-as-a-Judge Evaluator,然后选择一个决策模型。
Add a LangChain Tuned Evaluator:将一个由 LangChain 管理的专门评判者附加到兼容的追踪项目,而无需配置提示、模型或 API 密钥。
Create from a template:从为常见评估模式预先做好的现成评估器(也称预构建评估器)开始。Recommended 部分会先展示热门模板,随后是按以下类别组织的模板:
类别 描述 Security 检测泄露、注入和对抗性输入。 Safety 评估内容安全和审核。 Quality 衡量输出质量和准确性。 Conversation 评估对话质量和用户体验。 Trajectory 评估 agent 的工具使用和决策路径。 Image Evaluations 评估图像内容质量和安全性。 Voice Evaluation 评估语音和音频交互质量。
你也可以直接从追踪项目或数据集添加评估器。在那个流程中,你还可以附加一个现有评估器(来自你的工作区),或创建一个 Composite 评估器。参阅设置 LLM-as-a-judge 在线评估器和在实验上自动运行评估器。
使用 SDK 创建评估器
使用 LangSmith SDK 以编程方式创建评估器。SDK 提供 Python 和 TypeScript 版本。通过 SDK 创建的评估器会与在 UI 中创建的评估器并列出现在 Evaluators 表格中。
SDK 尚不支持决策模型评估器。要创建一个,请使用 UI。
NOTE
通过 SDK 管理评估器需要 langsmith>=0.9.8(Python,PyPI)或 langsmith>=0.7.16(TypeScript,npm)。
python
import asyncio
from langsmith import Client
async def main():
client = Client()
created = await client.evaluators.create(
name="Correctness evaluator",
type="code",
code_evaluator={
"code": "def perform_eval(run, example):\n return {'score': 1}",
"language": "python",
},
)
print("Created evaluator:", created.evaluator.id)
asyncio.run(main())typescript
import { Client } from "langsmith";
const client = new Client();
const created = await client.evaluators.create({
name: "Correctness evaluator",
type: "code",
code_evaluator: {
code: "def perform_eval(run, example):\n return {'score': 1}",
language: "python",
},
});
console.log("Created evaluator:", created.evaluator?.id);要创建一个 LLM-as-a-judge 评估器,以及检索、更新、列出或删除评估器,参阅使用 SDK 管理评估器。
查看评估器详情
点击表格中任意评估器以打开其详情视图。详情视图有四个标签:
- Overview:评估器的反馈配置以及提示或代码定义。
- Traces:此评估器跨所有附加资源所处理的追踪。
- Logs:此评估器跨所有附加资源的执行日志。
- Projects & Datasets:此评估器所附加到的追踪项目和数据集,带有每个附件的每周支出和上限。
编辑评估器
打开一个评估器。在 Overview 标签中,点击 Edit evaluator
图标以打开 Configure Evaluator 面板。更新评估器的配置。点击 Save。
由于评估器是共享的,更改会应用到它所附加的所有追踪项目和数据集。
管理评估器追踪保留
当在线评估器为追踪打分时,它会将反馈附加到追踪上。根据评估器的保留设置,这可以自动将追踪升级到延长保留。延长保留会使追踪保留更久,但成本更高。当你在追踪项目上设置在线评估器时,你可以选择退出此升级,以便被打分的追踪保持在项目的基础保留。
此控制仅在项目的默认保留为基础层级时可用。如果项目默认为延长保留(在项目或工作区级别设置),由评估器打分的追踪会遵循该默认值,且此选项被锁定。
要选择不对被打分的追踪延长保留:
此更改应用在你保存评估器之后被打分的追踪。现有的已打分追踪保持其当前的保留层级。
上述 Extend trace retention 切换同时适用于追踪级和线程级(多轮)在线评估器。有关多轮评估器的更多信息,参阅设置多轮在线评估器。
包含扩展统计
在一个运行级评估器中使用 Include extended stats (feedback, costs, tokens) 来评估来自该运行的反馈统计、token 使用量或成本数据。feedback_stats 字段包含反馈统计,包括每个反馈键的数量和平均值。此选项对多轮(线程级)评估器不可用。
LangSmith 会为启用此选项的评估器获取额外数据。仅当你的评估逻辑或提示需要这些字段时才启用它。
要包含扩展统计:
访问扩展统计
代码评估器在 run 对象中接收这些字段,包括 feedback_stats、total_tokens 和 total_cost。无论你是否启用扩展统计,它们也会在 run["feedback"] 中接收单条反馈记录。对于 LLM-as-a-judge 评估器,将相应的 run.* 字段映射到一个提示变量。例如,将 {correctness_average} 映射到 run.feedback_stats.correctness.avg,以便在提示中包含一个 correctness 反馈平均值。可用的 run.* 字段还包括提示和补全 token、成本以及详情字段。有关完整的运行数据 schema,参阅运行数据格式。
链式评估器
扩展统计可用于链式评估器,其中一个代码评估器读取另一个评估器已经产生的分数。按第一个评估器的反馈键过滤第二个评估器(例如,has(feedback_key, "answer_usefulness")),然后启用扩展统计。过滤器使代码评估器仅在该分数存在后才运行,而扩展统计使该分数可在 run["feedback_stats"]["answer_usefulness"]["avg"] 处读取。
过滤器是按反馈键而非产生它的评估器进行匹配的,因此来自具有该键的任何来源的反馈都会触发代码评估器。要配置过滤器,参阅对触发评估器的运行应用过滤器。
删除评估器
当评估器仍附加到追踪项目或数据集时,你无法删除它。要删除一个评估器:
- 在 LangSmith UI中,在左侧边栏选择 Evaluators。
- 选择你要删除的评估器。
- 打开 Projects & Datasets 标签。对于每个附加的追踪项目和数据集,在该行右侧的 Actions 菜单中选择 Detach。
- 返回 Evaluators 页面,并在页面顶部点击 Delete。