数据集 使您能够使用一致的数据,随时间推移执行可重复的评估。数据集由 示例 组成,这些示例存储输入、输出以及可选的参考输出。 本页面概述了在 UI 中创建和管理数据集的各种方法。

创建数据集并添加示例

以下各节解释了在 LangSmith 中创建数据集并添加示例的不同方法。根据您的工作流程,您可以手动策划示例、从跟踪中自动捕获示例、导入文件,甚至生成合成数据:

从跟踪项目中手动添加

构建数据集的一个常见模式是将应用程序中重要的跟踪转换为数据集示例。这种方法要求您配置了到 LangSmith 的跟踪。
构建数据集的一种技术是筛选最有趣的跟踪,例如带有用户负面反馈标签的跟踪,并将它们添加到数据集中。有关如何筛选跟踪的技巧,请参考筛选跟踪指南。
有两种方法可以从跟踪项目中手动将数据添加到数据集。导航到 Tracing Projects(跟踪项目)并选择一个项目。
  1. 在运行表中多选运行。在 Runs(运行)选项卡上,多选运行。在页面底部,点击 Add to Dataset(添加到数据集)。
  2. 在 Runs(运行)选项卡上,从表中选择一个运行。在单个运行详情页面,选择右上角的 Add to -> Dataset。 当您从运行详情页面选择数据集时,会弹出一个模态窗口,告知您是否应用了任何转换或模式验证是否失败。 然后,您可以在将其添加到数据集之前选择性地编辑该运行。

从跟踪项目中自动添加

您可以使用运行规则根据某些条件自动将跟踪添加到数据集。例如,您可以添加所有带有特定用例标签或反馈分数低的跟踪。

从标注队列中的示例添加

如果您依赖主题专家来构建有意义的数据集,请使用标注队列为审阅者提供简化的视图。人类审阅者可以在跟踪添加到数据集之前,选择性地修改其输入/输出/参考输出。
您可以选择性地为标注队列配置一个默认数据集,但您也可以使用屏幕底部的数据集切换器将运行添加到任何数据集。选择正确的数据集后,点击 Add to Dataset(添加到数据集)或按快捷键 D 将运行添加到其中。 您在标注队列中对运行所做的任何修改都会延续到数据集,并且与运行关联的所有元数据也会被复制。
Add to Dataset(添加到数据集)仅适用于 run(运行)队列项。标注队列中的 Thread 项支持评分标准反馈,但不支持数据集导出。
您也可以使用自动化规则设置规则,将符合特定条件的运行添加到标注队列。

从 Playground 添加

在 Playground 页面上:
  1. 选择 Set up Evaluation(设置评估)。
  2. 如果要创建新数据集,请点击 +New,或从现有数据集中选择。
    在 Playground 中内联创建数据集不适用于具有嵌套键的数据集。要添加/编辑具有嵌套键的示例,您必须从数据集页面进行编辑。
  3. 编辑示例:
    • 使用 +Row 向数据集添加新示例。
    • 使用表格右侧的 ⋮ 下拉菜单删除示例。
    • 如果您正在创建无参考输出的数据集,请使用列中的 x 按钮移除 Reference Output(参考输出)列。请注意,此操作不可逆。

从 CSV 或 JSONL 文件导入数据集

在 Datasets & Experiments(数据集与实验)页面,点击 +New Dataset(新建数据集),然后从 CSV 或 JSONL 文件导入现有数据集。

从数据集与实验页面创建新数据集

  1. 从左侧菜单导航到 Datasets & Experiments(数据集与实验)页面。
  2. 点击 + New Dataset(新建数据集)。
  3. 在 New Dataset(新建数据集)页面,选择 Create from scratch(从头开始创建)选项卡。
  4. 为数据集添加名称和描述。
  5. (可选)创建一个数据集模式来验证您的数据集。
  6. 点击 Create(创建),这将创建一个空数据集。
  7. 要内联添加示例,请在数据集页面上,转到 Examples(示例)选项卡。点击 + Example(添加示例)。
  8. 以 JSON 格式定义示例,然后点击 Submit(提交)。有关数据集拆分的更多详细信息,请参考创建和管理数据集拆分。

添加由 LLM 创建的合成示例

如果您已有示例,并且在数据集上定义了模式,当您点击 + Example(添加示例)时,会出现一个选项 Add AI-Generated Examples(添加 AI 生成的示例)。这将使用 LLM 创建合成示例。 在 Generate examples(生成示例)中,执行以下操作:
  1. 点击窗格右上角的 API Key,将您的 OpenAI API 密钥设置为工作区密钥。如果您的工作区已设置 OpenAI API 密钥,可以跳过此步骤。
  2. 选择 :切换 Automatic(自动)或 Manual(手动)参考示例。您可以从数据集中手动选择这些示例,或使用自动选择选项。
  3. 输入您想生成的合成示例数量。
  4. 点击 Generate(生成)。 AI 生成示例配置窗口。手动和自动选择以及要生成的示例数量。
  5. 这些示例将出现在 Select generated examples(选择生成的示例)页面上。选择要添加到数据集的示例,并可在最终确定前选择编辑它们。点击 Save Examples(保存示例)。
  6. 每个示例都会根据您指定的数据集模式进行验证,并在源元数据中标记为 synthetic(合成)。 选择生成的示例页面,已选中生成的示例和保存示例按钮。

管理数据集

创建数据集模式

LangSmith 数据集存储任意 JSON 对象。我们建议(但不强制要求)您为数据集定义一个模式,以确保它们符合特定的 JSON 模式。数据集模式使用标准的 JSON 模式定义,并增加了一些预构建类型,使消息和工具等常见基元的类型定义更加容易。 模式中的某些字段有 + Transformations(转换)选项。转换是预处理步骤,如果启用,会在您将示例添加到数据集时更新它们。例如,convert to OpenAI messages 转换会将类似消息的对象(如 LangChain 消息)转换为 OpenAI 消息格式。 有关可用转换的完整列表,请参考数据集转换参考。
如果您计划从 LangChain ChatModels 或使用 LangSmith OpenAI 封装器从 OpenAI 调用中收集生产跟踪到您的数据集,我们提供了一个预构建的 Chat Model 模式,该模式将消息和工具转换为行业标准的 OpenAI 格式,可与任何模型一起用于下游测试。您还可以自定义模板设置以匹配您的用例。更多信息,请参阅数据集转换参考。

创建和管理数据集拆分

有关何时以及为何使用拆分的概述,请参考数据集组织。 要在 UI 中创建和管理拆分:
  1. 在数据集中选择示例。
  2. 点击 Add to Split(添加到拆分)。
  3. 在弹出的菜单中,您可以为所选示例选择和取消选择拆分,或创建一个新拆分。
添加到拆分

编辑示例元数据

要为您的示例添加元数据:
  1. 点击一个示例,然后点击弹出窗口右上角的 Edit(编辑)。
  2. 在此页面上,更新或删除现有元数据,或添加新元数据。
您可以使用此功能存储有关示例的信息,例如标签或版本信息,然后可以在分析实验结果时按这些信息分组,或在 SDK 中调用 list_examples 时按这些信息筛选。

筛选示例

您可以按拆分、元数据键/值筛选示例,或对示例执行全文搜索。这些筛选选项位于示例表格的左上方:
  • 按拆分筛选:选择拆分 > 选择一个拆分进行筛选。
  • 按元数据筛选:筛选器 > 从下拉菜单中选择 Metadata(元数据)> 选择要筛选的元数据键和值。
  • 全文搜索:筛选器 > 从下拉菜单中选择 Full Text(全文)> 输入您的搜索条件。
您可以添加多个筛选器,只有满足所有筛选器的示例才会显示在表格中。 应用到示例的筛选器