我之前的文章《AI 原生的题库系统长什么样?》 分享过这个系统的设计思想,有不少朋友私信说想体验下,今天索性就把代码开源出来。

开源仓库地址:https://github.com/gygy-open/question-bank

主要功能

模块说明
智能导入上传 Word / Markdown / 图片,AI 自动抽取结构化题目(三步流程:上传 → 审核 → 入库)
题库管理多条件筛选、批量操作、知识点/标签关联、母子题结构编辑、软删除
知识点体系按学科组织的树形知识点,向量化入库,支持 RAG 自动匹配
AI 对话多模型聊天(支持图片),内置工具调用:搜索题库、向量检索知识点、查标签、单题/批量出题并自动挂知识点,对话中直接生成题目草稿
审核工作流草稿 → 待审 → 发布 → 归档,审核日志完整记录
学科 & 标签学科 CRUD、标签分类管理
用户 & 权限用户管理、角色控制、登录统计
操作审计全局活动日志,支持分页与筛选
系统设置AI Provider / Model 热配置、Prompt Template 管理(超管专属)
文件预览DOCX / Markdown 源文件在线预览

支持的题型:单选、多选、填空(多解)、判断、解答题,完整的富文本编辑 + LaTeX 公式渲染。

开源协议

项目采用 AGPL-3.0 协议:

  • ✅ 自由使用、修改、部署
  • ✅ 商业使用
  • ⚠️ 通过网络提供服务时,需要公开修改后的源码

之所以选 AGPL,是希望使用者享受开源的同时,也能把改进回馈给社区。

技术选型

对技术感兴趣的同学可以看下,这里简单说下架构:

技术
前端Nuxt 4 (SPA) · Vue 3.5 · TypeScript · Tailwind v4 · Shadcn UI
编辑器Tiptap + KaTeX + MathLive(所见即所得的公式编辑)
后端Python 3.13 · FastAPI · SQLAlchemy 2.0 (全异步) · Alembic
数据MySQL 8 · ChromaDB(向量检索)
AIGoogle Gemini · OpenAI 兼容 API(DeepSeek、通义等均可接入)
部署Docker Compose

使用 Docker 快速体验

git clone https://github.com/gygy-open/question-bank.git
cd question-bank
cp .env.example .env
# 编辑 .env,设置 SECRET_KEY 和 MYSQL_PASSWORD

docker compose up -d --build

# 初始化数据 + 创建管理员
docker compose exec backend python scripts/initial_data.py
docker compose exec backend python scripts/create_superuser.py

打开 http://localhost 就能用了。


把这个项目开源出来,希望能帮到有需求的教研人员、老师,或者对 AI + 教育感兴趣的开发者。

GitHub 地址:https://github.com/gygy-open/question-bank

欢迎 Star ⭐、提 PR。