主题
数据集 使您能够使用一致的数据随时间进行可重复的评估。数据集由示例组成,这些示例存储输入、输出以及可选的参考输出。
本页概述了在 LangSmith UI 中创建和管理数据集的各种方法。
创建数据集并添加示例
以下部分解释了在 LangSmith 中创建数据集并向其添加示例的不同方法。根据您的工作流程,您可以手动整理示例、从追踪中自动捕获、导入文件,甚至生成合成数据:
从追踪项目手动添加
构建数据集的常见模式是将应用程序中值得注意的追踪(traces)转换为数据集示例。此方法要求您已配置 LangSmith 追踪。
有两种方法可以将追踪项目中的数据手动添加到数据集。导航到 追踪项目 并选择一个项目。
- 从运行(runs)表中多选运行。在 运行 选项卡上,多选运行。在页面底部,点击 添加到数据集。

- 在 运行 选项卡上,从表中选择一个运行。在单个运行详情页面上,选择右上角的 添加到 -> 数据集。

当您从运行详情页面选择一个数据集时,将弹出一个模态框,告知您是否应用了任何转换或模式验证是否失败。例如,下面的截图显示了一个使用转换来优化收集 LLM 运行的数据集。

然后,您可以在将运行添加到数据集之前选择性地编辑它。
从追踪项目自动添加
您可以使用运行规则根据特定条件自动将追踪添加到数据集。例如,您可以添加所有标记了特定用例或具有低反馈分数的追踪。
从标注队列中的示例添加
标注队列可以可选地配置一个默认数据集,但您可以使用屏幕底部的数据集切换器将运行添加到任何数据集。选择正确的数据集后,点击 添加到数据集 或按热键 D 将其添加到数据集中。
您在标注队列中对运行所做的任何修改都将延续到数据集中,并且与运行关联的所有元数据也将被复制。

请注意,您还可以使用自动化规则设置规则,将满足特定条件的运行添加到标注队列。
从提示词游乐场添加
在 提示词游乐场 页面上,选择 设置评估,如果您要开始一个新数据集,请点击 +新建,或从现有数据集中选择。
对于具有嵌套键的数据集,不支持在游乐场中内联创建。要添加/编辑具有嵌套键的示例,您必须从数据集页面编辑。
要编辑示例:
- 使用 +行 向数据集添加新示例
- 使用表格右侧的 ⋮ 下拉菜单删除示例
- 如果您要创建无参考(reference-free)数据集,请使用列中的 x 按钮删除“参考输出”列。注意:此操作不可逆。

从 CSV 或 JSONL 文件导入数据集
在 数据集与实验 页面上,点击 +新建数据集,然后从 CSV 或 JSONL 文件导入现有数据集。
从数据集与实验页面创建新数据集
- 从左侧菜单导航到 数据集与实验 页面。
- 点击 + 新建数据集。
- 在 新建数据集 页面上,选择 从头创建 选项卡。
- 为数据集添加名称和描述。
- (可选)创建数据集模式以验证您的数据集。
- 点击 创建,这将创建一个空数据集。
- 要内联添加示例,请在数据集页面上,转到 示例 选项卡。点击 + 示例。
- 以 JSON 格式定义示例并点击 提交。有关数据集拆分的更多详细信息,请参阅创建和管理数据集拆分。
添加由 LLM 创建的合成示例
如果您已有现有示例并在数据集上定义了模式,当您点击 + 示例 时,会有一个 添加 AI 生成示例 的选项。这将使用 LLM 创建合成示例。
在 生成示例 中,执行以下操作:
- 点击窗格右上角的 API 密钥,将您的 OpenAI API 密钥设置为工作区密钥。如果您的工作区已设置了 OpenAI API 密钥,可以跳过此步骤。
- 选择 少样本示例:切换 自动 或 手动 参考示例。您可以从数据集中手动选择这些示例,或使用自动选择选项。
- 输入要生成的合成示例数量。
- 点击 生成。


- 示例将出现在 选择生成的示例 页面上。选择要添加到数据集中的示例,并可在最终确定前进行编辑。点击 保存示例。
- 每个示例都将根据您指定的数据集模式进行验证,并在源元数据中标记为 synthetic。


管理数据集
创建数据集模式
LangSmith 数据集存储任意的 JSON 对象。我们建议(但不要求)您为数据集定义一个模式,以确保它们符合特定的 JSON 模式。数据集模式使用标准的 JSON 模式 定义,并添加了一些预构建类型,使常见原语(如消息和工具)的类型定义更加容易。
模式中的某些字段具有 + 转换 选项。转换是预处理步骤,如果启用,会在您将示例添加到数据集时更新它们。例如,转换为 OpenAI 消息 转换会将类似消息的对象(如 LangChain 消息)转换为 OpenAI 消息格式。
有关可用转换的完整列表,请参阅我们的参考文档。
如果您计划从 LangChain ChatModels 或使用 LangSmith OpenAI 包装器 的 OpenAI 调用中收集生产追踪到您的数据集,我们提供了一个预构建的聊天模型模式,可将消息和工具转换为行业标准的 OpenAI 格式,以便下游与任何模型一起用于测试。您还可以自定义模板设置以匹配您的用例。
有关更多信息,请参阅数据集转换参考。
创建和管理数据集拆分
数据集拆分是数据集的划分,可用于对数据进行分段。例如,在机器学习工作流程中,通常将数据集拆分为训练集、验证集和测试集。这对于防止过拟合很有用——即模型在训练数据上表现良好,但在未见数据上表现不佳。在评估工作流程中,当您有一个包含多个类别的数据集,并且您可能希望分别评估这些类别时,这样做会很有用;或者如果您正在测试一个新用例,将来可能希望将其包含在数据集中,但目前希望保持独立。请注意,通过元数据也可以手动实现相同的效果——但我们期望拆分用于更高级别的数据集组织,将其划分为单独的组进行评估,而元数据则更多地用于存储示例的信息,如标签和来源信息。
在机器学习中,最佳实践是保持拆分独立(每个示例恰好属于一个拆分)。然而,在 LangSmith 中,我们允许您为同一个示例选择多个拆分,因为这对于某些评估工作流程是有意义的——例如,如果一个示例属于您可能希望评估应用程序的多个类别。
要在应用程序中创建和管理拆分,您可以在数据集中选择一些示例,然后点击“添加到拆分”。从弹出的菜单中,您可以为所选示例选择或取消选择拆分,或创建新拆分。

编辑示例元数据
您可以通过点击示例,然后点击弹出窗口右上角的“编辑”来向示例添加元数据。在此页面上,您可以更新/删除现有元数据,或添加新元数据。您可以使用此功能存储有关示例的信息,例如标签或版本信息,然后在分析实验结果时按元数据分组,或在 SDK 中调用 list_examples 时按元数据筛选。

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