全部作品

D-viva-assistant-agent

案例所证明的能力 把来源材料转化为练习、反馈与复盘的阶段化学习工作流

  • Next.js
  • TypeScript
  • AI SDK v6
  • SQLite / better-sqlite3
  • Tailwind CSS
  • Zod
  • Vitest
  • Electron

一个面向论文答辩准备的私有桌面 app。它把学生自己的论文转成带来源的练习题、评分与修订任务,同时把论文文件与练习记录留在本机。

查看源码

项目概览

角色 独立开发者 — 产品设计、架构、数据库层、LLM 整合、校验与测试

场景

现有答辩准备工具要么是通用闪卡,要么每道题都要手打。真正的瓶颈是 grounding:AI 考官只有在问题能追溯到论文原文时才有用;判分只有在能引用所用证据时才可信。

产品策略

我做了一套私有桌面流程:论文先导入成 evidence blocks,练习题与评分都引用这些 blocks,低分回答进入复盘队列。除非用户主动选择 provider,文件与历史都留在本机。

评测

我在真实论文答辩准备中持续使用,检查问题能否回到论文原文、反馈能否形成具体改进,以及薄弱回答能否进入可执行的复盘队列。

成果与当前阶段

已完成本地优先论文答辩准备 app · 带来源练习 · 隐私优先桌面使用

我的工作

  • 论文 ingest 管线 — PDF / MD / TXT → 段落 evidence block,附导入质量报告;所有下游 AI 调用 grounded 到 ingest 输出,不靠模型先验
  • AI 备考包生成 — 论文摘要、关键数字、方法问答、高压问答、文献卡;每条引用来源 evidence block,落库前过校验器
  • 可编辑备考项、重新校验、review queue,以及带无 key 静态 fallback 的 training plan 生成器
  • 实时 AI 考官 — 从证据块中生成问题,从准确性、深度、语言、方法论和沉着度五个维度评估回答,并提供问题诊断、英文改写和追问
  • STT 练习闭环 — 录音 → 转写(Browser Web Speech 或 Google Cloud STT)→ 判分;低分项进复盘修复板
  • Provider-agnostic LLM 层 — AI SDK v6 generateObject + Zod 结构化判分;支持 Gemini / Claude / OpenAI;无 key 时优雅降级(练习和转写仍可用)
  • Electron + electron-builder macOS 打包,形成私有、单用户的桌面 app

技术证据

  • 本地优先数据模型:SQLite(better-sqlite3、WAL、FTS5)存论文、evidence block、备考包与练习记录;DB 完全在本机
  • 隐私设计:云端 AI 是 opt-in 并明告「发什么给谁」;API key 在 .env.local(gitignore);日志脱敏;录音不同步
  • Next.js App Router,DB 仅服务端(runtime=nodejs 边界、globalThis 单例、serverExternalPackages for better-sqlite3);AI 调用 env 解析后启用
  • 测试默认注入 MockLlmClient;真实模型调用由 RUN_LIVE_AI=1 开关控制,且只对公开样本论文运行

让每条生成都 grounded

导入的论文(PDF / Markdown / 纯文本)被抽取成段落 evidence block,附质量报告。所有下游内容——摘要、关键数字、方法问答、高压问答、文献卡与 training plan——都绑定到 evidence block 并过落库前校验。judge 与 examiner 以绑定证据作为判定依据。

考官闭环

实时考官从 evidence block 出题,对回答做五维评分,附诊断、英文改写与追问。可以打字或粘贴,也可以录音——音频被转写(Browser Web Speech 或 Google Cloud STT)并判分。低分项进入 review queue 与复盘修复板。

本地优先,云端 AI opt-in

SQLite 库、录音与论文文件都留在本机。云端 AI 是可选功能,有 provider key 时启用,并会清楚预览发送内容与接收方;本地模式仍可使用练习与转写。

已发布的是私有、单用户桌面 app。provider-agnostic LLM 层支持 Gemini、Claude 与 OpenAI;测试使用 mock client,受 gate 控制的 live checks 则只运行于公开样本论文。

界面截图

本地优先的论文答辩练习,包含评分与复盘任务。
练习问题由学生自己的论文证据生成。
低分练习项会进入复盘队列,便于针对性修复。
生成的备考材料会保留与导入论文证据的连接。

放大截图