wang12312 downloads原生行内 AI 补全,支持灰字预览、分步接受和本地用量统计。Inline AI completion for Markdown notes.
Inline Predict provides context-aware AI autocomplete for Markdown notes in Obsidian, with inline suggestions, partial acceptance, and OpenAI-compatible providers.
在 Markdown 编辑器中,用灰色文字预览接下来可能要写的内容。按 Tab 接受,按 Esc 忽略,也可以只接受一个字词、一句或一行。
Inline Predict 专注于写作时的行内补全。你使用自己配置的 OpenAI-compatible 模型服务;插件负责选择触发时机、限制上下文、复用已有建议,并在本地记录用量。
当前版本:0.1.2 测试版,需 Obsidian 1.13.0 或更新版本。
如果使用发布附件,将 main.js、manifest.json、styles.css 放入:
你的仓库/.obsidian/plugins/inline-predict/
重新加载 Obsidian,在 设置 → 第三方插件 中启用 Inline Predict。
请从 GitHub Releases 下载上述独立附件。GitHub 自动生成的 Source code 压缩包是源码,不是可直接安装的插件包。
打开 设置 → Inline Predict → 模型,填写:
| 配置 | 填写方式 |
|---|---|
| API 地址 | OpenAI-compatible 服务的基础地址,例如 https://api.openai.com/v1;不包含 /chat/completions |
| API Key | 服务商提供的密钥;免密本地服务也需要填占位值,例如 local |
| 模型 ID | 服务商支持的具体模型 ID |
| 推理强度 | 默认不发送此参数;仅在服务商支持时设置,具体值以服务商说明为准 |
点击 测试连接,成功后回到笔记输入。连接测试只发送固定短提示,不包含笔记内容;显示的是一次完整请求的往返耗时,包含服务端处理时间。
模型配置改变会立即清除旧候选和缓存,旧请求的迟到响应不会再显示。没有配置密钥或模型时,不发送补全请求。
| 操作 | 效果 |
|---|---|
| 停顿输入 | 满足上下文条件时自动预测 |
| Tab | 接受全部灰字;无建议时保留原生行为 |
| Esc | 忽略建议;无建议时保留原生行为 |
| 命令:立即预测 | 手动预测,可为命令设置快捷键 |
| 命令:接受下一个字词 / 句子 / 行 | 只插入对应部分,保留剩余灰字 |
| 命令:切换行内预测 | 开关补全 |
自动预测默认开启,但不在每次按键时都请求模型。连续快速输入会延长等待;句尾、段落等边界会缩短等待。最近服务响应较慢时,也会适当增加等待时间。
默认至少有 2 个前文字符才考虑自动请求,普通笔记与临时缓冲区使用相同门槛。可在设置中调整该数值;已有配置会保留原来保存的值。使用“立即预测”命令可以绕过这个上下文门槛,但仍遵守总开关、输入法保护和错误退避。可以在 Obsidian 的快捷键设置中为该命令绑定按键。
如果只希望主动请求,在“补全”里关闭“自动预测”,保留补全总开关。
。!? 等结束符;不执行日语词法分析。连续输入与灰字相同的内容,会保留尚未输入的余文,不再请求模型。修改原始前后文、切换文件或更改模型配置后,旧建议会失效。
中文输入法组合输入期间隐藏灰字并暂停接受。移动端触控入口已经实现,但 iOS/Android 的键盘和触控行为尚未真机确认。
输出会先检查完成状态、重复、控制标记和长度。达到输出 Token 上限而被截断的文本,只在能保留完整边界时降级使用,否则不展示。
本地跑题检查仅针对较短的中文上下文与较长建议,主要检查汉字词面重合;纯假名、英文和较长上下文不在这条规则的完整覆盖范围内。启用“模型复核”时,可疑建议会再通过一次 YES/NO 请求判断,增加模型调用和等待时间。两项开关修改后立即生效。
没有建议可能是合理结果。模型没有合适续写、候选被过滤或上下文预算不足时,插件会保持安静。生成内容仍需要用户判断事实与措辞。
| 指标 | 含义 |
|---|---|
| 预测次数 | 已完成的逻辑预测,包含失败、取消和因编辑变化而过期的尝试 |
| 模型调用次数 | 实际调用适配器的次数,补全与相关性复核分别计数 |
| 调用失败 | 模型服务请求失败;主动取消不作为服务失败 |
| 输入 / 输出 Token | 已获得的供应商用量或明确标记的本地估算 |
| 用量未知 | 已调用但没有收到可用于统计的结果,例如超时或取消 |
| 缓存 / 前缀复用 | 使用已有建议的次数,不是新模型调用 |
| 接受率 | 被接受过的候选数 / 展示过的候选数;同一候选连续部分接受只计一次采纳 |
| 部分接受比例 | 部分接受操作在全部接受操作中的占比,与候选接受率不同 |
| 延迟 | 最近已完成、非失败预测的耗时分布;不包含自动触发前的等待 |
统计仅在当前插件会话内保留。过期结果不展示,但其已知用量仍会记入。取消请求无法保证服务商停止处理,未知用量也不等于零费用。存在未知用量时,不给出可能低估的总费用数字;当前设置界面尚无价格配置入口。
data.json 中。同步或分享 Obsidian 配置目录时请注意这一点。isDesktopOnly: false 表示代码遵循移动端约束,不是兼容性保证。连接正常,但没有灰字
检查补全总开关和自动预测开关。尝试在较长的测试笔记中手动预测。连接测试成功只说明短请求可用,不保证真实补全的上下文长度、输出上限和参数都合适。
经常超时或输出为空
检查模型和推理参数是否适合短续写。推理模型可能在生成可见文字前消耗输出额度;具体关闭方式以服务商文档为准。也可适当调整超时、输出上限和等待时间。
刚修改了模型,旧结果又出现
本版本会立即清缓存、隐藏旧候选并取消旧请求的展示资格。如仍可复现,请记录操作步骤、版本和本地诊断,不要提交 API Key。
如何测试日文
分别测试汉字假名混写与纯假名,并使用同一模型和相同触发方式。关注续写是否自然、是否保持文字形式,以及逐字/逐句接受是否顺手。当前没有“日文优于其他插件”的实测结论。
反馈问题时请附 Obsidian 版本、系统、编辑模式、模型服务和复现步骤。不要附 API Key 或私密笔记原文。
采用 MIT License。