记录一个系统化、智能化、精准化、可视化的面向一线教师基于Obsidian的教学辅助应用(V2.3.1)的开发过程

原贴所在位置:【插件分享】小镇做题家 - 智能题库管理工具
由于功能改变非常大,所以另起一贴。

SAVI Teaching Assistant

Systematic AI-powered Visual Intelligent Teaching Assistant

面向一线教师的 Obsidian 智能教学管理插件,集题库管理、智能组卷、成绩分析、AI 质量优化于一体。

版本: v2.3.1 | 官网: https://saviteachingassistant.cn


七大模块

题库查询

  • 高效的题库检索系统
    • 多维度筛选(来源、知识点、分类、题型、评价、难度)
    • 全文搜索采用方式为:文字加空格求与
    • 卡片式题目视图,一键修改题目思维层次

自动组卷

  • AI驱动的智能组卷
    • 多种组卷策略(综合平衡、易错题优先、新鲜题优先、高思维优先)
    • 预览试卷,二次添加、排序试题
    • 依据正确率、时间,智能推荐学生历史测试题目

试卷播放

  • 课堂讲评辅助工具
    • 选择历史测试试卷,一键全屏播放,摆脱PPT依赖
    • 答案选项统计,精准显示本班学生的答题情况
    • 定时自动播放,方便多样化课堂设计

题库管理

  • 题目质量智能分析
    • **题目解析,自动化和自适应学习
    • **题目改编,AI驱动的自动化改编
    • 智能分析历史数据,快速优化题库题目难度和选项质量

批量导入

  • Word数据快速导入
    • 图片文字提取
    • 批量导入题目
    • 大题细分,使知识点数据统计更加精准

数据分析

  • 可视化学情分析
    • 一键导入Excel,生成测试班级报告
    • 多维度测评数据使知识点掌握程度、题目质量、班级和学生个人的掌握可视化
    • 利用Obsidian插件Dataview,动态生成分析报告

学习跟踪

  • 学习进步轨迹追踪
    • 班级进步分析报告关注全班学生的进步率和退步率,知识点的正确率变化
    • 学习进步分析报告关注学生个人的成长,跟踪记录历史错题
    • 个人错题集帮助学生及时了解学习情况

安装

手动安装

  1. 插件下载 下载最新版本
  2. 解压到 Obsidian vault 的 .obsidian/plugins/intelligent-teaching-manager/ 目录
  3. 重启 Obsidian,在设置中启用插件
  4. Obsidian下载

沙箱

  • 集成了相关的插件,新手可以直接下载使用

激活

  • 首次启动自动显示激活窗口
  • 免费试用: 7 天,1 台设备
  • 专业版 (年费): 3 台设备

技术栈

  • 框架: Obsidian Plugin API
  • 构建: esbuild + JavaScript 混淆
  • LLM: Deepseek /Qwen VL/ Ollama (Qwen)

数据安全

  • 所有教学数据保存在本地 Markdown 文件中
  • 云端分析仅传输脱敏数据(不上传学生姓名)
  • HTTPS 加密传输 + JWT 认证
  • License 三级验证(本地缓存 → 云端 → 宽限期)

作者

Fan Zhiyi (Charles Morse)
邮箱:[email protected]

SAVI V2.3.1 更新说明

版本号:V2.3.1
发布日期:2026-03-10
版本主题:OCR 图像提取与文字识别精度全面提升

本版本聚焦 OCR 扫描件处理与图形提取的稳定性,覆盖 4 个核心文件(savi_ocr_v6_eraser.py / savi_skeleton_combined.py / batch_import.py / batch-import.ts),共计 22 个修复提交,并补充了 Windows 全平台兼容支持。


一、OCR 文字识别精度提升

选项行置信度自适应

背景:Vision OCR 此前对所有行统一使用 0.4 置信度阈值。当选项(A./B./C./D. 开头)含有电路元件标注(如 Rp1、VD1、R₁ 等)时,OCR 引擎对这类字符的置信度偏低,导致整行被误丢弃。

改动

  • A./B./C./D. 开头的选项行:阈值降至 0.25
  • 其余普通行:保持原 0.4 阈值

二、底部标注自适应捕获(全新功能)

新增 BOTTOM_EXPAND 参数

电路图、波形图等题目图形下方往往有 A/B/C/D 等标注文字,原版固定裁剪范围无法捕获这些标注。

改动

  • 新增底部自动延伸机制:检测到图形下方存在暗像素组时,自动向下扩展截取范围
  • 二次扫描收紧为精确区间,仅取第一连续暗像素组末尾,避免多截内容

预设值

预设 BOTTOM_EXPAND 适用场景
标准 10pt 默认推荐
宽松 15pt(UI 默认) 标注距图形较远时
严格 7pt 题目排列紧密时
  • 最小值保护:不低于 1pt,防止参数设置过小导致标注截断

三、扫描件图形提取修复

本版本针对扫描件(非矢量 PDF)做了多项关键修复:

  • 坐标偏低:图形排序 sort_y 改用 seeds_inside 原生坐标,解决图形位置识别错误
  • 裁图包含多余文字:修复扫描件裁剪范围错误导致题目文字被裁入图片的问题
  • 全页扫描件兼容has_graphic=False 的全页扫描件现在也能正确应用 BOTTOM_EXPAND 和二次扫描
  • 小标注被压制:修复扫描件通道 CCA 近邻计算逻辑,防止 K、Ω 等单字符标注被误判为噪点删除

四、矢量 PDF 改进

  • Stage 1 缺漏标注:修复矢量 PDF 第一阶段未扫描标注的问题,含标注时自动渲染并扩展裁图
  • 过度截取文字:保护词向下扩展增加 10pt 上限,防止电路图截取范围意外包含下方题目文字

五、黑名单过滤优化

新行为:黑名单检查移入边距区域门控,仅过滤页面边距范围内的内容,不影响正文。


六、批量导入格式改进

  • OCR 识别图片输出改为居中对齐(Obsidian 渲染更美观)
  • 题目之间自动插入空行分隔,提升可读性
  • 综合题子题移除 Markdown 标题标记(##),避免 Obsidian 生成多余大纲层级

七、情景题修复

修复了情景题(多题共用背景图)中,图片无法正确分配给各子题的问题。


八、UI 改进

  • OCR 专家参数滑块 CSS 选择器提升特异性,修复部分环境下滑块宽度显示异常
  • 知识点筛选标签(pill)点击后不再自动滚动至页面顶部

九、Windows 全平台兼容

本版本正式支持 Windows 环境运行

问题:Windows 默认 stdout/stderr 编码为 GBK,中文文件名在 Python 输出和 TypeScript 子进程通信中产生乱码,部分情况下直接报错退出。

修复内容

位置 修复
savi_skeleton_combined.py 启动时强制设置 stdout/stderr 为 UTF-8
batch_import.py 同上
batch-import.ts 所有 spawn() 调用追加 PYTHONIOENCODING=utf-8 环境变量
batch-import.ts 新增路径长度检查:路径超过 240 字符时给出明确提示(Windows MAX_PATH 限制)

十、完整参数表

参数 类型 默认值 可调范围 说明
BRIDGE_H 对外 30 1–100 水平膨胀核(图形合并)
BRIDGE_V 对外 3 1–5 垂直膨胀核
MIN_HEIGHT 对外 75pt 10–200 图形最小高度
GHOST_RADIUS 对外 60pt 10–150 聚类容限
CROP_PADDING 对外 15px 2–30 裁剪边缘留白
BOTTOM_EXPAND 对外 15pt 1–40 底部标注捕获距离(V2.3.1 新增)
_MAX_DOWNWARD_EXPAND 内部 10pt 保护词向下扩展上限(V2.3.1 新增)

十一、环境要求

  • Python:≥ 3.10
  • 依赖包PyMuPDF python-docx lxml opencv-python numpy
  • Windows:所有依赖均有官方 wheel,pip install 可直接安装,无需编译

十二、升级方法

通过 Obsidian 插件标准更新流程升级即可,无需额外配置。Windows 用户升级后自动获得兼容性修复,无需手动设置编码。


SAVI V2.3.1 · 发布于 2026-03-10 · 维护者: Fan Zhiyyi