Wisdom-Weasel 基于小狼毫(Weasel)继续演进,固定拆分为三层能力:
- 万象拼音:词库、语法模型、长句能力、Rime 方案层
- Alpha 重排:有拼音输入时的候选实时排序
- LLM 预测:无拼音预测、多后端推理、上下文联想
scukeqi/Wisdom-Weasel 的绝大部分代码已经被重写,目标是把三层职责彻底分开,避免方案层、排序层、预测层继续互相耦合。
拼音输入
-> 万象拼音生成候选
-> Alpha filter 对前部候选池实时重排
-> 长拼音输入时叠加输入覆盖先验,减少短词上浮
最近上下文
-> LLM provider
-> 先给一个短结果
-> 再补一个短语
-> 再补一个长句
当前主要方案:
wanxiangwanxiang_pro
三层职责固定为:
- 万象:方案层 / 长句语法层
- Alpha:候选排序层
- LLM:你自己的预测层
三者不再混用。
发行版现在只保留下面几类正式资产:
Wisdom-Weasel-installer-<version>.exeWisdom-Weasel-bootstrap-<version>.zipWisdom-Weasel-runtime-<version>.zip
构建脚本还会额外生成一个清单文件:
Wisdom-Weasel-release-assets-<version>.txt
这个清单文件只用于提醒维护者“应该上传哪 3 个正式资产”。
Release 不再包含任何 Alpha 模型资产,也不应该再上传:
Wisdom-Weasel-model-*- 原始 Hugging Face 模型快照
- 分卷模型包
Alpha 模型的处理方式已经改为:
- 安装器在目标机器上从 Hugging Face 下载原始模型到临时目录
- 在目标机器上本地执行导出 / 量化 / LMDB 构建
- 安装目录最终只保留:
alpha_backend/model/qwen3-0.6b-onnx-int8alpha_backend/model/qwen3-0.6b-embeddings_lmdb
这样做的目的:
- 避免 Release 被超大模型文件污染
- 减少维护者手动切分 / 上传模型包
- 安装器自动完成“下载 + 转换 + 启用”
- 安装目录不再长期保留原始 HF 快照
推荐环境:
- Windows 10 / 11
- 已安装或准备覆盖安装小狼毫目录
- 有管理员权限
- 能访问 GitHub Release
- 如果要自动安装 Ollama 预测:能访问
ollama.com - 如果要自动安装 Alpha 模型:能访问 Hugging Face
- 如果要自动转换 Alpha 模型:本机可用 Python 3
可选环境变量:
GITHUB_TOKEN或GH_TOKEN- 用于缓解 GitHub API rate limit
如果你的网络不方便直接访问 Hugging Face,建议先手动把模型下载到本地,再使用“本地模型目录转换”模式。
从 Release 下载:
Wisdom-Weasel-installer-<version>.exe
双击后会启动引导安装器。
安装器会依次完成:
- 请求管理员权限
- 让你选择 Wisdom-Weasel 的安装目录
- 默认建议:
C:\Program Files\Rime\weasel-0.17.4
- 默认建议:
- 从 GitHub Release 下载
runtime包 - 从 GitHub 仓库下载对应版本源码快照
- 安装万象到 Rime 用户目录
- 安装 Alpha 运行时 DLL
- 自动安装或确认本机 Ollama
- 自动检测当前机器配置(CPU / 核心数 / 内存 / 显卡显存)
- 弹出模型选择窗口,并按当前机器预选推荐模型
- 例如:
qwen3:0.6b/qwen3:1.7b/qwen3:4b/qwen3:8b/qwen3:14b - 也支持输入你自己的 Ollama 模型名
- 例如:
- 自动拉取你选中的 Ollama 预测模型
- 自动备份并写入
weasel.custom.yaml
- 如果已有旧配置,会生成同目录时间戳备份
- 询问 Alpha 模型安装方式:
- 自动从 Hugging Face 下载并本地转换
- 使用本地已下载模型目录并本地转换
- 暂时跳过
- 自动写入
wanxiang.custom.yaml/wanxiang_pro.custom.yaml - 自动部署 Rime
- 打开 GUI,引导你继续勾选方案
如果选择了 Alpha 自动安装,安装目录最终只保留转换后的运行时模型:
alpha_backend/model/qwen3-0.6b-onnx-int8
alpha_backend/model/qwen3-0.6b-embeddings_lmdb
原始 Hugging Face 下载目录只存在于安装时的临时工作目录里,安装结束后会清理。
同时,安装器还会把 weasel.custom.yaml 自动切到 Ollama 本地预测,默认写入:
patch:
"llm/enabled": true
"llm/provider_type": openai
"llm/openai/api_url": "http://127.0.0.1:11434/v1/chat/completions"
"llm/openai/api_key": ""
"llm/openai/model": "<安装时选择的 Ollama 模型>"如果该文件此前已经存在,安装器会先创建类似下面的备份:
weasel.custom.yaml.pre-wisdom-weasel-ollama.<timestamp>.bak
如果你不想直接运行 EXE,也可以下载:
Wisdom-Weasel-bootstrap-<version>.zip
解压后双击:
Install-Wisdom-Weasel.cmd
或者手动执行:
pwsh -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-Wisdom-Weasel.ps1bootstrap 包本身不包含运行时和模型,只包含引导脚本;执行后仍会在线下载 runtime 资产,并按你选择决定是否从 HF 下载模型。
安装器现在默认会把 Ollama 本地预测 一起装好,目标是安装完成后无需你手动改 weasel.custom.yaml。
默认行为:
- 自动安装 / 确认 Ollama
- 自动等待本地 API 就绪:
http://127.0.0.1:11434 - 自动检测当前机器配置
- 自动给出推荐模型,并允许你手动改选
- 自动拉取你选择的 Ollama 模型
- 自动备份旧的
weasel.custom.yaml - 自动写入 Wisdom-Weasel 管理的 Ollama LLM 配置
- 自动重新部署 Rime
也就是说,Ollama 预测现在默认就是“完全开箱即用”路径。
如果你后面想换模型,只需要改:
"llm/openai/model"比如改成别的 Ollama 模型名后重新部署即可。
qwen3:0.6b- 轻量档,适合低内存 / 纯 CPU
qwen3:1.7b- 均衡档,适合大多数办公机
qwen3:4b- 质量更高,适合 16GB+ 内存或有独显
qwen3:8b- 高质量档,适合高内存 / 6GB+ 显存
qwen3:14b- 高性能机器可选
Ollama 本身会在支持的机器上自动使用更合适的 CPU 指令集路径(例如 AVX / AVX2)。
因此当前安装器主要负责:
- 根据机器配置推荐模型
- 让你自己选择模型
而不是额外再手工写一层 CPU 指令集开关。
当前默认推荐模型:
Qwen/Qwen3-0.6B
适合:
- 能访问 Hugging Face
- 本机有 Python 3
- 不想手动处理模型文件
安装器会:
- 创建临时 Python venv
- 安装导出依赖
- 从 Hugging Face 下载推荐模型到临时目录
- 本地导出 ONNX(int8)
- 本地构建 embeddings LMDB
- 写入
alpha_rerank_config.toml - 自动写入当前默认 Alpha filter patch 并启用重排
适合:
- 你的网络不方便直接访问 HF
- 你已经手动下载过 HF 模型目录
- 希望把下载和转换拆开
你选择本地目录时,目录里通常应包含这类文件:
config.json- tokenizer 相关文件
*.safetensors
安装器只负责“本地转换”,不会重复下载。
适合:
- 先把输入法主体装起来
- 稍后再补装 Alpha
此时的行为:
- 如果已有可用 Alpha 模型:继续复用
- 如果没有可用 Alpha 模型:Alpha 保持关闭
- 万象 / LLM 的安装不受影响
以后想补装或重装 Alpha 时,可以重新运行安装器脚本。
例如自动下载并转换:
pwsh -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-Wisdom-Weasel.ps1 -ModelSetup auto使用本地目录转换:
pwsh -NoProfile -ExecutionPolicy Bypass -File .\scripts\Install-Wisdom-Weasel.ps1 -ModelSetup local -LocalModelDir D:\models\Qwen3-0.6B如果你只想更新模型,不想再弹出最后的 GUI 引导,可以附加:
-SkipGuiGuide安装完成后,建议立刻在 GUI 中完成这些动作:
- 打开 小狼毫输入法设定
- 勾选:
wanxiangwanxiang_pro
- 检查或按需修改:
weasel.custom.yamlwanxiang.custom.yamlwanxiang_pro.custom.yaml
如果安装器检测到 Alpha 模型已经可用,会自动写好当前默认的 Alpha filter patch 和配置。
因为模型太大,不适合继续作为 Release 资产维护。现在的设计是:
- Release 只发安装器 / bootstrap / runtime
- 模型在用户机器上从 Hugging Face 下载
- 然后在用户机器上本地转换
可以安装主体,但:
- Alpha 模型的自动下载并转换需要 Python 3
- Alpha 模型的本地目录转换同样需要 Python 3
- 如果没有 Python 3,就只能先跳过 Alpha,或先自己准备好转换环境
不会。
- Ollama 预测安装不依赖 Python 3
- Python 3 只用于 Alpha 模型的 HF 下载与本地转换
可以。
- 安装器会先根据你的机器配置给出推荐模型
- 但你可以在安装窗口里手动改选
- 也可以直接输入自定义 Ollama 模型名
两种方案:
- 先自己下载 HF 模型,再用“本地模型目录转换”
- 用代理 / 镜像后再运行自动安装
因为安装万象、导出 Alpha ONNX、构建 embeddings LMDB 都依赖仓库中的脚本和资源文件。当前 bootstrap 只放引导逻辑,不把这些源码资源直接塞进 EXE。
会自动改,但会先备份。
- 如果安装器发现旧的
weasel.custom.yaml - 会先在同目录生成带时间戳的
.bak - 然后再写入 Wisdom-Weasel 管理的 Ollama 配置块
这样你始终可以回滚。
安装器会自动备份并更新:
%APPDATA%\Rime\weasel.custom.yaml
默认写入的核心配置类似:
patch:
"llm/enabled": true
"llm/provider_type": openai
"llm/developer_mode": false
"llm/context_recent_words": 20
"llm/context_max_chars": 160
"llm/input_prediction_debounce_ms": 120
"llm/openai/api_url": "http://127.0.0.1:11434/v1/chat/completions"
"llm/openai/api_key": ""
"llm/openai/model": "<安装时选择的 Ollama 模型>"
"llm/openai/max_tokens": 20
"llm/openai/temperature": "0.6"说明:
provider_type仍然是openai- 这是因为 Wisdom-Weasel 直接把 Ollama 当作 OpenAI-compatible API 来调用
- 当 API 地址是
localhost:11434时,程序会自动走 Ollama 的本地 continuation 优化逻辑
安装器会写入:
patch:
# Alpha 重排:Rime filter + alpha_input.dll
alpha_rerank/enabled: true
alpha_rerank/config_path: "<Rime 用户目录>/lua/wanxiang/alpha_rerank_config.toml"
alpha_rerank/dll_path: "<Rime 用户目录>/lua/wanxiang/alpha_input.dll"
alpha_rerank/max_candidates: 6
alpha_rerank/context_max_chars: 64
alpha_rerank/recent_tail_chars: 16
alpha_rerank/order_prior_weight: 0.02
alpha_rerank/input_coverage_weight: 0.05
alpha_rerank/preserve_first_min_chars: 0
alpha_rerank/log_enabled: false
alpha_rerank/log_path: ""除此之外,未在 patch 中显式写出的其他参数继续使用当前 schema 默认值。当前默认行为里比较关键的几个参数是:
alpha_rerank/input_coverage_weight: 0.05- 对长拼音输入增加一个轻量“输入覆盖先验”
- 目标是减少短词 / 单字在长输入里意外抢到前面的情况
alpha_rerank/preserve_first_min_chars: 0- 默认不再强制固定第一候选
- 如果你想恢复“首候选达到某个长度后保位”的旧 workaround,可以手动把它设成正数
alpha_rerank/prefer_sentence_boundary: true- 上下文优先按更干净的句子 / 子句边界截断
alpha_rerank/log_path- 可选;如果开启
log_enabled: true但不手动指定路径,默认写到:%APPDATA%\Rime\alpha_rerank.log
- 可选;如果开启
特性:
- 当前为 Rime filter 架构
- 默认允许整个前部候选池参与重排
- 长拼音输入时会额外考虑“输入覆盖度”,避免短词偷塔
- 可累积长期 / 会话偏好向量
- 可对“被跳过的更高排位候选”施加轻量负反馈
- 自动清洗并截断上下文
- 面向 CPU 实时场景
偏好相关参数位于:
alpha_backend/config.toml[preference]段
默认长期偏好持久化文件:
alpha_backend/user_preference.json
当前默认策略:
- 先给一个短结果
- 再补一个短语
- 再补一个长句
目标是尽快给出首个候选,再逐步补全更丰富内容。
下面这组数据保留原始结果,不删除。
它代表的是当时在理想上下文 / 离线可控条件下测到的理论最优表现,可以视为“可实现上限”的历史参考。
它不是当前版本所有真实 IME 端到端环境下的严格实时 benchmark。
历史测试环境:
- DLL:
AppData/Rime/lua/wanxiang/alpha_input.dll - 配置:
AppData/Rime/lua/wanxiang/alpha_rerank_config.toml - 模型:
qwen3-0.6b-onnx-int8 - 偏好:关闭
order_prior_weight = 0.02
补充说明:
- 这张表里的微信输入法结果是历史手动对比
- 由于对方排序 DLL 与内部策略未知,它只适合作为参考,不适合作为严格可复现实验
| 场景上下文 (Context) | 输入 (Pinyin) | 预期结果 | 历史理论结果 | 历史手动对比(微信输入法) |
|---|---|---|---|---|
| 马上要考试了,我需要开始... | fx | 复习 | 复习 ✅ | 复习 ✅ |
| 下周要去杭州出差,先把酒店和... | jp | 机票 | 机票 ✅ | 机票 ✅ |
| 明天要发布新版本,先把发布说明和... | bg | 变更日志 | 变更日志 ✅ | 报告 ❌ |
| 明天要上台主持活动,今晚把... | zc | 主持词 | 主持词 ✅ | 支持 ❌ |
| 这两天一直咳嗽发烧,下午得去... | yy | 医院 | 医院 ✅ | 医院 ✅ |
| 今晚继续优化输入法 DLL 的... | cp | 重排延迟 | 重排延迟 ✅ | 产品 ❌ |
| 老师说明天考高数,我打算先做几套... | zt | 真题 | 真题 ✅ | 状态 ❌ |
请以 build.bat 的结果为准。
如果 IDE 内的编译结果和 build.bat 不一致,以 build.bat 为准。
PowerShell 推荐:
$env:DEVTOOLS_PATH='C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64;'
.\build.bat x64需要强制全量重编时:
$env:DEVTOOLS_PATH='C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\amd64;'
.\build.bat rebuild x64推荐直接执行:
pwsh -NoProfile -ExecutionPolicy Bypass -File .\scripts\Build-ReleaseBundle.ps1 -InstallerBackend auto-InstallerBackend 说明:
auto- 优先使用 NSIS
- 如果当前机器没有安装 NSIS,则自动回退到 IExpress
nsis- 强制使用 NSIS 生成更好的 GUI bootstrap 安装器
iexpress- 强制使用 IExpress
生成结果:
archives/Wisdom-Weasel-installer-<version>.exearchives/Wisdom-Weasel-bootstrap-<version>.ziparchives/Wisdom-Weasel-runtime-<version>.ziparchives/Wisdom-Weasel-release-assets-<version>.txt
发布 Release 时,请只上传清单文件里列出的三个正式资产。
不要上传任何:
Wisdom-Weasel-model-*- 原始 HF 模型目录
- 临时转换产物包
构建脚本会自动清理当前版本残留的 Wisdom-Weasel-model-* 文件,避免误传。
scripts/Install-Wisdom-Weasel.ps1- 一键安装发行版
- 自动下载 runtime
- 自动安装 / 确认 Ollama
- 自动检测机器配置并推荐预测模型
- 允许用户选择或自定义 Ollama 模型
- 自动备份并写入
weasel.custom.yaml - 自动 / 本地转换 Alpha 模型
- 自动写入当前默认 Alpha filter patch 与配置
scripts/Install-Wisdom-Weasel.cmd- 方便双击启动,优先使用
pwsh
- 方便双击启动,优先使用
scripts/Build-ReleaseBundle.ps1- 生成 installer / bootstrap / runtime
- 生成 Release 资产清单
- 清理当前版本残留模型资产
scripts/Wisdom-Weasel-bootstrap-installer.nsi- NSIS bootstrap 安装器模板
一句话概括现在的策略:
Release 只发安装器和运行时,不发 Alpha 模型;安装器会自动把 Ollama 预测配好,并把 Alpha 模型从 Hugging Face 下载到本机临时目录后完成转换。