rime‑llm‑reranker,是专门面向macOS Apple Silicon ( M 系列芯片)+ 鼠须管 Squirrel开发的 Rime Lua 过滤器插件。它不会生成新词,而是调用本地部署的大模型,对 Rime 原生翻译器输出的候选列表做语义重排序( Rerank ),结合上文语境,把语义最贴合上下文的词语、成语优先置顶,改善 n‑gram 语法模型长文本语境理解不足的短板。
关键点:区别于 rimind 这类生成式 LLM 插件,本项目不产生全新候选,只对 Rime 已经召回出来的候选调整顺序;全部推理跑在本机,不需要调用第三方云端 API ,隐私性强。依托 oMLX 本地推理服务,利用 Apple Silicon 统一内存,做到毫秒级推理,尽量不干扰打字手感。
工作链路:用户输入拼音 → Rime 原生翻译器输出一批候选 → llm_reranker 过滤器把候选交给本地大模型打分 → 按照语义相关性重新调整候选顺序,返回给 Rime 候选栏。
工作流程
用户按键输入拼音
↓
Rime 主线程执行常规流程
├─ 翻译器生成原始候选
├─ simplifier 简繁转换
└─ llm_reranker (本插件过滤器)
├─ 防抖判断:拼音过短直接跳过重排,透传原始候选
├─ 命中本地缓存 → 直接返回上次排序结果
└─ luasocket 同步调用本地 oMLX 服务
↓
本地 LLM 依据上文语境对候选打分重排
↓
返回重新排好序的候选列表展示
- 性能说明:在 M 系列芯片配合小参数量中文模型,单次推理约 1ms , P99 小于 5ms ,低于普通人选词反应时间;设置 HTTP 超时,一旦模型响应超时,直接回退 Rime 原生排序,不会卡住输入。
- 缓存机制:同一串拼音会缓存重排结果,重复输入不会重复调用大模型,降低开销。
系统依赖环境
| 依赖项 | 说明 |
|---|---|
| 硬件 | Apple Silicon M1/M2/M3/M4 芯片 macOS; Intel 芯片不支持 MLX 推理,无法运行 |
| 输入法 | Squirrel 鼠须管 1.x 版本,内置 librime‑lua ;搭配雾凇拼音 / 朙月拼音效果最佳 |
| 推理后端 | oMLX 本地 LLM 推理服务,提供 OpenAI 兼容本地 HTTP 接口 |
| 网络库 | luasocket ,大幅降低 socket 通信延迟, brew 安装 |
| 模型 | 推荐 Qwen3.5‑0.8B‑MLX‑bf16 ,轻量高速;追求效果选用 Qwen3.5‑2B‑OptiQ‑4bit |
⚠️ 本插件仅支持 macOS Apple Silicon, Windows 、 Linux 平台无法使用。
四、配置参数详解
在方案对应的custom.yaml中修改llm_reranker配置块:
| 配置项 | 默认值 | 说明 |
|---|---|---|
enabled | true | 总开关, false 则完全关闭大模型重排,使用原生 n‑gram |
endpoint | http://localhost:8000/v1/chat/completions | oMLX 本地 API 地址 |
model | Qwen3.5‑0.8B‑MLX‑bf16 | oMLX 加载的模型名称,必须完全一致 |
max_candidates | 5 | 参与大模型重排序的候选数量 |
timeout | 0.5 | 请求超时时间,超时直接降级原始排序 |
min_preedit_len | 3 | 防抖,拼音字符小于该数值跳过重排 |
temperature | 0.0 | 模型温度, 0 代表确定性打分 |
debug_log | false | 调试日志开关,输出至~/Library/Rime/rime_llm.log |
繁体输入方案注意:繁体方案没有
simplifier简繁转换器,挂载过滤器时需要把@before 1修改为@before 0。
安装部署
- 安装 luasocket 依赖
brew install lua@5.4 luarocks
luarocks --lua-dir=/opt/homebrew/opt/lua@5.4 install luasocket
- 克隆仓库,执行安装脚本
chmod +x install.sh
./install.sh
脚本自动复制rime.lua、示例 custom 配置文件到~/Library/Rime。
- 编辑
luna_pinyin_simp.custom.yaml,修改model字段为你在 oMLX 中加载的模型名称,核对 endpoint 地址。 - 确认 oMLX 后台服务正常运行,已经加载对应 MLX 模型。
- 鼠须管菜单执行重新部署,即可启用。
调试查看日志
打开 debug_log 开关,终端实时追踪日志:
tail -f ~/Library/Rime/rime_llm.log
日志会记录缓存命中、推理耗时、请求失败降级等状态。
模型选型建议
| 模型 | 推理延迟 | 中文表现 | 适用场景 |
|---|---|---|---|
| Qwen3.5‑0.8B‑MLX‑bf16 | ~1ms | 良好 | 日常打字首选,兼顾速度与效果 |
| Qwen3.5‑0.8B‑8bit | ~1ms | 良好 | 内存紧张的设备使用 |
| Qwen3.5‑2B‑OptiQ‑4bit | ~5ms | 更好 | 长句写作,接受轻微延时 |
提示: 4bit/8bit 量化主要降低内存占用,不会显著提升推理速度,输入法场景优先选择参数量更小的模型。
