ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

我用 Qwen3.8-Max 搭了一个初中数学错题归因分析器,5分钟定位孩子薄弱知识点

我用 Qwen3.8-Max 搭了一个初中数学错题归因分析器,5分钟定位孩子薄弱知识点 在开始之前先来讲讲我为什么会突发奇想做这个事情的起因说出来有点好笑。我一个发小孩子刚上初一上个月期中考完120分的卷子数学只考了58分。她把试卷拍给我看问我你帮我看看孩子到底哪里出了问题我当时随手翻了翻15道选择题题红叉10个。说实话我自己也看了快半小时才勉强归纳出几条感觉是公式没记牢好像是计算粗心这种模糊结论——完全没办法给她一个清晰的方向。发小叹了口气说“我每次都想认真帮她分析但我自己数学也不好根本不知道从哪儿下手最后就变成骂一顿了事。”这句话让我有点过意不去。然后我就开始琢磨这件事能不能让 AI 帮忙做掉我想做一个什么样的东西目标其实很简单就一句话家长输入错题和孩子的错误答案AI 自动给出根因分析和辅导建议——让完全没有数学背景的家长也能看懂报告。没有什么高大上的产品愿景就是想解决我朋友的实际问题。捣鼓了几天之后【小鹿错题本】v1.0 就这么出来了。做完之后效果差不多是这样的先说结论再讲细节。以前纯人工一张试卷家长对着错题逐题猜原因少说一两个小时分析质量完全看家长自己的数学水平参差不齐。现在输入题目 孩子的错误答案 正确答案10道题批量跑完大概60秒自动出知识点雷达图、错误类型饼图、TOP3薄弱点排名还有一段给家长的个性化总结。维度人工分析小鹿错题本Qwen3.8-Max10道题耗时60-120 分钟约 60 秒输出标准化依赖个人经验主观性强统一分类可横向比较可视化报告无雷达图 饼图 TOP3 薄弱点照片识别需手动抄写题目上传照片自动 OCR适用人群需要数学背景零数学背景家长也能看懂个性化建议无针对薄弱点生成可操作建议工具支持两种用法单题分析手动输入或者直接拍张错题照片上传OCR 自动识别题目内容批量分析一次丢进去多道题生成全景报告支持导出 CSV每道题的分析结果包含知识点掌握度评分0-100%、错误类型、错误根因、正确解题思路、给家长的可操作建议。图1 - 单题分析界面长这样图2 - 上传错题照片OCR识别界面图3 - 批量分析界面Qwen3.8-Max 在这个场景里表现如何既然效果看完了顺带聊聊模型本身——毕竟选型对不对直接影响最终结果。真正让我满意的地方中文教育场景的理解比我预期要好。用家长能理解的语言这个要求模型执行得相当到位——我自己看了十几条分析结果确实是那种家长能读懂、又不失专业感的表达不是堆术语也不是废话连篇。多模态 OCR 识别手写错题照片也给我惊喜了对清晰照片的识别准确率很高省去了手动录入的麻烦。需要注意的地方批量分析是逐题串行调用 API10道题约60秒如果要提速可以考虑并发但我目前的场景够用就没动。另外mastery_score是模型给的主观估分不是基于题库统计的客观数据看个参考方向就好别当精确指标用好吧。怎么搭的技术选型聊一聊我尽量选能快速跑通的组合不追求大而全模块选择为什么选它大模型Qwen3.8-MaxDashScope OpenAI 兼容接口中文教育场景理解好JSON 输出稳定原生支持多模态 OCR前端框架Streamlit纯 Python 写前端没有前端经验也能搞定可视化Plotly雷达图 饼图交互式好看数据处理Pandas批量结果汇总 CSV 导出图片处理Pillow Base64错题照片预处理项目结构故意做得很精简加新功能也方便├── app.py # Streamlit 前端主文件 ├── analyzer.py # 模型调用与分析逻辑 ├── sample_data.py #10道预置示例错题 ├──.env #APIKey 配置 └── requirements.txt # 依赖清单Prompt 怎么设计的技术选型定了之后花时间最多的其实是这块——Prompt 写得好不好直接决定分析结果能不能让家长看懂。单题归因分析 Promptanalyzer.py 核心promptf你是一位初中数学教师。请分析以下错题并输出结构化归因报告。 题目{question}孩子的错误答案{wrong_answer}正确答案{correct_answer}知识点选项{, .join(KNOWLEDGE_TREE)}错误类型选项{, .join(ERROR_TYPES)}注意JSON字符串内请勿使用回车换行符。不要使用反斜杠或数学公式符号。 请严格按照以下 JSON 格式返回 {{ knowledge_point: 从知识点选项中选择最匹配的一个, error_type: 从错误类型选项中选择最匹配的一个, root_cause: 用家长能理解的语言解释孩子为什么错了, correct_explanation: 向家长解释正确的解题思路, improvement_suggestion: 给家长1到2条具体可操作的建议, difficulty_level: 简单或中等或困难, mastery_score: 50 }}这里有几个小心思用封闭的KNOWLEDGE_TREE和ERROR_TYPES列表约束输出——不然模型自由发挥10道题的知识点叫法各不一样后面根本没办法做统计。明确要求用家长能理解的语言我自己测了好几版没有这句话模型经常输出一堆术语家长根本看不懂。提前声明禁止 JSON 里换行和特殊符号这是血泪教训踩坑部分会讲。OCR 识别 Prompt多模态prompt请识别这张错题照片提取以下信息 1. 题目内容完整的题干 2. 学生的错误答案标记为错的答案 3. 正确答案老师批改或标准答案 请严格按照以下 JSON 格式返回 { question: 题目内容, wrong_answer: 学生的错误答案, correct_answer: 正确答案 }图片用 Base64 编码通过image_url传入直接吃 Qwen3.8-Max 的原生多模态能力不需要额外的 OCR 服务。家长总结 Promptpromptf你是一位温和专业的初中数学教师正在给家长写一份孩子的错题分析总结。 ... 请用温和、鼓励的语气给家长写一段200字以内的总结包括 1. 肯定孩子的努力 2. 指出最需要关注的1到2个薄弱点 3. 给出具体的家庭辅导建议踩了哪些坑说几个印象深的工具跑起来之前这几个坑让我折腾了不少时间记录下来给后来者避雷。坑1JSON 解析失败率居然挺高模型返回内容有时候带 Markdown 代码块json ...有时候内部会有非法换行符直接json.loads()就报错了。最后专门写了一个clean_json_string()做三步清理defclean_json_string(raw:str)-str:# 1. 去掉 Markdown 代码块标记rawre.sub(r^[a-zA-Z]*\n?,,raw)rawre.sub(r\n?$,,raw)# 2. 只提取 { } 之间的内容startraw.find({)endraw.rfind(})1rawraw[start:end]# 3. 修复非法反斜杠转义rawre.sub(r(?:[^\]|\.)*,fix_escape,raw)returnraw坑2开了思维链之后reasoning_content有时候是空的开启enable_thinkingTrue之后部分情况下reasoning_content字段直接为空前端展示直接报错。加了判空之后才稳ifhasattr(response.choices[0].message,reasoning_content)and\ response.choices[0].message.reasoning_content:thinking_processresponse.choices[0].message.reasoning_contentelse:thinking_process模型已完成深度思考但未返回文本化的底层推理数据坑3函数签名不一致运行时直接 TypeErrorgenerate_parent_summary里调用call_model时多传了一个enable_thinkingFalse参数但函数定义只接受两个参数。改起来五秒钟找起来找了半小时。坑4批量分析页面底部变量引用错误批量分析报告末尾的 HTML 卡片引用了kp、rc、ce、sg四个变量这几个变量是单题分析作用域里的批量模式根本没定义直接NameError。当时图省事直接复制粘贴没检查作用域吃了亏。坑5API 端点搞错400报错搞了我好一会儿一开始用的 MaaS 专属端点一直报Workspace endpoint access denied翻文档翻了很久。后来改用阿里云公共的 DashScope 端点https://dashscope.aliyuncs.com/compatible-mode/v1\配合 OpenAI SDK立刻就通了。教训申请密钥的时候平台给你哪个 base_url 就用哪个别自己去猜。想自己复现的话这样操作环境配置# Python3.10推荐 git clonerepocdprojectpip install-r requirements.txtrequirements.txtstreamlit1.45.1openai1.82.0plotly5.24.1python-dotenv1.1.0pandas2.2.3Pillow11.2.1另外还需要单独安装 dashscopepip install dashscope根据requirements.txt一次性安装所有依赖安装过程截图如下显示Successfully installed xxx xxx就说明装好了API Key 配置在项目根目录创建.env文件DASHSCOPE_API_KEYyour_dashscope_api_key_here前往 阿里云百炼控制台 申请 API Key选 qwen-max 模型套餐即可。配置完之后可以去千问 AI 平台查用量https://platform.qianwenai.com/home/analytics/request-logs ——能看到每次请求消耗的 token 数、延迟和请求状态启动项目python-m streamlit run app.py浏览器访问http://localhost:8501\先用预置示例题目跑一遍上传 OCR 识别错题照片点击【开始分析】结果出来批量分析勾选使用全部10道预置示例题目点生成全景分析报告一键复现完整效果导出 CSV导出结果示例几点注意事项模型 ID 用qwen-maxbase_url设为https://dashscope.aliyuncs.com/compatible-mode/v1\别用 MaaS 专属端点OCR 功能拍照时注意清晰度避免强光和反光批量分析串行调用10道题约60秒属正常现象遇到 JSON 解析失败检查clean_json_string函数有没有正确处理模型返回格式实际演示直接看录屏与其我在这里干讲不如直接上录屏大家自己感受。录屏1单题分析不带推理过程录屏2单题分析带推理过程开启 enable_thinking录屏3拍照上传 OCR 识别 AI分析录屏4批量错题分析生成完整报告回到最开始说的那个发小——我把工具给她试了之后她发来消息说这个真的对我太有帮助了我终于知道要让孩子重点练哪块了。就这一句值了。-End-
返回列表