> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 在 UI 中创建和管理数据集

[*数据集*](/langsmith/evaluation-concepts#datasets) 使您能够使用一致的数据，随时间执行可重复的评估。数据集由 [*示例*](/langsmith/evaluation-concepts#examples) 组成，这些示例存储输入、输出，以及可选的参考输出。

本页概述了在 [UI](https://smith.langchain.com) 中 [创建](#create-a-dataset-and-add-examples) 和 [管理](#manage-a-dataset) 数据集的各种方法。

## 创建数据集并添加示例

以下部分解释了您可以在 LangSmith 中创建数据集并添加示例的不同方式。根据您的工作流程，您可以手动整理示例、从跟踪中自动捕获它们、导入文件，甚至生成合成数据：

* [从跟踪项目手动创建](#manually-from-a-tracing-project)
* [从跟踪项目自动创建](#automatically-from-a-tracing-project)
* [从标注队列中的示例创建](#from-examples-in-an-annotation-queue)
* [从演练场创建](#from-the-playground)
* [从 CSV 或 JSONL 文件导入数据集](#import-a-dataset-from-a-csv-or-jsonl-file)
* [从数据集页面创建新数据集](#create-a-new-dataset-from-the-datasets-%26-experiments-page)
* [通过数据集 UI 添加由 LLM 创建的合成示例](#add-synthetic-examples-created-by-an-llm)

### 从跟踪项目手动创建

构建数据集的一种常见模式是将应用程序中的重要跟踪转换为数据集示例。此方法要求您已 [配置了到 LangSmith 的跟踪](/langsmith/observability-concepts)。

<Check>
  构建数据集的一种技术是筛选最有趣的跟踪，例如被标记为用户反馈不佳的跟踪，并将它们添加到数据集。有关如何筛选跟踪的提示，请参阅 [筛选跟踪](/langsmith/filter-traces-in-application) 指南。
</Check>

有两种方法可以从跟踪项目手动将数据添加到数据集。导航到 **跟踪项目** 并选择一个项目。

1. 从运行表中多选运行。在 **运行** 选项卡上，多选运行。在页面底部，点击 <Icon icon="database" /> **添加到数据集**。
2. 在 **运行** 选项卡上，从表中选择一个运行。在单个运行详情页面，选择右上角的 **添加到** -> **数据集**。

   当您从运行详情页面选择数据集时，会弹出一个模态框，告知您是否应用了任何 [转换](/langsmith/dataset-transformations) 或架构验证是否失败。

   然后，您可以在将其添加到数据集之前选择性地编辑该运行。

### 从跟踪项目自动创建

您可以使用 [运行规则](/langsmith/rules) 根据某些条件自动将跟踪添加到数据集。例如，您可以添加所有被 [标记](/langsmith/observability-concepts#tags) 为特定用例或具有 [低反馈分数](/langsmith/observability-concepts#feedback) 的跟踪。

### 从标注队列中的示例创建

<Check>
  如果您依赖领域专家来构建有意义的数据集，请使用 [标注队列](/langsmith/annotation-queues) 为审阅者提供简化的视图。人工审阅者可以选择在将跟踪添加到数据集之前修改其输入/输出/参考输出。
</Check>

您可以选择使用默认数据集配置标注队列，尽管您可以通过使用屏幕底部的数据集切换器将运行添加到任何数据集。选择正确的数据集后，点击 **添加到数据集** 或按热键 `D` 将运行添加到其中。

您在标注队列中对运行所做的任何修改都将转移到数据集，并且与该运行关联的所有元数据也将被复制。

<Tip>
  您还可以设置规则，使用 [自动化规则](/langsmith/rules) 将满足特定条件的运行添加到标注队列。
</Tip>

### 从演练场创建

在 [**演练场**](/langsmith/prompt-engineering-concepts#playground) 页面：

1. 选择 **设置评估**。

2. 如果您要开始一个新数据集，请点击 **+新建**，或从现有数据集中选择。

   <Note>
     不支持在演练场中内联创建具有嵌套键的数据集。要添加/编辑具有嵌套键的示例，您必须 [从数据集页面](/langsmith/manage-datasets-in-application#create-a-new-dataset-from-the-datasets-%26-experiments-page) 进行编辑。
   </Note>

3. 编辑示例：

   * 使用 **+行** 向数据集添加新示例。
   * 使用表格右侧的 **⋮** 下拉菜单删除示例。
   * 如果您正在创建无参考数据集，请使用列中的 **x** 按钮删除 **参考输出** 列。请注意，此操作不可逆。

### 从 CSV 或 JSONL 文件导入数据集

在 **数据集和实验** 页面，点击 **+新建数据集**，然后从 CSV 或 JSONL 文件 **导入** 现有数据集。

### 从数据集和实验页面创建新数据集

1. 从左侧菜单导航到 **数据集和实验** 页面。
2. 点击 **+ 新建数据集**。
3. 在 **新建数据集** 页面，选择 **从头创建** 选项卡。
4. 为数据集添加名称和描述。
5. （可选）创建 [数据集架构](#create-a-dataset-schema) 以验证您的数据集。
6. 点击 **创建**，这将创建一个空数据集。
7. 要内联添加示例，请在数据集页面上，转到 **示例** 选项卡。点击 **+ 示例**。
8. 以 JSON 格式定义示例，然后点击 **提交**。有关数据集划分的更多详细信息，请参阅 [创建和管理数据集划分](#create-and-manage-dataset-splits)。

### 添加由 LLM 创建的合成示例

如果您有现有示例并在数据集上定义了 [架构](#create-a-dataset-schema)，当您点击 **+ 示例** 时，会有一个选项 <Icon icon="sparkles" /> **添加 AI 生成的示例**。这将使用 LLM 创建 [合成](/langsmith/evaluation-concepts#building-datasets) 示例。

在 **生成示例** 中，执行以下操作：

1. 点击窗格右上角的 **API 密钥**，将您的 OpenAI API 密钥设置为 [工作区密钥](/langsmith/administration-overview#workspaces)。如果您的工作区已经设置了 OpenAI API 密钥，可以跳过此步骤。

2. 选择 <Tooltip tip="几个示例输入-输出对，用于指导模型如何执行任务。">少样本示例</Tooltip>：切换 **自动** 或 **手动** 参考示例。您可以从数据集中手动选择这些示例，或使用自动选择选项。

3. 输入要生成的合成示例数量。

4. 点击 **生成**。

   <img className="block dark:hidden" src="https://mintcdn.com/other-405835d4/G7l9ZuXFPY6DQG2A/langsmith/images/generate-synthetic-light.png?fit=max&auto=format&n=G7l9ZuXFPY6DQG2A&q=85&s=401eb816bc53a66d6afc234b0c8323e1" alt="AI 生成的示例配置窗口。手动和自动的选择以及要生成的示例数量。" width="689" height="383" data-path="langsmith/images/generate-synthetic-light.png" />

   <img className="hidden dark:block" src="https://mintcdn.com/other-405835d4/G7l9ZuXFPY6DQG2A/langsmith/images/generate-synthetic-dark.png?fit=max&auto=format&n=G7l9ZuXFPY6DQG2A&q=85&s=d00777493fe38d3d44cd79ec8c3a4d33" alt="AI 生成的示例配置窗口。手动和自动的选择以及要生成的示例数量。" width="674" height="361" data-path="langsmith/images/generate-synthetic-dark.png" />

5. 示例将出现在 **选择生成的示例** 页面上。选择要添加到数据集的示例，并可在最终确定前进行编辑。点击 **保存示例**。

6. 每个示例将根据您指定的数据集架构进行验证，并在源元数据中标记为 **合成**。

   <img className="block dark:hidden" src="https://mintcdn.com/other-405835d4/ozzEsp14Hd9jH9J-/langsmith/images/select-generated-examples-light.png?fit=max&auto=format&n=ozzEsp14Hd9jH9J-&q=85&s=6a652ea67237be55ce2d65670deca20b" alt="选择生成的示例页面，已选择生成的示例和保存示例按钮。" width="1781" height="856" data-path="langsmith/images/select-generated-examples-light.png" />

   <img className="hidden dark:block" src="https://mintcdn.com/other-405835d4/ozzEsp14Hd9jH9J-/langsmith/images/select-generated-examples-dark.png?fit=max&auto=format&n=ozzEsp14Hd9jH9J-&q=85&s=2a91cccdf41f13021fba07bb8d73af69" alt="选择生成的示例页面，已选择生成的示例和保存示例按钮。" width="1779" height="838" data-path="langsmith/images/select-generated-examples-dark.png" />

## 管理数据集

### 创建数据集架构

LangSmith 数据集存储任意 JSON 对象。我们建议（但不要求）您为数据集定义架构，以确保它们符合特定的 JSON 架构。数据集架构使用标准 [JSON 架构](https://json-schema.org/) 定义，并添加了一些 [预构建类型](/langsmith/dataset-json-types)，使消息和工具等常见原语的类型化更容易。

架构中的某些字段具有 **+ 转换** 选项。转换是预处理步骤，如果启用，会在您将示例添加到数据集时更新它们。例如，`转换为 OpenAI 消息` 转换会将类似消息的对象（如 LangChain 消息）转换为 OpenAI 消息格式。

有关可用转换的完整列表，请参阅 [数据集转换参考](/langsmith/dataset-transformations)。

<Note>
  如果您计划从 LangChain [ChatModels](/oss/python/langchain/models) 或使用 [LangSmith OpenAI 包装器](/langsmith/annotate-code) 的 OpenAI 调用中收集生产跟踪到数据集，我们提供了一个预构建的 Chat Model 架构，可将消息和工具转换为行业标准的 openai 格式，以便下游与任何模型一起用于测试。您还可以自定义模板设置以匹配您的用例。

  有关更多信息，请参阅 [数据集转换参考](/langsmith/dataset-transformations)。
</Note>

### 创建和管理数据集划分

有关何时以及为何使用划分的概述，请参阅 [数据集组织](/langsmith/evaluation-concepts#dataset-organization)。

要在 UI 中创建和管理划分：

1. 选择数据集中的示例。
2. 点击 **添加到划分**。
3. 从弹出的菜单中，您可以为所选示例选择和取消选择划分，或创建新划分。

<img src="https://mintcdn.com/other-405835d4/6Toz5fHjgEZXpscE/langsmith/images/add-to-split2.png?fit=max&auto=format&n=6Toz5fHjgEZXpscE&q=85&s=f723c6ba29f7ec32084c9456d84e1bd8" alt="添加到划分" width="1309" height="915" data-path="langsmith/images/add-to-split2.png" />

### 编辑示例元数据

要向示例添加元数据：

1. 点击一个示例，然后点击弹出窗口右上角的 **编辑**。
2. 在此页面上，更新或删除现有元数据，或添加新元数据。

您可以使用此功能存储有关示例的信息，例如标签或版本信息，然后在分析实验结果时可以 [按其分组](/langsmith/analyze-an-experiment#group-results-by-metadata)，或在 SDK 中调用 `list_examples` 时 [按其筛选](/langsmith/manage-datasets-programmatically#list-examples-by-metadata)。

### 筛选示例

您可以按划分、元数据键/值筛选示例，或对示例执行全文搜索。这些筛选选项位于示例表的左上角：

* **按划分筛选**：选择划分 > 选择要筛选的划分。
* **按元数据筛选**：筛选器 > 从下拉菜单中选择 **元数据** > 选择要筛选的元数据键和值。
* **全文搜索**：筛选器 > 从下拉菜单中选择 **全文** > 输入您的搜索条件。

您可以添加多个筛选器，只有满足所有筛选器的示例才会显示在表中。

<img src="https://mintcdn.com/other-405835d4/G7l9ZuXFPY6DQG2A/langsmith/images/filters-applied.png?fit=max&auto=format&n=G7l9ZuXFPY6DQG2A&q=85&s=cbce0000b3f946657026082edf0c5a91" alt="应用于示例的筛选器" width="1307" height="370" data-path="langsmith/images/filters-applied.png" />

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档连接](/use-these-docs) 到 Claude、VSCode 等，通过 MCP 获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/langsmith/manage-datasets-in-application.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
