本地部署智能错题本

一个基于 AI 的智能错题管理系统,帮助学生高效整理、分析和复习错题。

✨ 主要功能

  • 🤖 AI 智能分析:自动识别题目内容,生成解析、知识点标签和同类练习题。

  • ⚙️ 灵活的 AI 配置:支持 Google GeminiOpenAI (及兼容接口) 两种 AI 提供商,可直接在网页设置中动态切换和配置。

  • 📚 多错题本管理:支持按科目(如数学、物理、英语)创建和管理多个错题本。

  • 🏷️ 智能标签系统:自动提取知识点标签,支持自定义标签管理。

  • 🔍 多维度筛选:支持按掌握状态、时间范围、知识点标签、年级学期、试卷等级等多种条件筛选错题。

  • 🖨️ 灵活导出打印:一键导出筛选后的错题,支持自定义打印内容(答案/解析/知识点)和图片缩放比例,可直接打印或保存为 PDF。

  • 📝 智能练习:基于错题生成相似的练习题,巩固薄弱环节。

  • 📊 数据统计:可视化展示错题掌握情况和学习进度。

  • 🔐 用户管理:支持多用户注册、登录,数据安全隔离。

  • 🛡️ 管理员后台:提供用户管理功能,可禁用/启用用户、删除违规用户。

📸 屏幕截图功能 (HTTPS 设置)

本应用的屏幕截图功能依赖浏览器的安全上下文 (HTTPS)。在 Docker 或局域网环境中使用时,请参考 HTTPS 配置指南 启用内置 HTTPS 支持。

📱 PWA 支持 (添加到主屏幕)

本项目支持 PWA (Progressive Web App),您可以将应用添加到手机主屏幕,获得原生应用般的使用体验。

功能特性

  • 🚀 快速启动:点击主屏幕图标直接打开,无需输入网址。

  • 📱 沉浸体验:全屏运行,无浏览器地址栏干扰。

  • 🎨 原色适配:应用图标和启动画面适配系统主题。

使用方法

  • iPhone / iPad (Safari): 点击底部 分享 按钮 -> 选择 "添加到主屏幕"

  • Android (Chrome): 点击右上角 菜单 -> 选择 "添加到主屏幕""安装应用"

🛠️ 技术栈

🚀 快速开始

方式一:使用 Docker 部署

1. 启动服务

您可以选择 直接使用命令 (适合快速测试) 或 Docker Compose (适合长期运行)。

选项 A:直接使用 Docker 命令

docker run -d --name wrong-notebook \
  -e NEXTAUTH_SECRET="your_secret_key" \
  -p 3000:3000 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  ghcr.io/wttwins/wrong-notebook

选项 B:使用 Docker Compose (推荐)

使用 docker-compose.yml 文件进行管理。

  1. 下载配置文件

    curl -o docker-compose.yml https://raw.githubusercontent.com/wttwins/wrong-notebook/refs/heads/main/docker-compose.yml
  2. 启动服务

    docker-compose up -d
  3. 查看日志

    docker-compose logs -f
  4. 停止服务

    docker-compose down

方式二:本地源码运行

1. 克隆仓库

git clone https://github.com/wttwins/wrong-notebook.git
cd wrong-notebook

2. 环境准备

确保已安装 Node.js (v18+) 和 npm。

3. 安装依赖

npm install

4. 配置环境变量

复制 .env.example.env 并填入必要的配置:

cp .env.example .env

基础配置

环境变量

描述

默认值

说明

DATABASE_URL

数据库连接地址

file:./dev.db

SQLite 数据库路径

NEXTAUTH_SECRET

Auth 密钥

用于加密 Session,生产环境建议设置,可以使用 openssl rand -base64 32 生成一个随机字符串作为密钥

NEXTAUTH_URL

访问地址

http://your-domain-name:3000

部署后的访问地址

AUTH_TRUST_HOST

信任主机头

true

设置为 true 时自动推断 URL,适合 Docker/PaaS

LOG_LEVEL

日志级别

debug (开发) / info (生产)

可选值:trace, debug, info, warn, error, fatal

HTTP_PROXY

HTTP 代理

设置 HTTP 代理

HTTPS_PROXY

HTTPS 代理

设置 HTTPS 代理

AI 配置

环境变量

描述

默认值

说明

AI_PROVIDER

AI 提供商

gemini

可选 gemini, openaiazure

GOOGLE_API_KEY

Gemini API Key

使用 Gemini 时必填

GEMINI_BASE_URL

Gemini API 地址

可选,用于自定义 API 地址

GEMINI_MODEL

Gemini 模型

gemini-2.5-flash

可选,如 gemini-3.0-flash

OPENAI_API_KEY

OpenAI API Key

使用 OpenAI 时必填

OPENAI_BASE_URL

OpenAI API 地址

可选,用于兼容的 API 服务

OPENAI_MODEL

OpenAI 模型

gpt-4o

可选,如 gpt-4o

AZURE_OPENAI_API_KEY

Azure API Key

使用 Azure OpenAI 时必填

AZURE_OPENAI_ENDPOINT

Azure Endpoint

Azure 资源端点,如 https://xxx.openai.azure.com

AZURE_OPENAI_DEPLOYMENT

部署名称

Azure 模型部署名称

AZURE_OPENAI_API_VERSION

API 版本

2024-02-15-preview

可选,Azure API 版本

AZURE_OPENAI_MODEL

Azure 模型

gpt-4o

可选,显示的模名称

5. 初始化数据库

npx prisma migrate dev
npx prisma db seed

6. 管理员账户

默认管理员账户:

  • 邮箱: admin@localhost

  • 密码: 123456

管理员登录后,可在“设置” -> “用户管理”中管理系统用户。

7. 启动开发服务器

npm run dev

访问 http://your-domain-name:3000 开始使用。

⚙️ AI 模型配置

本项目支持动态配置 AI 模型,无需重启服务器。

  1. 进入设置:点击首页右上角的设置图标。

  2. 选择提供商:支持 Google Gemini, OpenAI (或兼容 API) 和 Azure OpenAI

  3. 填写参数

    • 通用参数: API Key, Base URL (或 Endpoint), Model Name (或 Deployment Name)。

    • Azure 特有: Deployment Name (部署名称), API Version (API 版本)。

  4. 保存生效:点击保存后即刻生效。

注意:网页配置会保存到 config/app-config.json 文件中,该文件的优先级高于 .env 环境变量。


本地部署智能错题本
http://localhost:8090//archives/1767249394956
作者
昊昱天合
发布于
2026年01月01日
更新于
2026年01月01日
许可协议