AI 聊天助手
AI 聊天助手允许用户与 AI 助手进行实时交互,在文档编辑过程中获取智能建议和帮助。
效果截图
特点及优势
- 支持私有化部署,您可以通过私有化部署,实现数据的安全性和可控性;
- 相比于 AI 文档助手更友好的操作体验和非侵入式的聊天工具设计;
- 支持多轮对话,您可以在多轮对话中,获取更准确的智能建议;
- 支持自定义多个 AI 模型,您可以自定义多个 AI 模型,实现自定义 AI 模型的切换和使用;
- 支持推理模式,对于支持推理模式的 AI 模型,您可以配置推理模式,实现推理模式展示;
- 支持历史消息记录,您可以在聊天记录中查看历史消息,实现消息的查看和管理;
- 支持文件上传,您可以配置文件上传,实现向 AI 模型上传文件,以便于为 AI 模型提供更丰富的上下文信息。
默认配置
const systemPrompt = `**角色定位**
你是一个专业文档 AI 助手,具备以下核心能力:
1. 精准解析用户碎片化需求
2. 上下文敏感的内容整合
3. 多维度文档质量把控
4. Markdown语法专家级应用
**任务说明**
当前用户正在富文本编辑器(基于 Tiptap 和 ProseMirror 开发)中进行文档创作,你需要完成以下协同工作流程:
**输入分析阶段**
1. 深度理解用户提供的上下文片段:{context}
2. 通读当前完整文档:
\`\`\`html
{document}
\`\`\`
3. 确认目标语言要求:{lang}(需确保语法地道性)
4. 识别用户未明示的潜在需求:
- 格式一致性检查
- 逻辑连贯性增强
- 术语统一性维护
**输出规范**
请按以下标准生成内容:
▢ 格式标准:
- 严格使用基础Markdown语法,但不能将内容整个返回成代码块
- 标题层级不超过###
- 列表项采用标准符号
- 代码块标注语言类型
▢ 内容标准:
- 保持与现有文档风格统一
- 新增内容自然衔接上下文
- 重要信息优先呈现原则
- 技术文档需保持术语准确
**异常处理机制**
当遇到以下情况时:
1. 需求存在歧义
2. 上下文信息不足
3. 发现文档内在矛盾
请主动询问澄清:
"为确保输出质量,需要您确认以下细节:[具体问题] 请提供补充说明/示例/偏好要求"
**执行示例**
[用户需求] "在第三章添加数据可视化注意事项"
[AI响应]
1. 定位第三章现有内容
2. 分析文档中已有的图表规范
3. 生成符合整体风格的注意事项列表
4. 使用与前后文匹配的过渡语句
只需要返回结果,不要将结果放在代码块中,无需其他任何额外说明,除非用户要求,返回内容尽量不要太过复杂。
`
const welcomeMessage =
'欢迎使用 Umo Editor AI 聊天助手!有什么问题可以问我哦,我会尽力帮助您完成文档编辑工作。'
// AI 聊天助手相关配置
const defaultOptions = {
ai: {
chat: {
enabled: false,
layout: 'both',
showName: true,
showDatetime: true,
showAvatar: true,
commands: [
{
label: { en_US: 'Continuation', zh_CN: '续写', ru_RU: 'Продолжение' },
value: { en_US: 'Continuation', zh_CN: '续写', ru_RU: 'Продолжение' },
},
{
label: { en_US: 'Rewrite', zh_CN: '重写', ru_RU: 'Переписать' },
value: { en_US: 'Rewrite', zh_CN: '重写', ru_RU: 'Переписать' },
},
{
label: { en_US: 'Abbreviation', zh_CN: '缩写', ru_RU: 'Аббревиатура' },
value: { en_US: 'Abbreviation', zh_CN: '缩写', ru_RU: 'Аббревиатура' },
},
{
label: { en_US: 'Expansion', zh_CN: '扩写', ru_RU: 'Расширение' },
value: { en_US: 'Expansion', zh_CN: '扩写', ru_RU: 'Расширение' },
},
{
label: { en_US: 'Polish', zh_CN: '润色', ru_RU: 'Полировать' },
value: { en_US: 'Polish', zh_CN: '润色', ru_RU: 'Полировать' },
},
{
label: { en_US: 'Proofread', zh_CN: '校阅', ru_RU: 'Корректура' },
value: { en_US: 'Proofread', zh_CN: '校阅', ru_RU: 'Корректура' },
},
{
label: { en_US: 'Translate', zh_CN: '翻译', ru_RU: 'Перевести' },
value: {
en_US: 'Translate to chinese',
zh_CN: '翻译成英文',
ru_RU: 'Перевести на китайский',
},
},
],
models: [],
systemPrompt,
welcomeMessage,
maxHistory: 10,
async onGetHistory() {
},
async onChangeHistory(type, data) {
}
},
}
配置说明
ai.chat
AI 聊天助手相关配置,更多信息见AI 文档助手。
ai.chat.enabled
,Boolean,是否启用 AI 助手。ai.chat.layout
,String,AI 文档助手的消息布局方式,支持both
、single
两种布局方式,默认为both
。ai.chat.showName
,Boolean,是否显示消息名称,默认为true
。ai.chat.showDatetime
,Boolean,是否显示消息时间,默认为true
。ai.chat.showAvatar
,Boolean,是否显示消息头像,默认为true
。ai.chat.commands
,Array,常用指令,可参考AI 文档助手配置。。ai.chat.systemPrompt
, String,系统提示词,用于让 AI 更好地理解任务和角色。ai.chat.welcomeMessage
, String,欢迎消息,用于打开 AI 聊天助手时,显示欢迎信息,为空则不显示欢迎信息。ai.chat.maxHistory
, Number,AI 聊天助手的历史消息数量。ai.chat.onGetHistory
,AsyncFunction,获取历史消息的回调函数,可通过该回调从服务器端获取历史消息。ai.chat.onChangeHistory
,AsyncFunction,更新历史消息的回调函数,可通过该回调更新服务器端的历史消息,如删除、添加等。ai.chat.models
, Array,AI 助手的模型配置,支持多种模型,请至少配置一项,具体配置项见下表。
配置项 | 类型 | 描述 |
---|---|---|
isDefault | Boolean | 是否是默认模型 |
label | String | 模型名称,在消息列表中显示 |
value | String | 模型值,传递给的后端的实际值 |
avatar | URL | 模型头像的 URL,在消息列表中显示 |
provider | URL | AI 服务提供商,即 AI 模型所需要请求的接口地址 |
supportReason | Boolean | 该模型是否支持推理模式 |
file | Object | 上传文件配置,支持 accept 、multiple 、maxSize 、limit 等属性 |
示例:
[
// DeepSeek
{
label: 'DeepSeek-R1',
value: 'deepseek-reasoner',
avatar: '...',
isDefault: true,
// 本示例中使用 Umo Editor Server 来代理 AI 请求到其他 AI 服务提供商,您也可以自定义 provider
provider: 'http://127.0.0.1:1235/ai/deepseek/chat%2Fcompletions',
supportReason: true,
file: {
accept: '.docx,.doc,.xls,.xlsx,.txt', // 支持的文件类型
multiple: true, // 是否允许多选
maxSize: 1024 * 1024 * 5, // 单个文件最大大小
limit: 5, // 最多上传文件数量
},
},
// Moonshot AI
{
label: 'Moonshot AI',
value: 'moonshot-v1-8k',
avatar: kimiLogo,
provider: 'http://127.0.0.1:1235/ai/moonshot/chat%2Fcompletions',
},
]
方法列表
openAIChat
说明:打开 AI 聊天助手。
参数:无
返回值:无
closeAIChat
说明:关闭 AI 聊天助手。
参数:无
返回值:无