AI Productivity / Self-Exam

上传自己的学习材料,自动出题并用 Jev(决策模型)逐得分点判分的自助备考系统。

Jev 备考

把自己的学习材料变成一套可以自动判分、并且能解释为什么得这个分的考试。

为什么做

Why this exists

备考的瓶颈通常不是「没有资料」,而是「不知道自己哪里没掌握」。读完一份材料,感觉都懂了;真正被问到时,才发现有些要点根本没说出来。而通用题库和你的材料往往对不上:题目是别人出的,考点是别人的重点。

The bottleneck in exam prep is rarely the material. It is not knowing which parts you actually failed to learn. After reading, everything feels understood; when questioned, some points turn out to be missing. Generic question banks do not fix this either, because the questions and the key points belong to someone else.

这个项目的目标很具体:把你自己的材料变成一场考试,并且让每一分都能追溯到「哪一个要点没说到」。

The goal is narrow: turn your own material into an exam where every point traces back to a specific idea you did or did not express.

上传材料后自动切分知识点,并配置题量与题型配比
上传材料后先切分知识点,由你确认考点与题型配比,再生成试卷。 Material is split into topics first. You confirm the topics and the question mix, then the exam is generated.

解决什么问题

What it solves

  1. 01

    学完没有反馈

    No feedback loop

    材料是单向输入的。没有问答环节,就很难知道要点是否真的记住了。

    Material is one-way input. Without a questioning step, there is no evidence that a point was actually learned.

  2. 02

    对错之外的空白

    Beyond right and wrong

    简答题只给一个总分,看不出是漏了定义、漏了条件,还是把结论说反了。

    A single score for a written answer hides whether a definition, a condition or the conclusion itself was missing.

  3. 03

    通用题库与材料脱节

    Generic banks do not match

    题库考的是别人的重点,答案也无法回到你手上这份材料的原文。

    Question banks test someone else's priorities, and their answers cannot be traced back to your source document.

  4. 04

    进度只靠感觉

    Progress by feeling

    没有错题本和掌握度,复习只能从头再来一遍。

    Without a mistake log or mastery signal, revision restarts from zero every time.

可以用来做什么

What it can do

把任意材料变成试卷

Material into exam

粘贴一段材料,自动切分知识点,生成单选、判断、填空和简答。

Paste material, get topics, multiple-choice, true/false, cloze and short-answer questions.

逐得分点判分

Point-level grading

简答题不是给一个 0–100 的黑盒分数,而是逐条判定「这个要点说到了没有」。

A written answer is graded point by point instead of receiving one opaque 0-100 score.

把不确定标出来

Uncertainty made visible

模型没把握的题目标记为「待复核」,给出分数区间,并且不计入掌握度。

Low-confidence judgments are flagged with a score range and excluded from mastery tracking.

错题本与薄弱点

Mistake log and weak spots

自动收集错题,按知识点聚合掌握度,并支持一键重考错题。

Mistakes are collected, mastery is aggregated per topic, and retakes reuse the same questions.

错题本与知识点掌握度
得分低于 60 分的题目进入错题本;重考答对后自动移除,待复核的题目不参与掌握度计算。 Questions scoring below 60 enter the mistake log; retaking correctly removes them, and flagged items never affect mastery.

它怎么工作

How it works

这里有一个容易混淆的地方:Jev 不是「打分模型」,而是一类输出决策的模型(System One / Decision Model)。它接收材料与问题,输出的是类型化概率:命题为真的概率、选项的概率分布、有序 rubric 上的分数,而不输出任何文字。所以整条链路上有三种明确的角色分工。

One distinction matters: Jev is not a scoring model but a decision model (System One). It takes material and questions, and returns typed probabilities: how likely a statement is true, a distribution over options, a score on an ordered rubric. It never returns prose. That splits the pipeline into three explicit roles.

01出题与拆点Generate普通 LLM:切分知识点、出题、拆评分点LLM splits topics, writes questions and rubric points
02客观题判分Deterministic代码比对:只有填空的语义等价才问模型Code compares answers; only semantic cloze asks a model
03主观题判分Point by pointJev:每个得分点一条判定,代码加权合成One Jev judgment per rubric point, combined in code
  • 出题由通用大模型完成。Jev 不生成任何文字,所以材料理解、题干、评分点都必须由生成式模型产出,并且每道题都要能在原文中定位到出处。
  • Question writing uses a normal LLM. Jev generates no text, so topics, stems and rubric points come from a generative model, and every question must anchor back to a verbatim span.
  • 客观题由代码判分:选择、判断、填空先做归一化比对(全半角、大小写、标点、可接受写法),只有字面不一致的填空才会调用一次「语义等价吗」的判定。
  • Objective questions are graded in code. Choices, true/false and cloze are normalised first; only a cloze answer that does not match literally triggers one semantic-equivalence question.
  • 简答题拆成一批原子问题:每个得分点一条 noul 问题,问题里带着该得分点的陈述与原文证据,最后按权重合成,再减去「与材料矛盾」和「编造材料外事实」这两项扣分。
  • A written answer is decomposed into atomic questions: one per rubric point, each carrying its own statement and evidence span. The score is a weighted sum minus explicit penalties for contradicting the material or inventing facts.
逐点判定表:得分点、权重、命中概率、判定强度与结果
结果页把「为什么是这个分」摊开:每个得分点的命中概率、判定强度与是否命中;本题因为一个关键点判定强度不足,整体被标记为待复核,并给出分数区间。 The report shows why the score is what it is: hit probability and judgment strength per point. This question is flagged for review with a score range because one key point was judged too weakly.

关键设计

Design decisions

  • 每个得分点的问题必须自带它所判的那一点。Jev 的多个问题是并行且互相独立的,如果所有问题共用同一段指令、只靠问题名字区分,模型根本不知道自己在判哪一点——判定质量会在没有报错的情况下悄悄崩掉。这是实现时踩到的第一个真问题。
  • Each rubric question must carry the point it judges. Jev answers questions independently and in parallel; if every question shares one instruction and only the key name differs, the model cannot know which point it is deciding. Quality collapses silently, with no error to notice.
  • 不确定就别装懂。判定强度低于阈值的关键点会让整题变成「待复核」,给出分数区间,并且不计入知识点掌握度。
  • Never fake certainty. A key point judged too weakly turns the whole question into a review item with a score range, excluded from mastery.
  • 扣分规则在代码里,而不在模型里。「矛盾」和「编造」两项概率由模型给出,但怎么扣、扣多少由代码决定。
  • Penalties live in code, not in the model. The model provides probabilities for contradiction and fabrication; the code decides how much to subtract.
  • 引擎可替换。判定层只有一个接口(DecisionEngine),当前实现是 TypeSafe Jev;模型输出更像黑盒、也没有开源替代的一天到来时,换实现不需要动业务代码。
  • The engine is swappable. Grading depends on one interface, currently backed by TypeSafe Jev, so a future self-hosted decision model only replaces that implementation.
  • 成本与准入可控。每人每天限量,自带密钥(BYOK)不占平台额度;Jev 按输入计费且输出免费,所以「每个得分点问一次」这种暴力拆解在经济上是可行的。
  • Cost and access stay bounded. Daily quotas apply, BYOK calls bypass platform quota, and because Jev charges for input only, one question per rubric point is affordable.
判定报告:总分、待复核数量、客观题正确数与逐题对照
判定报告给出总分、待复核数量、客观题正确数,下面逐题对照作答与参考答案,并附材料原文溯源。 The report summarises score, review items and objective accuracy, then compares each answer with the reference and links back to the source span.

实测与边界

Evidence and limits

项目自带一个判定评测脚本和一份小规模金标准集(12 道主观题、42 个得分点,逐点人工标注)。它输出逐点准确率、Brier 分数、校准分桶与自一致性,并设了门槛:逐点准确率不低于 90%,且校准分桶单调。

The project ships an evaluation harness with a small golden set (12 written questions, 42 labelled rubric points). It reports per-point accuracy, Brier score, calibration buckets and self-consistency, with a gate of at least 90% accuracy and monotonic calibration.

有意思的是,把「离线演示引擎」放进去跑,它只有 42.9% 的逐点准确率、Brier 0.56,而且置信度全部挤在 0.99 那一档。这正是要接入 Jev 的理由:词面重合不能替代校准过的判定模型,而这件事必须有数字,不能靠感觉。

Run the offline demo engine through it and it scores 42.9% per-point accuracy with a Brier score of 0.56, with all confidence crammed into one bucket. That number is the argument for using a calibrated decision model instead of word overlap, and it is why the gate is a number rather than an opinion.

适合Good fit不适合Poor fit
有明确要点的背诵型材料(面试八股、法条、术语、流程)Memorisation-heavy material with explicit points 需要执行或符号验证的题(复杂计算、代码正确性)Tasks needing execution or symbolic checking
要点式简答:判断「说到了没有」Point-based written answers 创新写作、开放论述的“好坏”评价Judging the quality of open-ended writing
量大、需要成本的批量判定High-volume, cost-sensitive grading 需要模型给出解释理由的场景(Jev 只给概率)Scenarios demanding a written justification

怎么用起来

Getting started

目前是自己部署使用的形态:克隆仓库、装依赖、填两个密钥(Jev 判定 + 出题模型),本地跑起来即可。没有密钥也能运行,只是会退化成离线演示模式,界面上会明确标注。

Today it is a self-hosted tool: clone the repository, install dependencies, provide two keys (a Jev grading key and a question-generation model), and run it locally. It also runs without any key, degrading to a clearly labelled offline demo mode.

npm install && npm run dev npm install && npm run dev 上传:Agent 面试八股(检索 / Agent / 评测) Upload: agent interview notes (retrieval, agents, evals) 确认知识点 → 生成 10 题 → 作答 → 看逐点判定 Confirm topics, generate ten questions, answer, read the point-level report
作答页:单选、判断、填空与简答混合试卷
作答过程自动保存草稿,交卷后逐题判定;题目顺序与题型配比在生成前由你决定。 Drafts save automatically and grading runs per question on submit. Question order and mix are chosen before generation.