Skip to content

AI 对话

AI 对话指的是在菜单中,点击对话按钮,可以使用编辑内容与 AI 进行对话。其主要提供了 4 点能力:

  • 直接选择编辑器的内容,作为对话的上下文,进行持续对话。
  • 对话的 AI 内容,随时可以插入(或替换)到编辑器的指定位置。
  • 支持历史对话
  • 完善的功能配置

备注:当前功能只有在商业 Pro 版中提供,演示地址: http://pro.aieditor.com.cn

示例代码

ts
new AiEditorPro({
    element: "#aiEditor",
    chat:{
        systemPrompt: "你的名字叫 AIEditor 编辑助手,你擅长...",
        helloMessage: "欢迎使用 AIEditor 编辑助手,你可以...",
        localStorageKey: "aie-chat-messages",
        placeholder: "what's your question?",
        maxHeight: 600,
        maxAttachedMessageCount: 10,
        historyMessageTruncateEnable: false,
        historyMessageTruncateLength: 1000,
        historyMessageTruncateProcessor?: (message: string) => string,
        appendEditorSelectedContentEnable: true,
        appendEditorSelectedContentProcessor?: (userContent: string, selectedContent: string) => string,
        messagesToPayloadProcessor?: (messages: any, aiModel: AiModel) => string,
    },
})

配置说明

systemPrompt

systemPrompt 具有系统角色的消息充当模型的顶级指令,通常描述模型应该做什么以及它通常应该如何行为和响应。 当配置了 systemPrompt 时,每次消息都会携带 systemPrompt,如下代码所示:

json
{
  "model": "gpt-4o",
  "stream": true,
  "messages": [
    {
      "role": "system",
      "content": "你的名字叫 AIEditor 编辑助理,你擅长文字创作和内容优化。"
    },
    {
      "role": "user",
      "content": "你好"
    }
  ]
}

helloMessage

用于配置当用户第一次打开 AI 对话框时的欢迎消息。

localStorageKey

历史消息保存在 LocalStorage 的 key 值的定义,默认值为: aie-chat-messages

placeholder

设置输入框的 placeholder 属性

maxHeight

设置聊天窗口的最大高度

maxAttachedMessageCount

在携带历史对话中,最大携带的历史消息条数,默认值为:10。条数越多,消耗的 token 越多。

historyMessageTruncateEnable

是否开启历史消息截断,默认值为: false

在 AI 响应的消息中,可能会有一些消息内容特别的长,如果我们把这些长消息提交给 AI,可能会消耗大量的 Token, 我们可以只截取一部分的内容进行提交,而非完整的内容。

historyMessageTruncateLength

截取内容的长度,默认值为:1000。当配置 historyMessageTruncateEnable: true 时,此配置才有效。

historyMessageTruncateProcessor

自定义历史消息截取处理器,此项配置后,historyMessageTruncateLength 的配置会失效。

在 AI 历史对话压缩策略中,除了对内容进行截取以外,还有 摘要法关键词提取 等多种策略,都可以通过自定义配置 historyMessageTruncateProcessor 进行实现。

appendEditorSelectedContentEnable

在消息对话中,是否自动追加编辑器选中的文本内容,默认值为:true

appendEditorSelectedContentProcessor

自定义 用户消息编辑器选择内容 的处理器,默认代码如下:

ts
appendEditorSelectedContentProcessor = (userContent, selectedContent)=>{
    return `${userContent}\n${selectedContent}`
}

messagesToPayloadProcessor

此配置用于把历史消息内容转换为 payload ,充当 AI 请求的 body 内容,只有在自定义大模型时用到。