---
title: "审核 AI 变更"
description: "在富文本编辑器中审核、接受或拒绝 AI 生成的内容。"
canonical_url: "https://tiptap.zhcndoc.com/ai/deprecated/changes/features/review-changes"
---

# 审核 AI 变更

在富文本编辑器中审核、接受或拒绝 AI 生成的内容。

通过 AI 变更扩展，您可以引入 AI 生成内容的审核工作流程，使用户能够纠正和批准 AI 所做的更改。

## 开始跟踪变更

要开始跟踪变更，请使用 `startTrackingAiChanges` 命令。

```ts
editor.commands.startTrackingAiChanges()
```

此命令会创建编辑器内容在执行命令时的快照。从此刻起，所有对文档的新更改都会与该快照进行比较，并在编辑器中显示。

最常见的模式是在生成 AI 内容之前立即调用 `startTrackingAiChanges`。这使您能够捕获所有 AI 生成的更改以供审阅。例如，您可以将其与 [Basic AI Generation 扩展命令](https://tiptap.zhcndoc.com/ai/basic/text-generation/built-in-commands.md) 链式调用：

```ts
editor
  .chain()
  .startTrackingAiChanges()
  .aiTextPrompt({ text: '写一篇关于 Tiptap 的博客文章' })
  .run()
```

您可以通过扩展的存储对象的 `getPreviousDoc` 方法访问之前文档的快照：

```ts
const storage = editor.extensionStorage.aiChanges
const previousDoc = storage.getPreviousDoc()
```

这将返回一个表示之前文档的 [Prosemirror Node 对象](https://prosemirror.net/docs/ref/#model.Node)。

调用 `startTrackingAiChanges` 命令时，您还可以提供一个可选的之前文档。这在您想将新变更与编辑器中当前文档以外的其他文档进行比较时非常有用。

```ts
editor.commands.startTrackingAiChanges(previousDoc)
```

## 访问变更数据

AI 变更扩展提供了几个扩展存储方法来检索跟踪的变更：

- `getChanges`: 返回自上次调用 `startTrackingAiChanges` 以来对文档所做的所有更改列表。
- `getSelectedChange`: 返回当前选中的更改。当光标位于某个更改上方时，该更改会被选中。
- `getIsTrackingAiChanges`: 返回一个布尔值，表示编辑器当前是否正在跟踪 AI 更改。
- `getIsShowingAiChanges`: 返回一个布尔值，表示编辑器当前是否正在显示 AI 更改。AI 更改可通过 `setShowAiChanges` 命令[临时隐藏](https://tiptap.zhcndoc.com/ai/deprecated/changes/features/display-changes.md#hide-and-show-changes)。
- `getPreviousDoc`: 返回 AI 修改之前的上一个文档。如果扩展当前未在跟踪更改，则该值为 `null`。

要了解如何使用这些方法在编辑器中显示更改，请参阅[显示 AI 更改](https://tiptap.zhcndoc.com/ai/deprecated/changes/features/display-changes.md)指南。

## 接受和拒绝变更

AI 变更扩展提供了多个命令来审核变更。

要接受某个变更，请调用 `acceptAiChange` 命令。此操作会修改之前文档的快照以包含该变更。

```ts
editor.commands.acceptAiChange(changeId)
```

要拒绝某个变更，请调用 `rejectAiChange` 命令。此操作会将编辑器中该变更范围内的内容修改为之前文档的内容。

```ts
editor.commands.rejectAiChange(changeId)
```

要接受所有 AI 变更，使用 `acceptAllAiChanges` 命令。

```ts
editor.commands.acceptAllAiChanges()
```

要拒绝所有 AI 变更，使用 `rejectAllAiChanges` 命令。

```ts
editor.commands.rejectAllAiChanges()
```

## 停止跟踪变更

最后，要停止跟踪 AI 变更，请执行 `stopTrackingAiChanges` 命令。此操作会删除之前文档的快照，并停止跟踪变更。

```ts
editor.commands.stopTrackingAiChanges()
```

之前文档的快照将被设置为 `null`，编辑器将不再显示 AI 所做的变更。

您可以在 [API Reference](https://tiptap.zhcndoc.com/ai/deprecated/changes/api-reference.md) 中了解有关 AI Changes 扩展命令的更多信息。
