探索 Tiptap V3 的最新功能

审核 AI 变更

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

开始跟踪变更

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

editor.commands.startTrackingAiChanges()

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

最常见的用法是在生成 AI 内容之前立即调用 startTrackingAiChanges。这样可以捕获所有 AI 生成的变更以供审核。例如,您可以将其与 AI 生成扩展命令 链接使用:

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 参考 了解更多关于 AI 变更扩展命令的信息。