技术架构
几维输入法基于中州韻 (Rime) 引擎构建,在保留 Rime 高度可扩展性的同时,通过现代化技术栈重构了输入法前端,并引入了基于 AI 的智能纠错与主辅混输等核心创新。
架构概览
系统架构分为四层:平台接入层、核心服务层、扩展插件层以及底层引擎层。
text
┌─────────────────────────────────────────────────────────┐
│ 几维输入法 (Outwit) │
├─────────────────────────┬───────────────────────────────┤
│ 平台接入层 │ 核心服务层 │
│ ├─ OutwitTSF (Windows) │ ├─ OutwitServer (IPC 通信) │
│ └─ OutwitUI (候选渲染) │ └─ SettingsServer (配置同步) │
├─────────────────────────┴───────────────────────────────┤
│ 扩展插件层 │
│ ├─ Witcraft (主辅混输引擎 / C++) │
│ ├─ Witset (AI 智能纠错与上下文管理 / C++) │
│ └─ OutwitThemeDesigner (基于 Svelte 5 的可视化设计器) │
├─────────────────────────────────────────────────────────┤
│ 底层引擎层 │
│ ├─ librime (中州韻核心输入逻辑) │
│ ├─ Wanxiang KLM (万象语法模型) │
│ └─ Lua Scripting (用户自定义脚本扩展) │
└─────────────────────────────────────────────────────────┘技术栈规范
| 模块 | 核心技术 | 职责与特性 |
|---|---|---|
| 输入法前端 (TSF) | C++17 / Windows TSF | 负责与操作系统的文本服务框架深度集成,接管键盘事件并管理输入法生命周期。 |
| 图形渲染引擎 | C++17 / Direct2D | 提供 GPU 硬件加速的候选窗口渲染,支持高 DPI 缩放、亚像素级文字抗锯齿与毛玻璃特效。 |
| 输入逻辑与插件 | C++17 / librime API | 基于 Rime Processor/Segmentor 机制实现主辅混输、动态词频调整与拦截逻辑。 |
| AI 纠错与网络 | WinHTTP / ONNX Runtime | 负责本地推理引擎调度与异步云端 API 交互,确保输入过程的非阻塞体验。 |
| 可视化与前端 | Svelte 5 / VitePress | 用于构建高性能的本地配置服务器、主题设计器以及产品文档。 |
核心技术实现
异步非阻塞输入模型
几维输入法采用严格的异步处理架构,以确保键盘响应时间(Key-to-Photon)极小化,即使在进行复杂计算或网络请求时也不会导致应用卡顿。
- 同步层(< 15ms):TSF 事件捕获、Rime 引擎查表、基础词频排序。
- 异步层(< 300ms):Witset 本地 AI 推理、长句上下文语义重排。
- 渲染层(< 15ms):Direct2D 接收最终候选集并重绘 UI。
TSF (Text Services Framework) 集成
放弃了传统的 IMM32 接口,全面采用 Windows TSF 框架,以获得对现代 Windows 应用(包括 UWP 及各种 Electron 应用)的最佳兼容性。
ITfTextInputProcessor:管理输入法实例。ITfKeyEventSink:高优先级键盘事件挂钩与拦截。ITfCompositionSink:管理输入组合串(Composition String)在宿主应用程序中的状态。
字典编译与内存管理
为实现极速启动与低内存占用,Rime 字典格式采用了二进制紧凑存储。
- 源文件:
.dict.yaml。 - 编译产物:
.reverse.bin(反查索引)、.prism.bin(音码索引)、.table.bin(主码表)。 - 加载机制:使用内存映射(
mmap)进行懒加载,大幅降低了冷启动的 I/O 消耗与常驻内存基数。
构建与部署环境
几维的构建系统基于现代 C++ 工程规范:
- 编译器:Visual Studio 2022 (MSVC)
- C++ 标准:C++17
- 构建工具:CMake 3.20+
- 依赖管理:vcpkg
构建流程
系统级编译依赖于预先构建的 librime 静态库:
bash
# 1. 构建 librime 静态库
cd librime
build.bat static
# 2. 构建几维 Windows 客户端及相关插件
cd outwit-windows
build.bat
# 3. 构建安装包(可选)
build.bat installer注意:除测试或二次开发需求外,普通用户请直接前往下载页面获取最新的安装程序,无需手动编译源代码。