审核 AI 变更

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

开始跟踪变更

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

editor.commands.startTrackingAiChanges()

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

最常见的模式是在生成 AI 内容之前立即调用 startTrackingAiChanges。这使您能够捕获所有 AI 生成的更改以供审阅。例如,您可以将其与 Basic AI Generation 扩展命令 链式调用:

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

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

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

这将返回一个表示之前文档的 Prosemirror Node 对象

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

editor.commands.startTrackingAiChanges(previousDoc)

访问变更数据

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

  • getChanges: 返回自上次调用 startTrackingAiChanges 以来对文档所做的所有更改列表。
  • getSelectedChange: 返回当前选中的更改。当光标位于某个更改上方时,该更改会被选中。
  • getIsTrackingAiChanges: 返回一个布尔值,表示编辑器当前是否正在跟踪 AI 更改。
  • getIsShowingAiChanges: 返回一个布尔值,表示编辑器当前是否正在显示 AI 更改。AI 更改可通过 setShowAiChanges 命令临时隐藏
  • getPreviousDoc: 返回 AI 修改之前的上一个文档。如果扩展当前未在跟踪更改,则该值为 null

要了解如何使用这些方法在编辑器中显示更改,请参阅显示 AI 更改指南。

接受和拒绝变更

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

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

editor.commands.acceptAiChange(changeId)

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

editor.commands.rejectAiChange(changeId)

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

editor.commands.acceptAllAiChanges()

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

editor.commands.rejectAllAiChanges()

停止跟踪变更

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

editor.commands.stopTrackingAiChanges()

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

您可以在 API Reference 中了解有关 AI Changes 扩展命令的更多信息。