服务器评论

赋予您的 AI 代理读取、编写和编辑文档中评论的能力,完全在服务器端完成。

查看 GitHub 上的源码

继续阅读 AI 代理聊天机器人指南

本指南接续 AI 代理聊天机器人指南。请先阅读它。

启用评论工具

要启用评论工具,获取服务器 AI 工具包 API 的工具定义时,传递 getThreadseditThreads 选项。

import { getAuthHeaders } from '@/lib/server-ai-toolkit/get-auth-headers'

const response = await fetch(`${apiBaseUrl}/toolkit/tools`, {
  method: 'POST',
  headers: getAuthHeaders(),
  body: JSON.stringify({
    schemaAwarenessData,
    tools: {
      // 禁用 tiptap 编辑工具,使 AI 不能编辑文档,
      // 只能添加评论
      tiptapEdit: false,
      // 启用评论工具
      getThreads: true,
      editThreads: true,
    },
  }),
})

执行评论工具

评论工具需要一个 Tiptap Cloud 文档,因为线程和评论存储在 Tiptap 文档服务器上。使用 experimental_documentOptions 时,不需要传递 document 字段 —— AI 服务器会自动从文档服务器获取。

Request body

在请求体中包含 experimental_documentOptions

  • documentIdstring,必填):文档 ID
  • userIdstring,可选):创建评论的用户 ID。如果省略,则评论将不带用户归属创建。

可选包含 experimental_commentsOptions 以添加元数据:

  • threadData (Record<string, unknown>, 可选): 当由 editThreads 工具创建新线程时附加到新线程的元数据。
  • commentData (Record<string, unknown>, 可选): 当由 editThreads 工具创建新评论时附加到新评论的元数据。
const result = await fetch(`${apiBaseUrl}/toolkit/execute-tool`, {
  method: 'POST',
  headers: getAuthHeaders(),
  body: JSON.stringify({
    toolName: 'editThreads',
    input: {},
    schemaAwarenessData,
    sessionId,
    // 引用 Tiptap Cloud 文档
    experimental_documentOptions: {
      documentId: '123',
      userId: 'ai-assistant',
    },
    // 可选元数据
    experimental_commentsOptions: {
      threadData: { source: 'ai' },
      commentData: { source: 'ai' },
    },
  }),
})

最终效果

结果是一个简单但完善的 AI 聊天机器人应用:

查看 GitHub 上的源码

下一步