AI 應用 · 本地 LLM

考試出題器 — 基於本地 LLM 的自動出題系統

餵入教材,LLM 自動摘要重點並生成多題型考試。支援審閱替換、互動式 HTML 試卷輸出,一鍵完成從教材到考卷的全流程。

使用的技術

FlaskLM StudioLLMPDF ParsingWord 解析HTML ExportCondaPython

專案背景

出考卷是教學工作中最耗時的環節之一。這個專案利用本地運行的 LLM(透過 LM Studio), 將教材內容自動轉換為結構化的考試題目,完全離線運行,無需依賴雲端 API,保障資料隱私。

核心流程

📄
Step 1輸入教材
支援多檔案上傳(PDF、Word、TXT、Markdown)或直接貼文字,可混合使用多種來源。
🧠
Step 2摘要重點
LLM 先閱讀所有教材,提取核心概念和必考重點,作為後續出題的知識基礎。
✏️
Step 3分題型生成
每種題型(是非題、填充題、選擇題)獨立呼叫 LLM 生成,自動重試補齊不足的題數。
👀
Step 4審閱與替換
使用者逐題檢視,標記不滿意的題目,一鍵替換 — LLM 會自動避開已生成的舊題。
📝
Step 5輸出互動式試卷
生成互動式 HTML 試卷,支援線上作答、自動計分、對答案、列印,開箱即用。

檔案架構

exam-generator/
├── app.py                    # Flask 主程式,4 個 API 端點
├── config.py                 # LM Studio 連線設定
├── generator/
│   └── question_gen.py       # 核心引擎:摘要 → 分題型生成 → 自動補齊 → 替換
├── parsers/                  # 支援 PDF、Word、純文字、Markdown 解析
├── exporter/
│   └── html_exporter.py      # 輸出互動式 HTML 試卷
├── templates/
│   └── index.html            # 前端介面
├── start.bat / start.ps1     # 一鍵啟動腳本
└── requirements.txt

技術亮點

🔒
完全離線
本地 LLM 運行,資料不離開本機
📚
多格式解析
PDF / Word / TXT / MD 全支援
🔄
智慧替換
標記不滿意的題目,LLM 自動避舊題重新生成
📊
互動式輸出
HTML 試卷可作答、計分、列印
一鍵啟動
start.bat / start.ps1 自動建環境裝依賴
🎯
多題型支援
是非題、填充題、選擇題獨立生成

使用場景

  • 教師備課:上傳教材後快速生成測驗卷,大幅縮短出題時間
  • 學生自測:用自己的筆記生成練習題,針對性複習
  • 企業培訓:根據培訓文件自動產生考核試卷
  • 語言學習:生成填空題和選擇題進行詞彙與語法練習