学习通自动答题实战:题库怎么接、答案怎么验
【免费下载链接】chaoxing超星学习通/超星尔雅/泛雅超星全自动无人值守完成任务点项目地址: https://gitcode.com/gh_mirrors/ch/chaoxing
深夜刷完一门慕课,章节检测突然弹出来,二十道单选、多选、判断、填空排着队等你做,手动敲答案得熬到凌晨。chaoxing 就是为这个场景准备的命令行无人值守学习工具,面向学习通、超星尔雅、泛雅超星,它的自动答题模块专门负责章节检测这类任务:登录后自动播视频、读文档,遇到测验就去题库搜答案、填答案、按配置提交。
项目速览:Python 编写,GPL-3.0 协议,源码、exe、Docker 三种跑法。核心循环是「视频 → 文档 → 测验 → 进度」,自动答题作为可插拔模块存在——配置了题库就启用,不配置就只做非答题任务。
题库接入:一个抽象类撑起的自动答题
问题在于超星没有公开的题库 API,答案来源只能靠外部。项目的解法是把题库抽象成一个Tiku类:任何题库方只需实现一个_query(q_info)方法,收到含标题、题型、选项的字典,返回答案文本即可。get_tiku_from_config根据配置文件里的provider字段从注册表查找具体类,名字大小写必须一致,查不到就优雅降级为空题库,不会报错崩掉。
更值得说的是,provider 可以逗号分隔写多个,项目会自动包成TikuFallback回退链:第一个题库没搜到、或返回答案的题型和题目对不上,就自动落到下一个来源。内置 provider 覆盖六种:言溪、GO 题、LIKE 知识库、自建的 TikuAdapter 题库中间件、AI 与 SiliconFlow 两个大模型题库,以及 TikuManual 手动批量答题。换题库、加题库只改一行配置,主循环零改动——这是多源题库能长期维护的关键。
答案校验与缓存:命中不等于能用
第三方题库命中答案,不代表这个答案能用:同一个接口可能把单选题答案返回成「ABC」,也可能返回「撰写中」这类占位文案。所以api/answer_check.py做了一道题型校验:单选答案不能含换行这类强分隔符,多选必须能拆出多段,判断题走配置的真/假词表(兼容「√」「×」「对」「错误」这些杂七杂八的写法)。校验不过就当作未命中,既不写缓存也不提交。
另一个细节是CacheDAO:只有校验通过的答案才写入 cache.json,落盘用「先写临时文件再原子替换」,读失败时还能从损坏文件里抢救出有效 JSON 段并备份原文件,而不是让整个进程崩掉。整个搜题流程也自带限流——比如 GO 题 provider 按最小请求间隔自我节流,识别到流控关键字就做退避重试,避免把上游服务打爆或被封。
实现要点与边界:哪些坑要提前知道
- 不配置题库时,章节检测任务会被直接跳过,想无人值守必须配置题库
submit=true是答完题后达到覆盖率(搜到的题占总数比例)才自动提交,否则只保存,正确率不做保证submit=false只保存搜到的答案,自己回学习通核对修改后再提交,更推荐在乎最终成绩的人用这个- 带次数的题库(如言溪 token)在「次数不足」时会自动轮换,全部用尽需要人工更换并重启
- 遇到已关闭任务点,可用
-a/notopen_action选 retry、ask、continue 三种处理
边界很清楚:它解决的是「省力」问题,不是「正确率」问题,后者完全取决于题库覆盖率。项目声明仅供学习讨论,禁止用于盈利,这点用之前要有数。
跑通自动答题:三步到无人值守
git clone https://gitcode.com/gh_mirrors/ch/chaoxing cd chaoxing && pip install -r requirements.txt python main.py -u 手机号 -p 密码 -l 课程ID1,课程ID2 -a continue把账号和[tiku]段写进config.ini,用-c config.ini运行即可,题库默认读根目录的 config.ini,不用每次传参。核心答题逻辑在 api/answer.py,主循环与任务调度在 main.py,各模块职责速览见 api/README.md。服务器部署看 Dockerfile 即可:构建后把配置文件挂载到 /config/config.ini,首次运行会自动生成配置模板。源码要求 Python 3.13+,环境较旧可以直接uv run --python 3.13 main.py跑。
延伸与展望
题库本质是注册表模式,有自建题库服务的话,实现一个_query方法加进PROVIDER_REGISTRY就能接入;大模型题库作为兜底 provider 已经内置,对题库覆盖不到的长尾题是个合理补充。
下次章节检测弹出来的时候,不用再一道题一道题复制去搜了。如果你的课程带章节检测,先配一个题库再跑;暂时没有 token,先用 TikuManual 手动模式顶住,额度到位再切回自动题库。
【免费下载链接】chaoxing超星学习通/超星尔雅/泛雅超星全自动无人值守完成任务点项目地址: https://gitcode.com/gh_mirrors/ch/chaoxing
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考