LangSmith 支持两种对通过 SDK 创建的实验进行评分的方式:
- * **以编程方式**,通过在代码中指定评估器(详见 如何评估 LLM 应用 )
- * By **在 UI 中将评估器绑定到数据集** 。这将自动对任何新创建的实验运行评估器,此外还会运行您通过 SDK 设置的任何评估器。当您正在迭代应用(目标函数),并且拥有一组标准评估器希望对所有实验运行时,此功能非常有用。
在数据集上配置评估器
1. 在 LangSmith UI中,选择一个数据集。 1. 点击 **评估器** tab. 1. 点击 **+ 评估器** 以打开 **添加评估器** panel. 1. 选择以下选项之一: - **从头创建**:构建一个新的 LLM-as-a-Judge, 代码, or 复合 评估器,或选择 **从标注数据** 创建一个 LLM 即评判评估器 与人工反馈对齐. - **附加现有评估器**:选择工作区中已有的评估器以复用。 - **从模板创建**:从预制评估器开始。
LLM 即评判评估器
将评估器绑定到数据集的过程与在 Playground 中配置 LLM 即评判评估器的过程非常相似。查看 在 Playground 中配置 LLM 即评判评估器的说明。
自定义代码评估器
将代码评估器绑定到数据集的过程与在在线评估中配置代码评估器的过程非常相似。查看 配置代码评估器的说明.
在在线评估中配置代码评估器与将代码评估器绑定到数据集之间的唯一区别是,自定义代码评估器可以引用属于数据集的输出 Example.
对于绑定到数据集的自定义代码评估器,评估器函数接受两个参数:
- * A
Run(reference). This represents the new run in your experiment. For example, if you ran an experiment via SDK, this would contain the input/output from your chain or model you are testing. - * An
Example(reference)。这代表您数据集中的参考示例,链或模型正在使用它。inputsRun 和 Example 的应该相同。如果您的 Example 有参考outputs,则可以用它与 run 的输出进行比较以进行评分。
下面的代码展示了一个简单的评估器函数示例,该函数检查输出是否完全等于参考输出。
def perform_eval(run, example):
# run is a Run object
# example is an Example object
output = run['outputs']['output']
ref_output = example['outputs']['outputs']
output_match = np.array_equal(output, ref_output)
return { "exact_match": output_match }
function perform_eval(run, example) {
// run is a Run object
// example is an Example object
const output = run.outputs.output;
const refOutput = example.outputs.outputs;
// Deep equality check for arrays/objects
const outputMatch = JSON.stringify(output) === JSON.stringify(refOutput);
return { "exact_match": outputMatch };
}
后续步骤
- * 在 实验标签页中分析您的实验结果
- * 在 对比视图中比较您的实验结果