Joplin AI 聊天面板实战指南:在笔记编辑器侧栏中提问、改写与自动编辑

📅 发布时间:2026/9/15 12:09:24
Joplin AI 聊天面板实战指南:在笔记编辑器侧栏中提问、改写与自动编辑
Joplin AI 聊天面板实战指南在笔记编辑器侧栏中提问、改写与自动编辑【免费下载链接】joplinJoplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.项目地址: https://gitcode.com/GitHub_Trending/jo/joplinAI 聊天面板AI chat panel是 Joplin 桌面版内置在笔记编辑器右侧的一条侧栏它围绕你正在编辑的当前笔记工作既能回答关于笔记内容的问题也能直接按你的要求修改笔记正文。阅读本文后你将掌握面板的开启方式、提问与改写技巧、基于选区的精准工作流、跨笔记持续对话的机制以及它的隐私边界与当前版本限制。前置条件面板依赖 AI Chat 底层配置聊天面板本身不自带模型它是构建在 AI chat 功能之上的——只要你在设置中把 AI Chat 配置好面板就会自动可用无需额外设置。底层需要满足的核心条件由 availability.ts 中的chatAvailability()逐项检查开启 AI 功能设置项ai.enabled必须为真否则面板显示AI features are disabled提示配置聊天提供商ai.chat.providerType支持joplin-cloudJoplin Cloud AI零配置复用同步凭据、openai-compatibleOpenAI、Ollama、LM Studio、OpenVRouter、vLLM 等、anthropicClaude 直连补全关键参数OpenAI 兼容提供商需要ai.chat.baseUrl与模型名ai.chat.model远程端点还需要ai.chat.apiKeyAnthropic 需要ai.chat.apiKey与ai.chat.model远程提供商开关ai.allowRemote关闭时任何把数据发送到设备之外的远程端点都会被拒绝本机localhost/127.0.0.1及私有局域网地址不受此限制。如果你使用的是 Joplin Cloud AI还需要当前同步目标确实是 Joplin Cloud否则chatAvailability()会报joplin-cloud-without-sync。这些前置条件的具体含义与配置步骤详见 AI chat 配置文档。打开面板的三种方式原文档给出了三种打开方式均已在源码中得到印证点击笔记工具栏上的聊天图标编辑器右上角。该图标由 NoteToolbar.tsx 渲染底层调用的是toggleAiChat命令只有当「设置 → AI」中的 Enable AI features 打开时这个图标才会出现。快捷键macOS 按CmdShiftILinux / Windows 按CtrlAltI。该命令在 toggleAiChat.ts 中注册通过向chatPanel布局项写入WINDOW_LAYOUT_SET_ITEM_PROP来切换可见性。拖拽右边缘调整宽度面板和其他 Joplin 面板一样属于可调整布局宽度与可见性状态会跨会话记住。面板默认出现在编辑器右侧。输入框在发送状态下会从Send变为Stop generating对应代码中的AbortController取消机制见 ChatPanel.tsx 的useCancelCallback。验证提示仓库的集成测试模型 ChatPanel.ts 展示了面板的可访问性结构——区域roleregion名称为 AI Chat输入框roletextbox名称为 Chat message并且测试通过toggleAiChat命令开合面板。询问当前笔记整篇笔记作为上下文在输入框中输入问题并按Enter或点击发送按钮即可。原文档给出的示例Summarise this in three bullet points.用三个要点概括这篇笔记What is this note saying about pricing?这篇笔记关于定价说了什么Are there any open questions I havent answered?还有哪些我没有回答的开放问题从实现上看发送时会通过selectedText命令获取当前选区并读取当前笔记的标题与正文构造NoteContext交给 noteChat.ts 中的runNoteChat()。整篇笔记正文会被发送给模型所以要注意笔记过大时请求会被拒绝而不是截断发送。noteChat.ts中定义了noteBodyTokenBudget 80000token 的预算系统提示 历史 当前轮次超过时会抛出aiNoteTooLarge错误并提示你改用选区提问token 估算采用Math.ceil(文本长度 / 4)的近似方式charsPerToken 4同一对话内历史消息会持续累积随着轮次增长也会逐渐逼近预算上限。请求修改笔记编辑自动落盘、可撤销除了提问你还可以直接要求修改笔记本身原文档给出的示例Rewrite this paragraph in a more formal tone.用更正式的语气重写这段Add a heading above this and a one-line summary below it.在它上方加标题、下方加一行摘要Fix the typos.修正拼写错误Add a short paragraph about how bees navigate.添加一段关于蜜蜂如何导航的短文模型在聊天中给出简短回复后会通过内置工具把编辑直接应用到笔记正文助手回复下方会显示本次应用了多少处编辑。这些编辑走的是正常编辑器撤销栈因此用Ctrl/CmdZ即可逐条撤销。实现层面值得说明几点模型通过editor_前缀的工具完成编辑见 buildEditorTools.ts 的isEditorToolCall()例如editor_replaceSelection、editor_readNoteBody等每次新对话首次发送时系统提示中会预置一次editor_readNoteBody工具调用让模型先拿到笔记正文省去一次往返见noteChat.ts的createHistory()编辑通过replaceSelection与updateNoteBody两个回调写回编辑器editor.setText命令并借助waitForNextNoteChangeOrTimeout等待编辑事件确认如果模型引用的锚点文本在你发送后已经被你改过对应编辑会被标记失败并跳过聊天里会显示跳过了多少处你可以让模型重试或手动修改如果请求运行期间你切换了笔记编辑不会被应用到错误的笔记上——assertSameNote()会中止整个请求并提示重试工具调用连续失败超过 4 次后runNoteChat会禁用工具以避免死循环runsWithFailedTools 5判断。基于选区工作长笔记的推荐姿势要把请求范围限定到笔记的某一部分先选中对应文本再发送消息即可。原文档示例选中一句话问reword this改写这句选中一段代码块问add comments加上注释选中一个标题问add a short intro paragraph below在下方加一段简短的引言。当存在选区时模型只能看到选区内容笔记其余部分不会被发送系统提示也会声明将工作范围限定到该选区。这是处理长笔记的推荐方式——既控制 token 消耗也避免大笔记触发预算上限。跨笔记持续对话与切换笔记对话在笔记之间切换时保持打开sticky conversation切换笔记后聊天中会出现一条分隔标记— now viewing: 新笔记名 —提示上下文已经转移。实现上ChatPanel.tsx监听当前noteId的变化插入一条role: separator消息并且模型在每个新消息中都被告知当前活动笔记绝不会沿用之前的笔记——assertSameNote()与noteIdRef保证了这一点。这意味着你可以在一本笔记本的多篇相关笔记之间连续工作保持同一个对话不中断。Reset面板头部有 Reset 按钮点击后通过AI_CHAT_RESETaction 清空当前对话见 app.reducer.ts同时会取消进行中的请求关闭再打开面板对话保留重启 Joplin对话清空——对话只保存在内存中Redux 的aiChatMessages不落盘。隐私边界隐私方面原文档明确了几点面板只发送当前打开的笔记或你在其中的选区永远不会读取或发送其他任何笔记——上下文构造只包含当前笔记的body、title、id与folderId首次向远程提供商除 Joplin Cloud AI 之外的任何提供商发送消息时会弹出一条一次性提示告知你的笔记将被发送到哪个提供商可点击Dont show again关闭。实现上由ai.chat.disclosureAcknowledged设置项控制且requiresDisclosure判断明确豁免了joplin-cloud用户已在同步环节授权加密笔记不能使用面板当noteIsEncryptedencryption_applied为真时面板直接显示该笔记已加密无法用于 AI Chat不会发送任何内容底层还有ai.allowRemote这一独立开关兜底远程提供商未开启该开关时AI 调用会直接失败并给出明确错误详见 availability.ts 与 AI chat 文档 中的本地/远程说明。当前版本的已知限制原文档列出五项限制均属事实仅支持 Markdown 编辑器富文本所见即所得编辑器尚不支持面板的自动编辑无流式输出长回复会在模型生成完毕后一次性显示而非逐字流式出现重启后无对话历史对话仅在 Joplin 运行期间保留不保存到磁盘无跨笔记上下文聊天不会自动引入其他笔记的内容如需在整个笔记库中做语义检索请使用 Semantic search语义搜索超大笔记受限超过模型上下文窗口的笔记无法整体发送请选中相关片段后再提问。综上AI 聊天面板的完整链路是设置中配置好 AI Chat 提供商 → 面板自动可用 → 围绕当前笔记或选区进行提问/编辑 → 编辑结果通过editor_工具与正常撤销栈落回编辑器。理解 noteChat.ts 与 ChatPanel.tsx 这两处核心实现即可掌握面板全部行为背后的机制。【免费下载链接】joplinJoplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.项目地址: https://gitcode.com/GitHub_Trending/jo/joplin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考