编辑器上下文
在使用 Server AI Toolkit API 之前,你需要从你的 Tiptap 编辑器中获取编辑器上下文数据。
getEditorContext 函数会从你的 Tiptap 编辑器中检索 schema 信息,并将其转换为适合 Server AI Toolkit API 的格式。该数据描述了文档结构,并帮助 AI 理解哪些内容是有效的。
getEditorContext
返回描述 Server AI Toolkit API 文档结构的编辑器上下文数据。
此函数会收集来自扩展的 schema 信息,并将其转换为适合 AI 模型消费的格式。返回的数据会被 Server AI Toolkit API 用于理解文档中哪些内容是有效的。
已弃用的别名
getSchemaAwarenessData 仍可用于向后兼容,但它已被弃用。对于新的集成,请使用
getEditorContext。
存储编辑器上下文数据
getEditorContext 返回的编辑器上下文数据是一个可 JSON 序列化的对象,你可以将它
存储到数据库中。你不需要每次都生成它——只需在你的编辑器扩展或 schema 发生变化时更新它。
请参阅 自定义节点指南 中的使用示例。
参数
editor (Editor)
要从中提取编辑器上下文数据的 Tiptap 编辑器实例。
options? (GetEditorContextOptions)
编辑器上下文的配置选项:
customNodes?(JsonItem[]): 除默认项之外要包含的自定义编辑器上下文项。这允许通过自定义节点类型或对现有节点定义的修改来扩展 schema 信息,以供 AI 模型消费。默认值:[]。
每个 JsonItem 对象都包含以下属性:
extensionName(string): 提供此元素的扩展名称name(string): 该元素的英文人类可读名称description?(string): 对该元素是什么以及如何显示的说明isMark?(boolean): 此项是否为 mark(而不是 node)attributes?(Record<string, unknown>): 该元素可能具有的属性,使用 Zod schema 定义,并将转换为 JSON schema
返回值
EditorContext: 描述文档结构的编辑器上下文数据。此数据会传递给 Server AI Toolkit API 端点。
示例
import { Editor } from '@tiptap/core'
import StarterKit from '@tiptap/starter-kit'
import { getEditorContext, ServerAiToolkit } from '@tiptap/server-ai-toolkit'
const editor = new Editor({
extensions: [StarterKit, ServerAiToolkit],
})
// 获取编辑器上下文数据
const editorContext = getEditorContext(editor)
// 与 Server AI Toolkit API 一起使用
const response = await fetch('https://api.tiptap.dev/v3/ai/toolkit/tools', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${API_TOKEN}`,
},
body: JSON.stringify({
editorContext,
}),
})