2026/9/2 14:28:19

我用 Qwen3.8-Max 搭了一个 AI 作业辅导助手,拍照讲题 + 错题本诊断一次搞定

我用 Qwen3.8-Max 搭了一个 AI 作业辅导助手,拍照讲题 + 错题本诊断一次搞定 目录一、背景二、最终效果三、搭建过程3.1 技术选型3.2 核心 Prompt / Agent 编排3.3 踩坑记录四、效果对比五、总结六、复现指南6.1 环境配置6.2 安装依赖6.3 配置 API Key6.4 启动服务6.5 注意事项一、背景家里有个初二娃每天晚饭后辅导作业跟打仗似的。搜题 App 一拍就出答案孩子抄完就跑轮到我讲明明一步能算完的东西我绕三圈都讲不清讲到第三遍自己都开始怀疑人生。我真正想要的是一个能讲为什么、还能顺手出几道同类题确认孩子真懂了的帮手。最近试了 Qwen3.8-Max发现它既能看懂图片又能一口气读很多内容于是周末用 Vibe Coding 一把梭把这个 Demo 搭了出来。二、最终效果AI作业辅助助手demo演示打开 Demo 链接你会看到两个模式单题辅导拍张题目照片或输入文字选年级学科点开始辅导。文字题大概 3-5 秒图片题大概 30 秒到 2 分钟它会返回题目复述图片会先被识别成文字分步骤讲解每步都讲为什么3 道同类练习题 答案解析。上传题目图片输入题目文字错题本诊断隐藏大招把娃一周的错题拍一堆图或贴文字进去Qwen3.8-Max 用长上下文一次性通读跨题归纳薄弱知识点再给出针对性练习和家长建议。我实测的一组数据场景返回结果耗时文字题35?5 步启发式讲解 3 道同类题10-15 秒图片题含中文题干正确识别题干 4 步讲解59 秒错题本诊断多张图薄弱知识点 针对性练习 家长建议30 秒 - 2 分钟三、搭建过程3.1 技术选型没上重型框架一切以能跑、能复现为原则大模型Qwen3.8-Max通用API调用本体支持多模态输入 长上下文。后端FastAPI轻量几分钟起服务。前端原生 HTML Tailwind CSS零构建浏览器直接打开。模型接入OpenAI 兼容接口。我买的是阿里云百炼的 Lite Token PlanSDK 直接走标准地址会报InvalidApiKey必须走套餐专属 Base URL。图片处理Pillow 压缩最长边 1280、JPEG 质量 85、RGBA 转 RGB。异步任务内存_tasks字典 threading用于绕开某些公网网关 30 秒超时。自己部署在服务器上不存在这样的问题。3.2 核心 Prompt / Agent 编排整个辅导的灵魂在两段 System Prompt 里一段让模型当会讲题的老师一段让它当会看错题本的班主任。单题辅导 System Prompt你是一位耐心、专业的作业辅导老师擅长用启发式而非直接给答案的方式帮助学生真正理解题目。 你的辅导必须做到 1. 语言贴合指定年级学生的认知水平避免超出该学段的术语 2. 解题过程分步骤每步都解释为什么这么做而不是只给算式或结论 3. 不跳步、不堆术语必要时用生活化的比喻帮助理解 4. 最后生成 3 道同类型练习题帮助学生巩固并附答案与简要解析。 你必须且只能以严格的 JSON 格式返回不要输出任何额外文字、解释或代码块标记。JSON 结构如下 { question: 题目的准确复述若输入是图片请先识别并写出完整题干, steps: [ {step: 1, title: 步骤标题, detail: 该步骤的详细讲解包含原因说明} ], practice: [ {question: 练习题题干, answer: 练习题答案与简要解析} ] }后端收到模型输出后先用parse_json()正则兜底提取 JSON再用 Pydantic 校验成AnalyzeResponse。如果模型没乖乖只吐 JSON就把原始文本塞进raw字段返回保证页面不白屏。错题本诊断 System Prompt你是一位资深的学情分析师兼班主任擅长从学生的一份错题本或试卷中找出系统性薄弱点。 用户会上传多张错题图片或若干文字题目可能包含多道不同知识点、甚至跨学科。这是发挥长上下文优势的场景请一次性通读所有题目。 请完成 1. 逐一识别每道错题的学科、知识点、错误类型概念不清 / 计算失误 / 审题错误 / 方法不当 2. 跨题归纳 2-4 个最突出的薄弱知识点并解释为什么它们会反复出错要具体不要泛泛而谈 3. 针对每个薄弱点生成 2 道巩固练习题附答案与简要解析 4. 给出一条简洁、可操作的给家长的辅导建议。 你必须且只能以严格的 JSON 格式返回不要输出任何额外文字。JSON 结构 { problems: [{index: 1, subject: 学科, knowledge: 知识点, error_type: 错误类型, brief: 题目简述}], weak_points: [{point: 薄弱知识点, reason: 为什么反复出错}], practice: [{question: 练习题题干, answer: 答案与解析}], advice: 给家长的辅导建议 }3.3 踩坑记录这部分最真实也是我最想写的。坑 1图片不能直接传裸 base64。 一开始我把图片 base64 直接塞进消息模型根本不认。后来改成完整data:image/png;base64,...格式才正常。就一个小格式折腾了小半天。坑 2模型偶尔会 JSON 套个代码块。 我都明确要求只返回 JSON了它还是有一定概率包一层json前后再加两句这是答案。最后用正则先把代码块内容扒出来再解析实在不行就把原文丢给前端兜底展示。坑 3最痛Token Plan 必须用专属 Base URL。 我买的是 Lite Token Plan给的是套餐专属 API Key。一开始拿 dashscope SDK 走标准地址死活报InvalidApiKeyKey 明明是对的。查了半天才发现套餐给了专用 Base URL必须配合 OpenAI 兼容模式走这个地址https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1改完一行配置瞬间通了。四、效果对比指标之前现在耗时单题文字家长讲解 15-20 分钟10-15 秒出分步讲解耗时单题图片拍照搜题 10 秒但只给答案30-120 秒给完整讲解 3 道同类题错题本诊断家长手动翻找 30 分钟以上抓不住薄弱点30-120 秒出薄弱点 针对性练习Token 消耗人工 0未精确统计单次调用约数千 token 量级与题目长度、图片大小正相关可接受率看家长水平波动大输出稳定但仍需家长/学生复核未做标准化准确率评测五、总结优点Qwen3.8-Max 在题目理解、分步讲解、结构化输出上是稳的关键是它能一次跑完识别→讲解→练习这条线不用人中间搭手。最超出我预期的是长上下文在错题本诊断上的价值把整周错题一次喂进去它不是逐题答而是能归纳出你娃为什么老在移项符号上栽跟头这种系统性问题再按病根出题。这种纵览全局的能力换个只能单题聊的小模型是真干不了。对一个家长来说这比单题讲解更像是请了个真懂孩子的家教。不足主要是 Token Plan 的接入方式需要一点点额外配置官方关于套餐专属 Key 怎么对接的示例偏少我当时踩了一会儿。但一旦跑通模型本身识图、讲解、长上下文诊断一点短板都没有。六、复现指南想在自己电脑上跑的同学步骤很轻6.1 环境配置Python 3.10Windows / macOS / Linux 均可6.2 安装依赖python -m venv .venv .venv\Scripts\activate pip install -r backend\requirements.txt6.3 配置 API Key复制backend/.env.example为backend/.env填入DASHSCOPE_API_KEYsk-sp-你的Key DASHSCOPE_BASE_URLhttps://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1 QWEN_MODELqwen3.8-max QWEN_VL_MODELqwen3.8-max PORT8000重点Token Plan 用户一定要填DASHSCOPE_BASE_URL按量付费用户可改成https://dashscope.aliyuncs.com/compatible-mode/v1\。6.4 启动服务推荐用python backend/main.py也可以uvicorn backend.main:app --host 0.0.0.0 --port 8000浏览器打开http://localhost:8000\即可。6.5 注意事项图片题和多图诊断已改为异步轮询页面会显示已用时 X 秒等待 30-120 秒属正常。且这个时间会随着上传图片的数量递增。模型接入 Base URL时如果用默认 dashscope SDK 地址会报 InvalidApiKeyLite Token Plan 专属 Key。正确做法是.env 必须配 DASHSCOPE_BASE_URLhttps://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1走 OpenAI 兼容模式多模态模型名如果误配 qwen-vl-max 会调不到本体多模态能力正确做法是QWEN_MODEL 和 QWEN_VL_MODEL 都用 qwen3.8-max本体即支持图片输入 100万 Token 长上下文。完整代码获取项目源码如果你也是被辅导作业折磨过的家长或者正在琢磨大模型能落地到什么真实场景欢迎打开 Demo 试两道题——拍张孩子最近的错题丢进诊断模式多模态模型名纵览全局是什么感觉了。