跳到正文
Iden项目履历
教育科技 · 产品与工程实践

知析AI 学习诊断平台

从一次作业,走向下一步学习。
把识别、判分、复核、诊断与练习串起来,让每一道错题都有后续行动。

  • Next.js 16
  • React 19
  • TypeScript
  • Prisma 7
  • PostgreSQL 17
知析知识图谱的真实界面,展示虚构样例的知识点状态与关联关系
真实产品界面 · 虚构演示数据
项目年份
2026 · 持续迭代
工作范围
产品设计、全栈开发与 AI 工作流设计
核心场景
个人作业诊断与针对性练习
系统形态
Web + 后台 Worker + PostgreSQL

一次作业,不该只留下分数。

知析面向学生的日常作业和阶段试卷,解决批改之后的信息断层:题目虽然改完了,错误原因、关联知识点和后续训练却仍然分散。项目把这些步骤收拢到一个工作台,让一次作答成为下一轮学习的依据。

用户上传作业图片后,系统提取题目和答案,进行 AI 辅助判分,再交给人逐题核对。确认后的结果进入报告、错题、掌握度和知识图谱;需要巩固时,可按薄弱点生成练习,并分别打印题目卷与答案卷。

让 AI 处理重复工作,让人保留判断与修正。

这个案例着重展示完整业务流程如何落地:如何处理不可靠的识别结果、耗时的 AI 任务、人工修正后的数据一致性,以及练习生成的可用性。

需求,从批改之后开始。

目标不是增加一份孤立的报告,而是缩短“发现问题”到“开始巩固”之间的距离。

减少重复整理

多张作业图片进入统一任务,保留题号、题干、学生答案、标准答案与分值,让报告可以逐题追溯。

允许纠正 AI

识别到的学科或年级不确定时先确认;答案或判分不准确时可修改,避免错误结果继续影响诊断。

追踪薄弱知识点

按科目、年级、知识点和题型归集错误,结合最近表现与历史作答,区分偶发错误与持续薄弱项。

形成可执行练习

围绕选中的错题或教材知识点分配题量,生成可核对、可打印、题目与答案分开的练习。

  1. 上传作业
  2. 辅助判分
  3. 逐题复核
  4. 薄弱诊断
  5. 专项出题
  6. 练习巩固

亲手改一道题,看后续如何变化。

样例里,第 1 题的正确答案被识别错了,第 2 题则确实算错了。试着修正识别结果、确认复核,再查看诊断与对应练习,体验人工介入的意义。

固定样例演示,不调用真实 AI,不保存个人数据。

先载入固定样例,再进行识别复核;确认后开放诊断和练习。

从两道题开始

数学样例 · 原始作答

第 1 题 50 分

2x + 3 = 7,求 x。

学生作答:x = 2

第 2 题 50 分

计算 1/3 + 1/6。

学生作答:2/9

第 1 题作答正确,但固定识别结果把 2 读成了 7。第 2 题识别无误,学生却直接把分子、分母分别相加。

接下来区分识别错误和知识错误,体验人工复核如何影响诊断。

等待载入样例。

页面负责交互,任务在后台完成。

识别和生成耗时不稳定,因此 Web 请求负责校验与创建任务,独立 Worker 执行 AI 流程。任务状态保存在数据库中,页面通过查询状态展示进度与结果。

任务状态与业务记录共同构成可恢复的处理流程

浏览器工作台

Next.js / React
作业、复核、报告、图谱与练习

服务端 API

身份与归属校验
输入校验、任务入队、结果查询

后台 Worker

领取任务、识别、判分、出卷
调用兼容接口的 AI 服务

PostgreSQL + Prisma任务队列、作答事实、练习记录与积分账本
文件与教材目录临时输入文件、教材知识点与关系数据
Next.js 16 / React 19 / TypeScript
统一组织工作台页面与服务端 API,约束数据结构与交互状态。
PostgreSQL 17 / Prisma 7
用关系模型、唯一约束和事务维护业务一致性,数据库也承担当前任务队列。
独立 Worker / Docker
Web、Worker 和数据库分别运行,耗时 AI 请求不依赖浏览器页面保持打开。
AI 服务适配 / 结构化校验
通过兼容接口调用模型;对返回结果做结构与业务规则校验,再进入后续流程。

教材知识图谱使用项目维护的知识点与关系目录;个人表现来自作答记录的聚合,不把模型推测当作已有学习事实。

把关键规则写进系统。

以下是当前源码中已经实现的机制。展开可查看处理方式与对应模块。

识别与判分:先校验,再交给人复核

图片先提取题干、题号、题型、满分和学科元信息,再执行判分。只有元信息置信度达到 0.8、分类完整且识别到题目,流程才自动继续;否则要求人工确认。这个阈值用于控制流程,不代表判分准确率。

AI 输出保留学生答案、标准答案、得分、诊断和知识点,配合结构化校验、题号对齐和分值边界检查。用户仍可修改每道题的结果。

对应模块:analysis-task-runner.tsanalysis-task-rules.mjs

任务执行:可领取、可重试、可接管

分析任务与出卷任务进入数据库队列。Worker 使用 SKIP LOCKED 领取任务,避免多个执行者同时拿到同一条任务;租约限制占用时间,进程中断后,过期任务可由后续执行者接管。

上传内容使用 SHA-256 指纹识别重复文件,并通过用户范围内的请求 ID 与唯一约束处理重复提交。页面离开不会取消数据库中已经创建的后台任务。

对应模块:analysis-worker.mjsanalysis-task-runner.tspractice-task-runner.tsschema.prisma

人工修改:防止覆盖,保持总分与明细一致

逐题修改支持答案、得分、诊断和知识点。提交带有版本信息;如果另一页面已修改过同一记录,服务端返回 409 冲突,让用户刷新确认,避免静默覆盖。

题目更新与考试总分重算放在同一事务中。报告、错题与图谱根据题目事实聚合,减少多份独立结果互相矛盾的机会。

对应模块:api/exams/[id]/questions/[number]/route.ts

学习诊断:有证据才展示掌握情况

知识点掌握度按相关题目的累计得分与满分计算;没有作答证据的知识点显示“未知”,不会自动给出 0%。错题按科目、年级、知识点和题型归组。

强化建议结合累计错误、最近错误和连续对错表现。图谱把这些个人表现映射到教材知识节点,帮助定位需要巩固的范围。

对应模块:learning-rules.mjsgraph-rules.mjsmistake-groups.mjs

专项练习:拆批生成,校验后再交付

支持错题查缺补漏与教材知识点出卷,题量范围为 1~30 题。系统按工作量预算拆批调用,校验题数、题型、知识点分配与答案结构,对可修复的结构问题进行受限重试。

生成前预占积分,成功后结算,失败进入退款流程;请求键和数据库事务控制重复结算。题目卷与答案卷采用不同服务端数据投影,生成的 SVG 配图通过标签和属性白名单检查。

对应模块:practice-generation.mjspractice-rules.mjspractice-task-runner.tsworkspace/print-rules.mjs

用户隔离:从页面身份到数据归属

Web 使用 Cookie 会话,移动调用使用 Bearer 身份,两种身份不一致时明确拒绝。服务端按用户 ID 校验任务、报告与图谱的数据归属,避免只依赖页面上的可见性控制。

这一实现面向个人账号的数据隔离,不能等同于完整的教师、家长、班级和学校多角色权限体系。

对应模块:session.mjsprincipal.tsapi/graphs/personal/route.ts

工程选择,也包括控制复杂度。

AI 自动化到哪一步?

把自动化建立在可确认、可修正的数据之上。对不确定元信息要求人工确认,逐题保留编辑入口。代价是多一次交互,换来后续诊断有可追溯的依据。

为什么用数据库队列?

复用 PostgreSQL 能把任务状态、业务记录与结算放在同一数据系统内,减少运维组件。实现中需要正确处理领取、锁与租约;更大规模的任务调度仍需压测与容量评估。

为什么不能只校验 JSON?

结构正确不代表题目可用。还要核对数量、题型、知识点、分值与答案,控制重试范围;打印场景要进一步区分题目和答案,处理生成配图的安全边界。

如何处理结果变化?

把逐题作答作为事实来源。人工修改有版本校验,总分在事务中重算,诊断基于明细聚合,让用户看到的多个视图有共同依据。

真实界面,完整的使用场景。

以下截图来自实际产品组件,考试、学生与题目均为虚构演示数据。图中的分数和趋势用于说明功能,不代表真实学生成绩或学习效果。点击图片可查看原图。

已经做到了什么,边界在哪里。

当前成果是一条可运行的个人学习诊断流程,并围绕异步执行、人工修正、生成校验与用户数据隔离建立了工程机制。

当前已实现

  • 图片作业识别、AI 辅助判分与逐题人工复核。
  • 报告、错题聚合、知识点掌握度与个人知识图谱。
  • 错题和教材知识点专项出卷,题目与答案独立打印。
  • 可恢复后台任务、重复提交控制与积分结算流程。
  • Web、Worker、数据库容器化;移动端共享 API 契约。

仍有明确边界

  • PDF 上传目前进入人工录入,尚未完成 PDF 自动 OCR。
  • AI 使用外部模型服务,非自研教育大模型;仍需人工核对。
  • 教师、家长与班级的完整多角色体系尚待完善。
  • Android 处于内部调试阶段,iOS 尚未完成构建与真机闭环。
  • 准确率、长期学习效果与大规模任务吞吐仍需专项评估。

技术内容依据当前项目源码与边界文档整理,核对日期:2026 年 9 月 11 日。本页交互演示采用固定样例,展示业务流程,不代表在线 OCR、实时 AI 判分或正式产品的完整功能。