这个学期同时在啃密码学、Web 安全、数据库和计算机组成原理,再加上信息安全数学基础、数字电子技术,前后一共六本教材。知识点散落在不同书里,复习时最花时间的不是「学」,而是「找」——想查「补码为什么能简化加减法」,得先想起它在哪本书、翻到哪一章,经常翻半天还找错位置。
所以我把每本书的知识点按章节整理出来,做成了一个多书语义问答:一共 6 本书、326 条知识点,每条都带标题、答案、公式、示例和关键词,并建好了词法索引与向量索引,打开就能检索。
它做了什么
打开就是问答界面,用起来三步:
- 选择范围:左侧列出 6 本书,可以只查一本,也可以选「全部 6 本书」一起检索;
- 语义检索:直接在输入框提问,例如「什么是完全剩余类?」,系统先用语义检索模型把问题转成向量,与 326 条知识点逐一比对相似度,返回最相关的原文;语义模型未加载或加载失败时,会自动降级为 BM25 词法匹配,保证任何时候都能查;
- 引用溯源:每条回答都带「回答依据」卡片,列出检索命中的知识点(书名 · 章节 · 标题),点一下就能展开原文核对——回答不是凭空生成的,每句都能找到出处。
打开页面就会自动准备语义引擎:模型文件已经随站点一起托管(约 23MB),不需要任何下载操作,浏览器缓存后秒开。窗口左侧还常驻一排「试一试」快捷问题,不知道问什么时点一个就能开练。
比如输入「RSA怎么加密解密?」,命中的知识点卡片会列出《密码学》中 RSA 公钥密码的原文,点开就能看到加密公式和数值例子。
技术上的一点坚持
这一版从「关键词匹配」升级成了语义检索 + 引用溯源:数据、推理库(transformers.js + ONNX Runtime)和语义检索模型(bge-small-zh,约 23MB)全部随站点托管,打开页面自动准备,浏览器缓存后秒开,全程不经过任何服务器、无需手动下载。
数据是离线整理的:知识点整理成结构化 JSON(标题、答案、公式、示例、关键词),再用脚本为每条生成向量索引,构建时注入页面。另外也保留了 Windows 桌面版:用 pywebview 把同一个页面套进桌面窗口,双击即用,适合不习惯开浏览器的场景。电脑和手机上都是响应式布局,随时能查。
9 月 23 日更新
把语义引擎改为随站托管:模型文件直接放在本站,页面一打开就自动准备(约 23MB),彻底去掉手动加载和外部下载依赖,任何网络环境下打开即用。
在线体验
我把这一版直接放到了本站,和整个站点的暗色风格保持了一致,点下面的按钮就能进入:
如果你也在备考这几门课,希望它能帮你把「翻书找知识点」的时间省下来,花在真正需要理解的地方。