Skip to content

技术架构

几维输入法基于中州韻 (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)极小化,即使在进行复杂计算或网络请求时也不会导致应用卡顿。

  1. 同步层(< 15ms):TSF 事件捕获、Rime 引擎查表、基础词频排序。
  2. 异步层(< 300ms):Witset 本地 AI 推理、长句上下文语义重排。
  3. 渲染层(< 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

注意:除测试或二次开发需求外,普通用户请直接前往下载页面获取最新的安装程序,无需手动编译源代码。