Zpdf-Choose 是一个本地运行的选择题题库系统。它支持上传 PDF、图片和文本材料,调用 SiliconFlow 多模态模型抽取选择题,整理为题库后再进行刷题、背题、收藏和错题复习。
- 题库管理:创建、编辑、删除题库,支持题库合并
- 智能导题:上传 PDF / TXT / Markdown / 图片后,自动提取选择题
- AI 补全:对缺失答案或解析的题目做二次修复
- 刷题模式:支持顺序、逆序、乱序练习
- 背题模式:适合快速浏览题干、答案和解析
- 收藏与错题本:沉淀重点题和薄弱题
- 本地存储:默认使用 SQLite,数据文件位于
data/sqlite.db
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- better-sqlite3
- pdfjs-dist
- SiliconFlow API
- Node.js 20 及以上
- npm 10 及以上
- 可访问 SiliconFlow API
如果是首次在新机器启动,建议先确认本机已经具备 better-sqlite3 和 canvas 所需的原生编译环境。
项目不会提交本地环境变量。请在根目录创建 .env.local,推荐直接从示例文件复制:
cp .env.example .env.local然后按需填写:
SILICONFLOW_API_KEY=你的_SiliconFlow_API_Key
SILICONFLOW_API_URL=https://api.siliconflow.cn/v1/chat/completions
SILICONFLOW_MODEL=Qwen/Qwen3-VL-30B-A3B-Instruct说明:
SILICONFLOW_API_KEY:必填,用于题目抽取和修复SILICONFLOW_API_URL:通常保持默认即可SILICONFLOW_MODEL:可替换成你实际使用的视觉模型
未配置这些变量时,依赖 AI 的导题能力无法正常工作。
npm install项目默认运行在 3002 端口:
npm run dev启动后访问:
http://localhost:3002
npm run build
npm run startsrc/app:页面和 API 路由src/components:界面组件src/lib:数据库、题目处理、AI 调用等核心逻辑data/:SQLite 数据文件目录,运行后自动生成uploads/temp/:上传文件临时目录
data/、uploads/temp/、.env.local 都属于本地运行时数据,已经加入忽略规则,不应提交到 Git。
本项目归北京智通明识科技有限公司所有,任何人不得商用及倒卖。