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配置块:

配置项默认值说明
enabledtrue总开关, false 则完全关闭大模型重排,使用原生 n‑gram
endpointhttp://localhost:8000/v1/chat/completionsoMLX 本地 API 地址
modelQwen3.5‑0.8B‑MLX‑bf16oMLX 加载的模型名称,必须完全一致
max_candidates5参与大模型重排序的候选数量
timeout0.5请求超时时间,超时直接降级原始排序
min_preedit_len3防抖,拼音字符小于该数值跳过重排
temperature0.0模型温度, 0 代表确定性打分
debug_logfalse调试日志开关,输出至~/Library/Rime/rime_llm.log

繁体输入方案注意:繁体方案没有simplifier简繁转换器,挂载过滤器时需要把@before 1修改为@before 0

安装部署

  1. 安装 luasocket 依赖
brew install lua@5.4 luarocks
luarocks --lua-dir=/opt/homebrew/opt/lua@5.4 install luasocket
  1. 克隆仓库,执行安装脚本
chmod +x install.sh
./install.sh

脚本自动复制rime.lua、示例 custom 配置文件到~/Library/Rime

  1. 编辑luna_pinyin_simp.custom.yaml,修改model字段为你在 oMLX 中加载的模型名称,核对 endpoint 地址。
  2. 确认 oMLX 后台服务正常运行,已经加载对应 MLX 模型。
  3. 鼠须管菜单执行重新部署,即可启用。

调试查看日志

打开 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 量化主要降低内存占用,不会显著提升推理速度,输入法场景优先选择参数量更小的模型。