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

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

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


SAVI V2.6.0 更新说明

版本号:V2.6.0
发布日期2026-05-31T16:00:00Z
版本主题:技术与工程学科智能体建设实践 及工具补全(草图电路图绘制与管理、文字处理 )

设计核心:建设技术与工程学科智能体,你的每一输入,将获得成倍的输出回报。以万变应万变。


一、学科智能体建设(数据驱动)

技术与工程目录下的知识库.md由题库管理-知识体系维护-知识库MD维护-合成知识库工具对KP子知识库合成,用户只需对KP目录下的子文件进行修改

1.1 KP 结构各阶段完善

本版本进一步规范了 KP 文件各阶段的内容分工,明确了每个部分对 AI 解析和教学决策的作用:

阶段 / 部分 内容 作用 补充
阶段1 定义 + 一句话判断 教材内容及总结
阶段2答题指导 判定方法 / 学生解答顺序 / 答题步骤 引导学生规范解题流程 阶段2是对实战的整理
阶段2易混辨析 相似概念 / 班级易混 / 正确理解 / 错误模式 高频混淆点针对性辨析 也是LLM的判断依据
阶段2选考表述 选考典型情境 / 选考表述总结 收录选考真题语言风格,支持改编
阶段3 历史测试数据(正确率 / 争议度 / 选项分布 / 典型错题) 数据驱动教学决策
阶段5 真题自检集合 教学自测与对标真题
阶段6 好题出题特征 指导命题改编参考

1.2 CC 系列电路题知识库(新建,由于VL对电路图的识别不完善,模块还不成熟)

本版本完整建立了 CC 系列电路题知识库,覆盖 9 个子类编号:

CC200 / CC300 / CC310 / CC400 / CC510 / CC580 / CC810 / CC830 / CC910

主要建设内容:

  • STATS 注入块全量补全:各子类阶段3统计数据块全部到位
  • 阶段4考试方向标准化:17个 KP 文件的 CONFIRMED 考试方向块全部补全
  • 电路题视觉识别:CC 系列题目视觉识别能力上线,支持从电路图图片直接解析题目要素

KP书写指南同步更新:新增第五章 CC系列电路题规范,明确电路类KP各阶段的书写要求与格式约束。

1.3 阶段3数据流设计

测试数据处理遵循以下流程,确保数据来源可追溯、内容经人工审核:

学生测试完成
    ↓
数据分析 → 导入成绩单
    ↓
应用自动生成统计数据(正确率 / 争议度 / 选项分布 / 典型错题)
→ 输出到 DRAFT 块
    ↓
老师审核后,手动粘贴到 CONFIRMED 块(教材锚定 / 补充解释)
    ↓
题库管理 → 知识库MD维护 → 全量更新
→ 将知识库 .md 文件转化为 JSON,供应用调用
    ↓
题库管理 → 知识库MD维护 → 合成知识库
→ 将子知识库合成为知识库 .md 供题目改编使用

注意:人工修改 KP 文件后,必须运行"题库管理 → 知识库MD维护 → 全量更新/合成知识库",才能将最新内容同步到 JSON 索引中,修改才会生效。

1.4 预测与洞察面板(数据深度利用)

本版本将原本零散的统计数据聚合为深度洞察面板,帮助老师从海量成绩中发现规律。

  • 考前预测分析:基于历史测试大数据与知识点掌握曲线,自动预测考前复习重点与学生潜在失分项。
  • 教学洞察看板:多维可视化展示班级知识点掌握分布,识别"全班共性盲区",辅助精准教学决策。

二、题目分析助手(必修文字类全覆盖)

必修课程所有纯文字类题目现已全部支持解析,实现从题目输入到知识点识别、解析报告输出的完整流程,无需手动选择知识点类型。


三、草图设计工具集(全新功能)

本版本引入草图设计工具集,覆盖三视图、机械传动、电控三大题型场景,核心理念是让学生去搭积木——提供结构化素材库,学生通过拼搭元件完成草图,而非从零绘制。

3.1 三视图查看器

内置 SketchUp 三维模型查看器,支持六种视角切换,无需安装外部软件,直接在 Obsidian 内查看。

视角 说明
轴测 三维等轴测视图
主视 正前方正交投影
左视 左侧正交投影
俯视 顶部正交投影
后连线 后视线框图
高度控制 手动调整视点高度

格式支持扩展:除 OBJ 外,现已支持 STL、GLB、GLTF 格式,覆盖主流三维设计软件导出标准。

3.2 机械传动草图设计

依赖:Excalidraw 插件(注意Excalidraw插件生成图片后可以粘贴为SVG格式,这个格式复制到其它地方时需要截图)

本次对机械传动草图工具进行了系统性重建,新增素材库管理工具,并全面优化等轴测绘图体验。

素材库管理工具

  • 通过"框选元件 → Control+P"调出工具,可保存或替换素材库中的元件
  • 库文件全部存储于 Excalidraw 文件夹,切换素材库时需使用 Excalidraw 的重置打开功能(Electronic电子元件库、Mechanical机械驱动类素材库)

等轴测坐标系重建

  • 等轴测格生成:Grid size=25px,Grid step=5px
  • 切换按钮:一键切换是否显示等轴测网布
  • 吸附:线段吸附到格点

带轮结构生成

  • 多段折线模拟圆弧:传动皮带的圆弧段由多段折线拟合,接近真实效果
  • 弥补Excalidraw圆弧绘制

遮挡面算法

  • 使用凸包轮廓算法生成遮挡面轮廓
  • 支持 line 类型元素的填充处理,修复了此前填充区域错误的问题
  • 弥补Excalidraw线的背景填充

3.3 电控电路图设计

依赖:Excalidraw 插件

电子元件管理工具

  • 统一管理电路元件库,支持增删改查
  • 添加或修改电子元件后,需点击管理工具 → 同步到库文件,才能在 Excalidraw 画板中使用更新后的元件
  • 操作步骤与机械传动素材库相同:添加元件时框选后通过 Control+P 保存/替换

电路图元件解析工具

  • 依赖第二阶段手工修正识别错误的元件,再自动解析电位关系
  • 需要 Qwen VL 支持
  • 解析工作流优化:支持"解析当前 Excalidraw 中的电路图"命令,可直接识别画板中已有的图片,大幅提升截图处理效率。

当前状态:电控 KP 知识库仍在建设中,暂不支持复杂电路题目解析。

3.4 3D 建模工具(实验室功能,目前还是要依赖其它3D应用)

新增内置 3D 建模编辑器,支持通过基本几何体拼搭、布尔运算(CSG)快速创建三视图题目所需的 3D 模型,无需切换外部建模软件。支持直接导出模型文件并在笔记中引用。


四、文字处理工具集

4.1 OCR 图片文字提取(新增)

新增"提取当前图片中的文字"命令(命令面板调用),支持截图题目(印刷体/手写体)直接转文字录入,省去手动输入步骤。

典型场景:拍摄试卷截图后,通过 OCR 命令将题目文字提取到 Obsidian 笔记。

4.2 视频查看支持

Obsidian 内支持视频文件直接查看,提供循环播放功能,便于在教学笔记中嵌入演示案例(如机械传动实物演示、电路实验视频等)。

支持格式:mp4 / webm / mov / mkv / m4v

4.3 视频压缩工具(新增)

新增视频压缩工具,当前支持 Mp4 / Mpeg 等格式,专为非运动类视频(如板书讲解、实物展示、电路接线演示)设计,可在画质损失极小的情况下大幅减小文件体积,节省 Obsidian vault 存储空间。

注意:题库管理- FFmpeg工具管理,需要按流程完成安装


五、工具体系速查

工具 入口 功能
数据分析 → 导入 数据分析模块 导入测试成绩,生成阶段3统计数据
批量导入 题库管理 → 批量导入 批量导入题目,自动生成属性
质量优化流水线 题库管理 → 质量优化流水线 AI 辅助题目评审与改编(支持多版本生成)
:bullseye: 考前预测分析 命令面板 分析考试趋势与学生薄弱环节
:bar_chart: 教学洞察 命令面板 班级知识点热力与掌握度分析
知识库MD维护 → 全量更新/合成知识库 题库管理 KP 文件 → JSON 索引同步
三视图查看器 点击 3D 模型文件 多格式支持(OBJ/STL/GLB/GLTF),六视角查看
3D 建模工具 命令面板 内置 CSG 建模编辑器
机械传动素材库 Excalidraw 画板内 等轴测机械草图设计
电子元件管理 Excalidraw 画板内 电路草图设计
OCR 文字提取 命令面板搜索"提取" 截图题目转文字录入
视频压缩工具 文字处理工具 压缩 Mp4/Mpeg 视频文件

六、设计理念

V2.6.0 将工具链组织为三个协同层次:

知识层:以历史错题数据和选考真题为原料,数据驱动填充 KP 知识库的阶段3和选考表述区域,让知识库持续"进化"而非静态保存。

草图和电路层:基于 Excalidraw 提供机械传动与电控两套素材库,配合等轴测网格与吸附系统,让学生像搭积木一样完成草图设计,降低绘图门槛、聚焦知识考查。

文字层:OCR + 题目分析助手构成完整的文字题处理流水线,覆盖所有必修文字题型,从图片输入到知识点解析全程自动化。

三层协同,以不变(学科核心知识结构)应万变(题目形式与考查角度的变化)。

七、新旧兼容

Questions目录,做为临时存放使用
Questions Main 主要数据
Questions Low 低质量题目
Questions PROTECTED 存放只查询不参与改编的题目
Questions MOD题目改编工具的存放位置
旧版用户需要改成上述所示目录,也可以直接导入数据包,将文件粘贴新的目录

八、注意事项

saviteachingassistant.cn下载sandbox及数据包,再通过题库管理-数据同步-导入数据包,可选择Exam Analyze(会带入学生的测试数据)


SAVI V2.6.0 · 发布于 2026-05-30 · 维护者: Fan Zhiyi

1 个赞

等下出个教学视频

看起来已经形成一套系统了,不过可否出一个教学视频

感谢关注,早就想出一期视频了,只是这段时间一直在找BUG,做优化,延期了。我尽量早一点!

现在主要支持教学,能否加入班主任管理模块?感觉挺多年轻班主任的 :zipper_mouth_face:

发布了V2.6.5介绍视频【SAVI_V2.6.5_compressed】 https://www.bilibili.com/video/BV1mmEd6pEBH/?share_source=copy_web&vd_source=76b238b3a95697e70bdd761b4792ae1c

当班主任我不专业

能不能加入一个行为记录,可以加减分和输入事件原因、措施和后续跟进等。其他功能和作业批改一样,也可以生成报告什么的

感谢你的建议,只是这个功能的开发与现在系统没有输入、输出关系,也就是说不属于同一类型,目前还没有想法。