> ## 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.

# 合规性数据清除

本指南涵盖了数据到达 LangSmith Cloud 服务器后可用的各种功能，以帮助您实现隐私目标。

## 数据保留

LangSmith 提供自动数据保留功能，以协助合规性和存储管理。数据保留策略可在组织和项目级别进行配置。

有关数据保留配置和管理的详细信息，请参阅 [数据保留概念](/langsmith/administration-overview#data-retention) 文档。

## 自定义扩展保留策略

<Note>
  此功能适用于 [Enterprise](/langsmith/pricing-plans) 计划客户。对于 [自托管](/langsmith/self-hosted) Enterprise 客户，请参阅 [工作区级配置部分](#自托管的工作区级扩展保留)。
</Note>

[Enterprise](/langsmith/pricing-plans) 客户可以在 [工作区](/langsmith/administration-overview#workspaces) 级别自定义追踪的扩展数据保留期，以满足特定的合规性要求。默认情况下，扩展保留期设置为 400 天，但您可以根据组织需求进行调整。保留期的更改仅适用于新的追踪。

### 配置扩展保留

<Note>
  以下 UI 步骤需要 **组织管理员** 或 **组织操作员** 角色（`organization:manage` 权限）。工作区管理员也可以直接通过 API（`workspaces:manage` 权限）为其自己的工作区设置扩展保留时长。有关完整的权限参考，请参阅 [组织和工作区操作](/langsmith/organization-workspace-operations)。
</Note>

在 [LangSmith UI](https://smith.langchain.com) 中：

1. 导航到页面底部的 **设置**。
2. 从左侧菜单中选择 **使用配置**。
3. 在列表中找到您要配置的工作区。
4. 点击该工作区 **数据保留策略** 列下的值。
5. 在 **工作区使用配置** 模态框中，使用 **扩展 - 所有追踪保留** 选项的下拉菜单自定义扩展策略。
6. 选择 **保存**。

### 自托管的工作区级扩展保留

自托管的 [Enterprise](/langsmith/pricing-plans) 客户也可以使用工作区级扩展保留配置，而不是系统范围的 TTL 设置。这提供了对不同工作区数据保留的更精细控制，无需更改环境变量。

<Warning>
  如果您使用 blob 存储，您**必须**为每个配置的自定义保留期添加生命周期规则。例如，将工作区设置为 90 天保留意味着 blob 数据将写入 `ttl_90d/` 前缀，这需要匹配的生命周期规则才能自动清理。有关详细信息和示例，请参阅 [blob 存储 TTL 配置](/langsmith/self-host-blob-storage#custom-workspace-level-retention-prefixes)。
</Warning>

要为自托管部署配置此功能，请参阅 [自托管 TTL 文档](/langsmith/self-host-ttl) 了解旧版系统范围方法，或联系 [支持](https://support.langchain.com)。

## 追踪删除

您可以使用 API 完成追踪删除。API 支持两种删除追踪的方法：

1. **按追踪 ID 和会话 ID**：通过提供追踪 ID 列表及其对应的会话 ID 来删除特定追踪（每个请求最多 1000 个追踪）
2. **按元数据**：删除工作区中匹配任何指定元数据键值对的追踪

有关更多详细信息，请参阅 [API 规范](https://api.smith.langchain.com/redoc#tag/run/operation/delete_runs_api_v1_runs_delete_post)。

<Warning>
  所有追踪删除都将删除所有数据存储中相关的实体，如反馈、聚合和统计信息。
</Warning>

### 删除时间线

追踪删除在非高峰使用时段处理，并非即时完成。LangChain 在周末运行删除作业。没有删除确认——您需要再次查询数据以验证其已被移除。

### 删除特定追踪

要按追踪 ID 从单个会话中删除特定追踪：

<Note>
  `session_id` 是您要删除的追踪的项目 ID。您可以在 LangSmith UI 的追踪项目页面上找到它。
</Note>

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -X POST "https://api.smith.langchain.com/api/v1/runs/delete" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "trace_ids": ["trace-id-1", "trace-id-2", "trace-id-3"],
    "session_id": "session-id-1"
  }'
```

### 按元数据删除

按元数据删除时：

* 接受一个包含键/值对的 `metadata` 对象。键值对匹配使用 **或** 条件。如果追踪具有元数据中指定的**任何**键值对（而非全部），则该追踪将匹配
* 按元数据删除时无需指定会话 ID。删除将应用于整个工作区。

要基于元数据在工作区中删除追踪（匹配**任何**元数据键值对）：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -X POST "https://api.smith.langchain.com/api/v1/runs/delete" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "metadata": {
      "user_id": "user123",
      "environment": "staging"
    }
  }'
```

这将删除其元数据中具有 `user_id: "user123"` **或** `environment: "staging"` 的追踪。

<Warning>
  请记住，每个请求每个会话最多只能安排 1000 个追踪。对于更大的删除操作，您需要发出多个请求。
</Warning>

## 示例删除

您可以通过我们的 API 自助删除数据集示例，该 API 支持软删除和硬删除方法，具体取决于您的数据保留需求。

<Warning>
  硬删除将永久移除指定示例在所有数据集历史记录中的所有版本的输入、输出和元数据。
</Warning>

### 删除示例是一个两步过程

对于批量操作，示例删除遵循两步过程：

#### 1. 按元数据搜索示例

在工作区的所有数据集中查找具有匹配元数据的所有示例。

[GET /examples](https://api.smith.langchain.com/redoc#tag/examples/operation/read_examples_api_v1_examples_get)

* `as_of` 必须明确指定为时间戳。仅返回在 `as_of` 日期之前创建的示例

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -X GET "https://api.smith.langchain.com/api/v1/examples?as_of=2024-01-01T00:00:00Z" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "metadata": {
      "user_id": "user123",
      "environment": "staging"
    }
  }'
```

这将返回工作区所有数据集中元数据中具有 `user_id: "user123"` **或** `environment: "staging"` 的示例。

#### 2. 硬删除示例

获取示例 ID 后，发送删除请求。这将清零该示例数据集所有版本的输入、输出和元数据。

[POST /v1/platform/datasets/examples/delete/](https://api.smith.langchain.com/redoc?#tag/examples/paths/~1v1~1platform~1datasets~1examples~1delete/post)

* 在请求体中指定 `example_ids`（示例 ID 列表）和 `hard_delete`（布尔值）

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl -X POST "https://api.smith.langchain.com/v1/platform/datasets/examples/delete/" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "example_ids": ["example-id-1", "example-id-2", "example-id-3"],
    "hard_delete": true
  }'
```

### 删除类型

#### 软删除（默认）

* 在数据集中创建带有 NULL 输入/输出的墓碑条目
* 保留历史数据并维护数据集版本控制
* 仅影响数据集的当前版本

#### 硬删除

* 永久移除所有数据集版本的输入、输出和元数据
* 当合规性要求在所有版本中清零时，完全移除数据
* 在请求体中设置 `"hard_delete": true`

***

<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/data-purging-compliance.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
