XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

ChaoXingAutoClass

【WinUI】基于 XFEstudio 的 XFEWinUIApplication 模板重建的 WinUI 3 课程工作台。二维码和账号密码登录、课程 GridView、章节、播放进度、学习笔记及日志均使用原生 WinUI 控件。网页播放器运行在独立后台进程中,界面不显示课程网站。

公开
关注 0 Fork 0 Star 0
README.md

ChaoXingAutoClass 2.1.2

基于 XFEstudio 的 XFEWinUIApplication 模板重建的 WinUI 3 课程工作台。二维码和账号密码登录、课程 GridView、章节、播放进度、学习笔记及日志均使用原生 WinUI 控件。网页播放器运行在独立后台进程中,界面不显示课程网站。

使用

  1. 解压完整发行包,运行 ChaoXingAutoClass.exe,保留 BrowserHost、.playwright、DLL 与运行库。机器需要 Edge WebView2 Runtime;发行包包含 .NET 与 Windows App SDK 运行时。
  2. 首次默认显示二维码,使用学习通扫描并确认;也可切换原生账号密码输入框。已有 1.x 登录资料和 DeepSeek 配置会自动沿用。账号密码不会保存。
  3. 在“设置”填写 DeepSeek API Key、API 地址和模型,测试并保存。默认地址为 https://api.deepseek.com,模型为 deepseek-flash。分析课程画面和自定义字体题目需要模型支持图片输入。
  4. 课程列表由登录后的 API 直接获取,显示为 GridView 卡片。勾选多门课程,点击“开始所选课程”;默认同时运行上限 3 门,可在设置中改为 1–8 门。点击卡片可查看该课程的独立进度,也可暂停、继续或停止该课程。
  5. 章节与作业以原生勾选框显示站点确认的完成/提交状态;课程卡片的横线表示尚未读取。默认从选定位置连续处理所有待完成章节,成功章节经站点确认后勾选完成;章节出错记录跳过并自动进入下一章;也可关闭“继续全部待完成章节”,限定本次数量。
  6. 章节结束后默认处理当前课程的开放作业;也可在课程详情点击“AI 自动完成作业”单独运行。支持单选、多选和判断题,按批次读题,整份答案结构校验后一次提交,并复查作业列表。默认遇到低置信度或依据不足也继续按 AI 当前答案提交,并继续后续章节、作业;附件、报告或未识别题型记录跳过,并继续下一份作业。
  7. 如果站点返回多终端限制,程序会结束当前并行尝试,改为逐门连续处理。界面显示原因,不把被中断章节标成完成。课程笔记和处理记录均可在原生进度页查看,成绩以站点评阅结果为准。

课程画面、音轨转写、题目截图以及自动获取的公开参考资料会发送到设置的模型服务。音轨识别在本机执行,API Key 使用当前 Windows 用户的 DPAPI 加密保存。

默认置信度提醒阈值为 0.80。“严格答案质量校验”默认关闭,单题分数不足、grounded=false、证据缺失或多选逐项复核不足只记录警告,仍按 AI 当前最可能答案填写、提交并继续。原始分数和缺失依据如实保存,不抬高分数、不虚构来源。已有配置没有新字段时自动沿用此继续模式;开启严格校验后,不达标答案跳过当前项,队列仍继续。

内容分析与答题

  • 正常顺序播放实际视频,读取可用字幕并定时采集画面;不改变倍速、不跳时间、不伪造任务点或学习进度请求。
  • 识别课程内 PDF/PPT 图片课件,在真实阅读器中逐页滚动和截图,由 DeepSeek 分批分析;服务器确认后勾选完成。图片课件关闭视觉分析、其他阅读器或服务器未确认时记录跳过并继续下一章。
  • 从实际媒体提取 16 kHz 单声道音轨,使用本地 Whisper 或已安装的 Windows 语音引擎生成 TXT / SRT / JSON。已有 Whisper 模型自动复用,缺少模型时可下载并校验 SHA-256。
  • 在提交前等待音轨完成,结合画面、转写和课程笔记分析。自定义字体的中文以实际渲染截图为准。
  • 在本机提取学科术语并规划检索,不为资料规划额外请求 AI。整份试卷统一获取公开资料并复用,记录来源、摘录和获取时间;控制正文摘录总量,过滤排行榜、题库、主页及无法读取的页面。
  • Spring 与 MyBatis 题目按题干及选项主题直接获取官方概念、配置和实现文档;事务并发题额外读取数据库官方的丢失更新、隔离与读异常说明。事务资料优先于无关的容器入门页。先绑定量词实际修饰的对象,再核对其适用范围及限制。
  • 涉及 Spring 事务类型或 timeout 的题目,自动读取对应官方 API 声明和参数说明,区分接口、实现类、参数单位及默认特殊值;资料仍共用整卷上下文预算。课程措辞与 API 定义不同的题目可能继续保留歧义。
  • 题目不超过 30 道时一次发送、一次回答;超过 30 道按每批最多 30 道处理,例如 40 题分为 30+10。默认不追加付费复核请求,多选题在同一次回复中覆盖全部选项,给出选中或排除决定、置信度及必要依据,避免漏选。
  • 检查唯一性、数量、范围和映射关系时,分别核对名称、对象、作用域与映射方向。存在真实歧义时仍给出当前最可能选择并标注推测、低置信度;默认不因此停止或追加付费请求。可手动开启“额外独立复核”,追加请求会增加 Token 消耗。
  • 整份试卷的所有批次均通过题号、题数、选项和数据格式校验后,才通过实际页面控件填写。置信度和依据只作提醒,除非启用严格答案质量校验。填写后逐项回读,提交前再次比对实际勾选与 Agent 答案。
  • 提交后检查确认弹窗和实际评阅页面。附件任务、重复题号、无效答案、播放/转写/AI/页面错误、验证码或登录失效均记录当前项跳过,继续下一章节或作业;只有用户手动暂停或停止才暂停/结束运行。服务器确认完成后才勾选完成。
  • 同一章节内同一组题目本轮只回答和提交一次;提交结果不明或列表未确认时不重复提交。已提交、未开放及重复列出的作业跳过。任务跳过不会增加 AI 重试,30 题分批规则保持不变。
  • 本轮结束显示“本轮队列已结束”和跳过数量,未完成任务的勾选框保持实际状态;可在日志及 task-skips.json、homework-results.json 查看原因。跳过后取消本章后台音轨任务并关闭当前媒体播放,继续下一项。

网页结构、语音识别和模型判断都可能出错。章节适配 HTML5 视频及可识别的单选、多选、判断、普通填空和简答;独立作业目前支持单选、多选和判断。DRM、blob/HLS 媒体、其他文档阅读器、考试与教师定制组件需要单独适配。2.1.2 队列修复与验证见 docs/queue-continuation-v2.1.2.md。2.1 的真实联调记录见 docs/live-integration-v2.1.md;2.0 与 1.x 的历史记录分别保留在 docs/live-integration-v2.md 和 docs/live-integration.md。

架构

模板来源:XFEExtension.NetCore.VSIX/TemplateSources/WinUI 的 XFEWinUIApplication,使用其 WinUI 3、MVVM、XFE WinUIHelper、AutoConfig、AutoPath、XFEConsole 和 XFE XUnit 4 结构与锁定包版本。

项目 职责
ChaoXingAutoClass Views / ViewModels、Interface/Services / Implements/Services、Profiles、Utilities、原生界面与服务注册
ChaoXingAutoClass.Core Models、服务接口、DeepSeek、学习流程、答案校验;不依赖 UI
ChaoXingAutoClass.Test 模板指定的 XFE XUnit 4 测试、实际 Edge 的本地集成测试
ChaoXingAutoClass.Browser 课程 API、页面适配、播放取证、填答提交、公开参考资料获取
ChaoXingAutoClass.BrowserHost 独立的 WebView2 消息窗口与浏览器生命周期,不显示网页
ChaoXingAutoClass.Speech 音轨解码、Whisper / Windows 识别与模型校验
ChaoXingAutoClass.Probe 显式运行的诊断工具;默认测试不会操作或提交真实课程

浏览器宿主独立发布,避免 WinUI 的 WebView2 WinRT 投影与普通 .NET WebView2 程序集发生同名文件冲突。所有界面状态通过 MVVM 和服务事件更新。

编译与发布

Windows、Visual Studio 2026 / .NET SDK 10、Windows SDK 及 WinUI 开发工具:

dotnet build ChaoXingAutoClass.slnx -c Release -p:Platform=x64
dotnet run --project tests/ChaoXingAutoClass.Test -c Release -- --language zh --artifacts artifacts/XfeTestArtifacts
.\publish.ps1

默认发布到 artifacts/winui-win-x64。直接生成调试版本时,请先生成整个解决方案,以便后台浏览器宿主可用。Playwright 使用本机 Edge / WebView2,无需另行下载浏览器。

本地数据

  • %LOCALAPPDATA%\XFEstudio\ChaoXingAutoClass:加密设置、专用 BrowserProfile、Whisper Models、封面缓存和 Sessions 学习记录,沿用 1.x 路径。
  • %LOCALAPPDATA%\ChaoXingAutoClass\CrossVersion:模板的跨版本主题配置与 XFE 日志。
  • 每次学习保留转写、截图、Agent 原始答案及复核、参考资料来源、处理结果和去敏网络诊断;agent-usage.jsonl 记录接口实际返回的输入、输出和总 Token 数,日志同步显示用量。诊断默认隐藏查询参数和认证信息。
  • DevTools 级原始网络捕获可使用 browser-debugger。原始 HAR、Cookie、课程签名地址及个人资料只应留在本地,不属于源码或发行包。

--data-directory <绝对路径> 可使用隔离资料目录验证登录界面。--live-course "课程名" 3 会在该账号内选择同名课程并执行最多 3 个待完成章节;可追加 --start-chapter "1.3" 指定已读取目录中的章节编号。该入口包含启用的答题提交,属于显式真实联调入口。

开发联调也可用 --live-parallel "课程甲|课程乙" --chapter-prefixes "2.1|1.1" --chapter-limit 2 指定各课程的起点和本次章节数;--live-homework-course "课程名" --homework-title "实际作业标题" 单独处理指定的开放未提交作业。省略作业标题会处理该课程所有支持的开放作业。入口复用设置中的真实模型、自动填答与提交开关;正常使用可直接操作原生课程卡片和课程详情。