开发文档Umo Editor NextAI 相关功能AI 智能建议

AI 智能建议

AI 智能建议是一种基于上下文的智能提示能力,用于在用户输入过程中实时预测并生成后续内容。它能够根据当前文本及光标位置,提供连续写作、智能提示或文本补全建议,帮助用户减少重复输入,提高编辑效率与写作流畅度。

AI 智能建议功能适用于 AI 写作、智能提示、代码补全、文本增强等场景。目前,AI 智能建议仅适用于文本类节点。

该功能支持单条或多条补全建议,用户可通过 Tab 键快速采纳补全内容;当存在多条候选建议时,可使用上下方向键在不同补全项之间切换。

效果截图

Umo Editor AI 智能建议

配置项示例

const defaultOptions = {
  // AI 智能建议相关配置
  ai: {
    suggestion: {
      enabled: false,
      async onSuggestion() {
        console.log(
          'Key "ai": Key "suggestion": Please set the ai.suggestion.onSuggestion method'
        )
      },
      waitTime: 1000,
    },
  },
}

配置项说明

ai.suggestion.enabled

说明:是否启用 AI 智能建议功能。

类型Boolean

默认值false

ai.suggestion.onSuggestion

说明:AI 智能建议的核心回调函数,用于根据当前文本上下文生成补全建议。

类型AsyncFunction,Promise

参数

  • params.text:当前节点完整的整文本内容,包含当前光标位置,用于精确告知 AI 智能建议的当前光标位置和上下文内容,适合 LLM 补全、上下文分析、续写判断等。当前光标位置用 ai.cursorMarker 中配置的占位符表示。
  • params.node:当前节点的 Markdown 内容。
  • params.document:整个文档的 Markdown 内容,包含当前光标位置,当前光标位置用 ai.cursorMarker 中配置的占位符表示。

返回值:建议的结果字符串 String 或数组 String[]

示例

async onSuggestion(text) {
  await new Promise((r) => setTimeout(r, 100))
 
  const suggestions = [
    '候选建议001',
    '候选建议002',
    '候选建议003',
    '候选建议004',
  ]
 
  // 返回单条候选建议
  // return suggestions[0]
 
  // 返回多条候选建议
  const index = text.length % suggestions.length
  return suggestions.slice(index, index + 3)
}

ai.suggestion.waitTime

说明:用户输入时触发 AI 智能建议的防抖时间,用于控制补全请求的触发频率,单位为毫秒。

类型Number

默认值1000

方法列表

方法的使用示例请参考:方法列表

enableAiSuggestion

说明:在编辑器已就绪且启用 AI 智能建议(ai.suggestion.enabledtrue)的情况下,开启 AI 智能建议功能。

参数:无

返回值Boolean | Error

disableAiSuggestion

说明:在编辑器已就绪且启用 AI 智能建议(ai.suggestion.enabledtrue)的情况下,关闭 AI 智能建议功能。

参数:无

返回值Boolean | Error

toggleAiSuggestion

说明:在编辑器已就绪且启用 AI 智能建议(ai.suggestion.enabledtrue)的情况下,切换 AI 智能建议功能的开启和关闭状态。

参数:无

返回值Boolean | Error