概念:成对评估
evaluate() 和两个现有实验来定义评估器并运行成对评估。最后,您将使用 LangSmith UI 来查看成对实验。
先决条件
您也可以使用
evaluate_comparative() 来处理两个以上的现有实验。evaluate() 比较参数
最简单的情况下,evaluate / aevaluate 函数接受以下参数:
除了这些,您还可以传递以下可选参数:
定义成对评估器
成对评估器只是具有预期签名的函数。评估器参数
自定义评估器函数必须具有特定的参数名称。它们可以接受以下参数的任意子集:inputs: dict:对应于数据集中单个示例的输入字典。outputs: list[dict]:一个包含两个项目的列表,包含每个实验在给定输入上产生的字典输出。reference_outputs/referenceOutputs: dict:与示例关联的参考输出字典(如果可用)。runs: list[Run]:一个包含两个项目的列表,包含两个实验在给定示例上生成的完整 Run 对象。如果您需要访问中间步骤或有关每次运行的元数据,请使用此项。example: 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
查看成对实验
从数据集页面导航到“成对实验”选项卡:


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

