32 lines
26 KiB
JSON
32 lines
26 KiB
JSON
{
|
||||
|
|
"id": "job_murepie2_9d791321",
|
|||
|
|
"kind": "demo",
|
|||
|
|
"chatId": "chat_munfo08r_8172fd8a",
|
|||
|
|
"toolCallId": "call_87f79e758f8145169a8b5550",
|
|||
|
|
"status": "done",
|
|||
|
|
"activity": "delivered",
|
|||
|
|
"createdAt": "2026-10-02T20:19:31.802Z",
|
|||
|
|
"updatedAt": "2026-10-02T20:35:31.428Z",
|
|||
|
|
"usage": {
|
|||
|
|
"model": "openrouter:deepseek/deepseek-v4.1-flash",
|
|||
|
|
"inputTokens": 16320,
|
|||
|
|
"outputTokens": 14818,
|
|||
|
|
"cacheReadTokens": 47104,
|
|||
|
|
"cacheWriteTokens": 0,
|
|||
|
|
"reasoningTokens": 6051,
|
|||
|
|
"steps": 5,
|
|||
|
|
"lastStep": {
|
|||
|
|
"inputTokens": 325,
|
|||
|
|
"outputTokens": 582,
|
|||
|
|
"cacheReadTokens": 15744,
|
|||
|
|
"cacheWriteTokens": 0,
|
|||
|
|
"reasoningTokens": 203
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
"result": {
|
|||
|
|
"title": "BKT belief tracker",
|
|||
|
|
"html": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Bayesian Knowledge Tracing — Belief Tracker</title>\n<style>\n :root{\n --accent:#2563eb;\n --accent-soft:#dbeafe;\n --accent-2:#93c5fd;\n --ink:#1f2937;\n --muted:#6b7280;\n --line:#e5e7eb;\n --panel:#ffffff;\n --bg:#f6f7f9;\n --green:#15803d;\n --green-bg:#ecfdf5;\n --green-line:#a7f3d0;\n --red:#b91c1c;\n --red-bg:#fef2f2;\n --red-line:#fecaca;\n --mono: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Consolas, monospace;\n }\n *{box-sizing:border-box}\n html,body{margin:0;padding:0}\n body{\n background:var(--bg); color:var(--ink);\n font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n font-size:14px; line-height:1.45; padding:18px 18px 26px;\n }\n .wrap{max-width:1080px;margin:0 auto}\n h1{font-size:19px;margin:0 0 3px;letter-spacing:-.01em}\n .subtitle{color:var(--muted);font-size:13px;margin:0 0 16px}\n .grid{display:grid;grid-template-columns:296px minmax(0,1fr);gap:14px;align-items:start}\n @media (max-width:840px){ .grid{grid-template-columns:1fr} }\n\n .panel{\n background:var(--panel);border:1px solid var(--line);border-radius:14px;\n padding:14px 14px 16px;box-shadow:0 1px 2px rgba(16,24,40,.04);\n }\n .panel + .panel{margin-top:14px}\n .panel h2{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-weight:700}\n\n /* ---------- controls ---------- */\n .ctl{margin-bottom:15px}\n .ctl .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}\n .ctl .name{font-size:13px;font-weight:600}\n .ctl .val{\n font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--accent);\n background:var(--accent-soft);border-radius:6px;padding:1px 7px;min-width:44px;text-align:center;\n }\n .ctl .hint{font-size:11.5px;color:var(--muted);margin-top:4px}\n input[type=range]{\n -webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;margin:0;cursor:pointer;\n }\n input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:#e8ecf2}\n input[type=range]::-webkit-slider-thumb{\n -webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;\n background:var(--accent);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.28);margin-top:-6px;\n }\n input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:#e8ecf2}\n input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.28)}\n\n .btnrow{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px}\n .btn{\n font-family:inherit;font-size:15px;font-weight:700;border-radius:11px;border:1px solid;\n padding:13px 10px;cursor:pointer;transition:transform .08s,filter .15s,opacity .15s;\n }\n .btn:active{transform:translateY(1px)}\n .btn:disabled{opacity:.45;cursor:default}\n .btn-correct{background:var(--green-bg);border-color:var(--green-line);color:var(--green)}\n .btn-wrong{background:var(--red-bg);border-color:var(--red-line);color:var(--red)}\n .btn-reset{\n grid-column:1 / -1;background:#f9fafb;border-color:var(--line);color:var(--muted);\n font-size:13px;font-weight:600;padding:9px;\n }\n\n /* ---------- belief readout ---------- */\n .readout{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}\n .bigval{font-size:52px;line-height:1;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.02em}\n .bigval .lbl{font-size:14px;font-weight:600;color:var(--muted);margin-right:10px;letter-spacing:0}\n .phaseNow{font-size:12.5px;font-weight:700;color:var(--muted);font-family:var(--mono)}\n .phaseNow.predict{color:var(--accent)}\n .phaseNow.correct{color:var(--green)}\n\n .barwrap{margin-top:14px}\n .track{\n p
|
|||
|
|
"tested": true,
|
|||
|
|
"notes": "The demo is built and verified — all three headless runs passed with no console errors, and the probe checks confirm the arithmetic matches Bayes' rule exactly (e.g. p=0.300 → p̄=0.370 → 0.725 on \"Correct\", and 0.068 on \"Incorrect\" with the defaults).\n\n**Notes for the teacher**\n\n- **What it shows:** a single-skill BKT belief tracker — one big P(knows) number (3 decimals) plus a filled bar, a two-panel \"PREDICT → CORRECT\" strip with live formulas/numerator/denominator, a belief sparkline over attempts (dashed = p̄ after predict, solid = p after correct, each attempt marked C or W), and a short log of the last six attempts (response, p, p̄, p′).\n- **Controls:** four sliders — Prior (0–1, default 0.30), Learn rate T (0–0.6, default 0.10), Slip s (0–0.5, default 0.10), Guess g (0–0.5, default 0.20) — plus **Correct**, **Incorrect**, and **Reset**. Each answer press animates the two phases in sequence with the active panel highlighted and the status line narrating which operation is running, so the two updates are visibly separate.\n- **Try this:** press Incorrect three times and watch belief crater toward 0 (each subsequent wrong answer barely dents it once the denominator is dominated by the leak), then press Correct twice to see recovery; set Slip = 0 and Guess = 0 to make the evidence \"hard\"; or set T = 0 to isolate pure Bayesian correction. Note that moving the Prior slider intentionally restarts the whole sequence."
|
|||
|
|
}
|
|||
|
|
}
|