Python 和 TypeScript SDK 是在 LangSmith 中运行评估的推荐方式。它们包含提升性能和可靠性的优化与功能。 如果你无法使用 SDK——例如,你正在使用另一种语言或受限的环境——你可以直接使用 REST API。本指南将演示如何使用 Python 的 requests 库通过 REST API 运行评估,但同样的原理适用于任何语言。 在深入了解本指南内容之前,阅读以下内容可能会有所帮助:

创建数据集

在此示例中,我们使用 Python SDK 快速创建一个数据集。要通过 API 或 UI 创建数据集,请参阅管理数据集。

运行单个实验

要通过 API 运行实验,你需要:
  1. 从数据集中获取示例。
  2. 创建一个实验(在 API 中也称为“会话”)。
  3. 为每个示例创建引用了该示例和该实验的运行。
  4. 通过设置 end_time 来结束实验。
首先,使用 /examples 端点拉取你想要在实验中使用的所有示例:
from langsmith import uuid7 接下来,定义一个函数,该函数将在单个示例上运行你的模型并将结果记录到 LangSmith。当直接使用 API 时,你需要负责:
  • 通过 POST 请求到 /runs 来创建运行对象,并设置 reference_example_id 和 session_id。
  • 跟踪运行之间的父子关系(例如,一个父级的 “chain” 运行包含一个子级的 “llm” 运行)。
  • 通过 PATCH 请求到 /runs/{run_id} 来更新运行的输出。
现在创建实验并在所有示例上运行补全。在 API 中,一个“实验”表示为一个会话(或“追踪会话”),它通过 reference_dataset_id 引用一个数据集。与常规追踪的主要区别在于,实验中的运行必须具有 reference_example_id,将每个运行链接到数据集中的特定示例。

添加评估反馈

运行完你的实验后,你通常会希望通过添加反馈分数来评估结果。这允许你跟踪诸如正确性、准确性或任何自定义评估标准之类的指标。 在此示例中,评估检查每个模型的输出是否与数据集中的预期标签匹配。代码发布一个“正确性”分数(正确为 1.0,不正确为 0.0)来跟踪每个模型分类有毒与无毒文本的准确程度。 以下代码向单个实验示例中的运行添加反馈:
你可以添加多个具有不同键的反馈分数来跟踪各种指标。例如,你可能同时添加“correctness”分数和“toxicity_detected”分数。

运行对比实验

接下来,我们将演示如何运行对比实验。在对比实验中,你将两个示例相互比较。 更多信息,请查看如何运行对比评估。