AI 工具包概念
了解帮助你使用 AI 工具包的基本概念。
位置
位置允许你定位文档中的元素。它们以整数表示。
文档中的第一个位置是 0。文档中的最后一个位置等于文档内容的大小。
const position = 0
const lastPosition = editor.state.doc.content.size光标的位置可以通过编辑器状态的 selection 属性获取。
const position = editor.state.selection.head范围
范围是一对位置。它表示文档中的一个连续内容范围。
import { Range } from '@tiptap/core'
const range: Range = { from: 0, to: 100 }整个文档的范围是:
const range = { from: 0, to: editor.doc.content.size }你可以使用编辑器状态的 selection 属性获取选区范围。
const range = { from: editor.state.selection.from, to: editor.state.selection.to }你可以在特定的位置或范围插入或者读取内容。
const range: Range = { from: 0, to: 100 }
// 读取文档
editor.commands.tiptapRead({ range })
editor.commands.insertHtml(
'<p>AI 生成的内容</p>',
{
position: range,
}
)范围用于确定建议的位置。
建议
建议表示对文档的拟议更改。当 AI 对文档进行更改时,你可以将其显示为建议,以便用户可以审查并接受或拒绝。你可以在 Review UI 指南 中了解更多信息。
节点范围
节点范围是文档中一系列顶级节点的范围。
顶级节点是 doc 节点的直接子节点。
节点范围是一个包含两个属性的对象:
from(数字):范围内第一个节点的索引(包含)to(数字):范围内最后一个节点之后的索引(上界,不包含)
// 从第一个到第 100 个节点的范围
const nodeRange: NodeRange = { from: 0, to: 100 }整个文档的节点范围是:
const nodeRange = { from: 0, to: editor.state.doc.childCount }Tiptap 读取和 Tiptap 编辑
Tiptap 编辑是由 Tiptap 开发的一种格式,允许 AI 高效且准确地编辑文档。使用它,AI 可以快速进行细微、精确的编辑,而无需替换整个文档。它能将令牌使用量减少高达 95%。
Tiptap 编辑作为 AI 代理可使用的工具提供,也作为一个工作流程提供。
为了使 Tiptap 编辑生效,你需要先用 Tiptap 读取读取文档。Tiptap 读取作为 AI 代理可使用的工具提供,也作为一个工作流程提供。
const { content } = toolkit.tiptapRead()
toolkit.tiptapEdit({ content })