主题
在 UI 中创建和管理数据集
数据集让你能够用一致的数据随时间执行可复现的评估。数据集由示例组成,示例存储输入、输出,以及可选的参考输出。
创建数据集并添加示例
下面的小节解释你可以在 LangSmith 中创建数据集并向其添加示例的不同方式。根据你的工作流,你可以人工精选示例、从追踪自动捕获它们、导入文件,甚至生成合成数据:
从追踪项目手动
构建数据集的一种常见模式,是把应用中值得关注的追踪转换为数据集示例。这一方法要求你已配置了到 LangSmith 的追踪。
TIP
一种构建数据集的技巧是,过滤出最有趣的追踪,例如被打了较差用户反馈标签的追踪,并把它们添加到数据集。有关如何过滤追踪的技巧,参阅过滤追踪指南。
从追踪项目手动向数据集添加数据有三种方式。导航到 Tracing Projects 并选择一个项目。
- 从运行表格中多选运行。在 Runs 标签上,多选运行。在页面底部,点击
Add to Dataset。
在 Runs 标签上,从表格中选择一个运行。在单条运行详情页上,在右上角选择 Add to -> Dataset。
当你在运行详情页选择一个数据集时,会弹出一个模态框,告诉你是否应用了任何转换,或 schema 校验是否失败。
然后你可以在把它添加到数据集之前,选择性地编辑该运行。
从线程表格中多选线程。在 Threads 标签上,多选线程。在页面底部,点击
Add to Dataset。单个操作最多可添加 100 个线程。
要把线程改发到一个新数据集,在数据集选择器中点击 New Dataset。此面板仅从零开始创建数据集,不提供 schema 编辑器。
向数据集添加线程与添加运行不同:
- 每线程一个示例:每个线程的完整对话被保存为一个示例。当你从某线程添加运行时,每个运行成为一个单独的示例。
- 无参考输出:线程示例只把对话作为输入包含。它们不含参考输出。
从追踪项目自动
用自动化规则,当追踪满足指定条件时自动把它们添加到数据集。例如,添加那些为特定用例打了标签或有低反馈分数的追踪。
一条规则的 item type 控制它添加什么。一条 Runs item type 的规则,为每条匹配的追踪添加一个示例。一条 Threads item type 的规则,会等待对话变为空闲,然后为每个匹配的线程添加一个示例。
从标注队列中的示例
TIP
如果你依赖领域专家来构建有意义的数据集,用标注队列为审阅者提供一个精简的视图。人工审阅者可以在一条追踪被添加到数据集之前,选择性地修改它的输入/输出/参考输出。
你可以为标注队列中的运行项设置一个默认数据集。线程项不支持默认数据集。要把一个运行或线程添加到一个不同的数据集,用数据集切换器。选择一个数据集后,点击 Add to Dataset 或按 D。一个运行项添加该运行,一个线程项把完整对话作为一个示例添加。
你在标注队列中对一个运行所做的更改,包括其元数据,会被复制到数据集。你无法编辑线程项。它们按被追踪时的样子添加。
NOTE
默认数据集对线程项不可用。
TIP
用自动化规则把满足特定条件的运行或线程添加到一个标注队列。
从 Playground
在 Playground 页面上:
选择 Set up Evaluation。
如果你在开始一个新数据集就点击 +New,或从一个现有数据集中选择。
NOTE
在 Playground 中内联创建数据集,不支持带嵌套键的数据集。要添加/编辑带嵌套键的示例,你必须从数据集页面编辑。
编辑示例:
- 用 +Row 向数据集添加一个新示例。
- 用表格右侧的 ⋮ 下拉菜单删除一个示例。
- 如果你在创建一个无参考的数据集,用该列中的 x 按钮移除 Reference Output 列。注意此操作不可逆。
从 CSV 或 JSONL 文件导入数据集
在 Datasets & Experiments 页面,点击 +New Dataset,然后从 CSV 或 JSONL 文件 Import 一个现有数据集。
从数据集与实验页面创建一个新数据集
- 从左侧菜单导航到 Datasets & Experiments 页面。
- 点击 + New Dataset。
- 在 New Dataset 页面上,选择 Create from scratch 标签。
- 为数据集添加一个名称和描述。
- (可选)创建一个数据集 schema 来校验你的数据集。
- 点击 Create,它会创建一个空数据集。
- 要内联添加示例,在数据集的页面上,进入 Examples 标签。点击 + Example。
- 用 JSON 定义示例并点击 Submit。有关数据集拆分的更多详情,参阅创建和管理数据集拆分。
添加由 LLM 创建的合成示例
如果你已有示例,且在你的数据集上定义了schema,当你点击 + Example 时会有一个选项
Add AI-Generated Examples。这会用一个 LLM 创建合成的示例。
在 Generate examples 中,执行以下操作:
点击面板右上角的 API Key,把你的 OpenAI API 密钥设为工作区机密。如果你的工作区已设置了 OpenAI API 密钥,你可以跳过此步。
选择
few-shot 示例
:切换 Automatic 或 Manual 参考示例。你可以从你的数据集中手动选择这些示例,或使用自动选择选项。
输入你想生成的合成示例数量。
点击 Generate。


这些示例会出现在 Select generated examples 页面上。选择要把哪些示例添加到你的数据集,并可选择在最终确定前编辑它们。点击 Save Examples。
每个示例都会针对你指定的数据集 schema 被校验,并在来源元数据中被标记为 synthetic。


管理数据集
创建数据集 schema
LangSmith 数据集存储任意 JSON 对象。我们建议(但不强制)你为数据集定义一个 schema,以确保它们符合一个特定的 JSON schema。数据集 schema 用标准 JSON schema 定义,并额外增加了几个预构建类型,使对消息和工具之类常见原始类型做类型标注更容易。
你 schema 中的某些字段有一个 + Transformations 选项。转换是预处理步骤,若启用,会在你把示例添加到数据集时更新它们。例如,convert to OpenAI messages 转换会把像 LangChain 消息这样的类消息对象,转换为 OpenAI 消息格式。
可用转换的完整列表,参阅数据集转换参考。
NOTE
如果你打算从 LangChain ChatModel、或从用 LangSmith OpenAI wrapper 的 OpenAI 调用,在你的数据集中收集生产追踪,我们提供一个预构建的 Chat Model schema,把消息和工具转换为行业标准 openai 格式,可在下游用于任何模型做测试。你也可以定制模板设置以匹配你的用例。
更多信息请参阅数据集转换参考。
创建和管理数据集拆分
有关何时以及为何使用拆分的概览,参阅数据集组织。
要在 UI 中创建和管理拆分:
- 在你的数据集中选择示例。
- 点击 Add to Split。
- 从弹出的菜单中,你可以为所选示例选择和取消选择拆分,或创建一个新拆分。

编辑示例元数据
要向你的示例添加元数据:
- 点击一个示例,然后点击弹出框右上角的 Edit。
- 从这个页面,更新或删除现有元数据,或添加新元数据。
你可以用它来存储关于你示例的信息,例如标签或版本信息,之后你在分析实验结果时可以按元数据分组,或在 SDK 中调用 list_examples 时按元数据过滤。
过滤示例
你可以按拆分、元数据键/值过滤示例,或对示例做全文搜索。这些过滤选项在示例表格的左上方可用:
- 按拆分过滤:选择 Split > 选择要按其过滤的拆分。
- 按元数据过滤:Filters > 从下拉菜单选择 Metadata > 选择要按其过滤的元数据键和值。
- 全文搜索:Filters > 从下拉菜单选择 Full Text > 输入你的搜索条件。
你可以添加多个过滤器,且只有满足所有过滤器的示例才会显示在表格中。
