AI 对话
AI 对话指的是在菜单中,点击对话按钮,可以使用编辑内容与 AI 进行对话。其主要提供了 4 点能力:
- 直接选择编辑器的内容,作为对话的上下文,进行持续对话。
- 对话的 AI 内容,随时可以插入(或替换)到编辑器的指定位置。
- 支持历史对话
- 完善的功能配置
备注:当前功能只有在商业 Pro 版中提供,演示地址: http://pro.aieditor.com.cn
示例代码
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
,如下代码所示:
{
"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
自定义 用户消息
和 编辑器选择内容
的处理器,默认代码如下:
appendEditorSelectedContentProcessor = (userContent, selectedContent)=>{
return `${userContent}\n${selectedContent}`
}
messagesToPayloadProcessor
此配置用于把历史消息内容转换为 payload ,充当 AI 请求的 body 内容,只有在自定义大模型时用到。