概念:配对评估
evaluate() 和两个现有实验来定义评估器并运行配对评估。最后,您将使用 LangSmith UI 查看配对实验。
先决条件
您还可以使用
evaluate_comparative() 和两个以上的现有实验。evaluate() 比较参数
最简单的 evaluate / aevaluate 函数接受以下参数
| 参数 | 描述 |
|---|---|
目标 | 您希望相互评估的两个现有实验的列表。它们可以是 UUID 或实验名称。 |
评估器 | 您希望附加到此评估的配对评估器列表。有关如何定义这些评估器,请参阅以下部分。 |
| 参数 | 描述 |
|---|---|
randomize_order / randomizeOrder | 一个可选的布尔值,指示是否应为每个评估随机化输出的顺序。这是一种最小化提示中位置偏差的策略:通常,LLM 会根据顺序偏向其中一个响应。这主要应通过提示工程来解决,但这是另一个可选的缓解措施。默认为 False。 |
experiment_prefix / experimentPrefix | 附加到配对实验名称开头的可选前缀。默认为 None。 |
description | 配对实验的描述。默认为 None。 |
max_concurrency / maxConcurrency | 要运行的最大并发评估数。默认为 5。 |
客户端 | 要使用的 LangSmith 客户端。默认为 None。 |
metadata | 附加到配对实验的元数据。默认为 None。 |
load_nested / loadNested | 是否加载实验的所有子运行。当为 False 时,只有根跟踪将传递给评估器。默认为 False。 |
定义配对评估器
配对评估器只是具有预期签名的函数。评估器参数
自定义评估器函数必须具有特定的参数名称。它们可以采用以下参数的任何子集inputs: dict:对应于数据集中单个示例的输入的字典。outputs: list[dict]:每个实验在给定输入上产生的两个字典输出的列表。reference_outputs/referenceOutputs: dict:与示例关联的参考输出字典(如果可用)。runs: list[Run]:两个实验在给定示例上生成的完整 运行 对象的两项列表。如果您需要访问中间步骤或有关每个运行的元数据,请使用此参数。example: Example:完整的 示例 数据集,包括示例输入、输出(如果可用)和元数据(如果可用)。
inputs、outputs 和 reference_outputs / referenceOutputs。 runs 和 example 仅在您需要应用程序实际输入和输出之外的额外跟踪或示例元数据时才有用。
评估器输出
自定义评估器预计返回以下类型之一: Python 和 JS/TS-
dict:包含以下键的字典key,表示将记录的反馈键scores,表示从运行 ID 到该运行分数的映射。comment,一个字符串。最常用于模型推理。
list[int | float | bool]:两项分数列表。该列表假定与runs/outputs评估器参数的顺序相同。评估器函数名称用于反馈键。
pairwise_ 或 ranked_。
运行配对评估
以下示例使用一个提示,它要求 LLM 决定两个 AI 助手响应中哪个更好。它使用结构化输出来解析 AI 的响应:0、1 或 2。在下面的 Python 示例中,我们正在从 LangChain Hub 中提取此结构化提示,并将其与 LangChain 聊天模型包装器一起使用。LangChain 的使用完全是可选的。为了说明这一点,TypeScript 示例直接使用 OpenAI SDK。
- Python:需要
langsmith>=0.2.0 - TypeScript:需要
langsmith>=0.2.9
查看配对实验
从数据集页面导航到“配对实验”选项卡:


以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。