学习通 AI 助手(DeepSeek 自动答题)
学习通(超星)自动答题油猴脚本:作业 / 考试 / 章节测验的题目自动发给 DeepSeek 网页版作答,答案自动回填、暂存、交卷。附带后台保活,两个标签页切到后台也持续运行。
当前版本 v3.0.0 · MIT License · 仅供学习交流,请自行承担使用风险
功能
| 功能 |
说明 |
| 自动答题 |
单选 / 多选 / 判断 / 填空 / 简答,逐题识别题型并回填;连线、选词、阅读等特殊结构标记为「不支持」 |
| 文字优先 |
纯文本题直接发文字给 DeepSeek(快、准、省),含图片 / 公式 / 加密字体的题自动改截图 |
| 字体解密 |
移植 OCS font-decrypt(MIT):私有字体字形渲染点阵与官方特征表 font_ref_cx.bin 比对,还原 font-cxsecret 混淆的文字 |
| 断点续传 |
识别时检测每题已答状态,已答的跳过不重答;半填的填空只补空 |
| 逐组流水线 |
5 题一组,发一组答一组填一组,等待期间预取下一组截图,回填与 DeepSeek 思考并行 |
| 自动暂存 |
每组回填后自动点「暂存」,中途断掉答案不丢;章节测验逐题自动保存 |
| 自动交卷 |
全部题目答完后自动点「提交」(含 confirm 确认弹窗自动确认)。章节测验必须提交才会被判定任务点完成 |
| 回填自愈 |
暂存 / 翻页后页面重渲染、字体加密恢复(题干变乱码)时,按「原生题号 → 明文题号 → 题干指纹」三重锚点 + 滚动扫描自动重新定位题目节点 |
| 后台保活 |
Worker 计时器防节流 + 极低音量音频保活 + 可见性伪装,两个网页切后台 / 最小化照常运行 |
安装
- 浏览器安装脚本管理器:ScriptCat 脚本猫 或 Tampermonkey 油猴
- 导入
chaoxing-ai-assistant.user.js(拖进浏览器,或在管理器里新建脚本粘贴全文)
- 登录 学习通网页版 和 DeepSeek(两个页面都要装同一个脚本——它们靠 GM 存储互传数据)
学校自建超星域名(*.edu.cn / *.org.cn)请在脚本头部自行补一条 @match。
使用
A 标签页:学习通作业 / 考试 / 章节测验页面(题目出现后面板自动弹出)
B 标签页:https://chat.deepseek.com/ (保持打开即可,不用操作)
- 在学习通页面点 「开始识别」
- 脚本自动逐题判断题型 → 分组发给 DeepSeek → 答案回填 → 暂存
- 全部答完自动提交(可在设置关闭);逐题结果在面板列表,未填的题附答案供人工补填
面板按钮:开始识别 · 设置 · 停止 · DeepSeek(一键打开 DeepSeek 标签页)
设置项
| 设置 |
默认 |
说明 |
| 开新对话时机 |
每轮一个 |
每轮(推荐,避免题号污染)/ 每组 / 从不 |
| 每组题数 |
5 |
1–10,一次发给 DeepSeek 的题目数 |
| 传输方式 |
自动 |
自动(文字优先)/ 只发文字 / 只发截图 |
| 后台计时防节流 |
开 |
计时器搬进 Web Worker,后台不被浏览器节流 |
| 静音音频保活 |
开 |
循环播放 -84dB 音频保持标签页「有声」,防冻结 / 睡眠 / 丢弃 |
| 可见性伪装 |
开 |
document.hidden 固定为 false,防后台自动暂停 |
| 页面计时防节流 |
关 |
学习通页面自己的定时器也换 Worker 版(激进,异常再开) |
| 每组填完暂存 |
开 |
防中途断掉丢答案 |
| 断点续传 |
开 |
已答的题不再发问 |
| 字体解密 |
开 |
还原 font-cxsecret 混淆文字 |
| 答完自动提交 |
开 |
全部答完自动交卷(章节测验完成任务点需要提交) |
工作原理
学习通页面(A) DeepSeek 页面(B)
┌────────────────────┐ ┌────────────────────┐
│ 1. 识别题目/题型 │ GM_setValue │ 3. 领取任务 │
│ 2. 文字/截图分组 │ ────任务────▶ │ 4. 上传图片/发送文本 │
│ 8. 解析答案→回填 │ ◀───结果──── │ 5. 轮询 .ds-markdown │
│ 9. 暂存 / 提交 │ │ 直到答案稳定 │
└────────────────────┘ └────────────────────┘
▲ │
└────────── GM 存储双向桥接(心跳/任务/结果/图片)──┘
- 字体解密:
font-cxsecret 的 PUA 字符 → 字形渲染点阵 → 与特征表粗细两级比对 → 还原真字
- 后台保活:Web Worker 计时不受前后台影响;-84dB 音频使标签页保持 audible(豁免 Chrome intensive throttling / Memory Saver / Edge 睡眠);可见性伪装防页面感知后台
- 回填自愈:暂存触发页面重载后,按原生题号 / 明文题号 / 题干指纹重新定位题目节点(含重新解密、滚动扫描)
常见问题
面板显示「DeepSeek 未连接」
打开 DeepSeek 标签页并确认已登录;脚本面板会显示 后台保活:计时✅ 音频✅ 伪装✅ 状态。
「未识别到题目」
页面右上角无题目容器(课程目录页不挂面板)。进入具体作业 / 考试 / 章节测验页。
出现验证码 / 人脸识别
需人工完成后脚本继续;建议不要凌晨刷题。
答完了但任务点还是「未完成」
章节测验必须提交。确认设置里「答完自动提交」为开启状态(若之前手动关闭过,GM 存储会记住旧值)。
后台挂机后任务停了
确认保活三项均为 ✅(音频⏳表示还没获得用户手势——在页面上点一下即可)。
视频任务自动学习去哪了
v3.0.0 起移除,本脚本只做答题。需要刷视频请使用 OCS 等专用脚本。
项目文件
chaoxing-ai-assistant.user.js 脚本本体
smoke-test.js 答题流水线冒烟测试(jsdom)
smoke-test-lazy.js 面板懒挂载测试
smoke-test-relocate.js 重定位自愈测试(旧 DOM 隐藏 + 新 DOM 重建)
smoke-test-paging.js 乱码题干 + 翻页模式回归(最坏情况)
运行测试:
npm install jsdom --prefix "$TEMP/cxai-smoke"
NODE_PATH="$TEMP/cxai-smoke/node_modules" node smoke-test.js
免责声明
本项目基于 MIT 协议开源,仅供技术学习与研究。请遵守所在学校 / 平台的规定,自行评估使用风险,开发者不对任何后果负责。