一套以 FastAPI + MySQL + HTML/Tailwind CSS 建構的全端適性學習平台,整合 AI 自動出題與錯誤分析功能,讓學生在作答後立即獲得個人化的學習建議。
AI_Learning_System/
├── backend/
│ └── main.py # FastAPI 後端(出題、作答、AI 分析)
├── database/
│ └── setup.sql # MySQL 資料庫結構定義
└── frontend/
└── index.html # 前端介面(Tailwind CSS)
技術棧
| 層級 | 技術 |
|---|---|
| 後端 | Python 3、FastAPI、Uvicorn |
| 資料庫 | MySQL、PyMySQL |
| 前端 | HTML5、Tailwind CSS(CDN) |
| AI 分析 | 規則式錯誤分類 + 標籤導向個人化建議 |
- 後端隨機生成四則運算題目(
+、-、*、/),避免除以零 - 每題自動寫入
Questions資料表並標記運算類型標籤
- 前端送出答案後,後端查詢正確答案並比對
- 每筆作答(含對錯結果)寫入
Answers資料表,保存完整學習軌跡
- 答錯時自動觸發錯誤分析,分類錯誤類型並根據題目標籤給出複習建議
- 分析結果寫入
AI_Analysis資料表,可供後續學習報告使用
- 前端即時顯示累計題數、答對題數、正確率
Users -- 使用者資料(學生 / 教師角色)
Questions -- 題目內容、正確答案、標籤
Answers -- 作答紀錄(含時間戳記)
AI_Analysis -- AI 錯誤診斷與複習建議pip install fastapi uvicorn pymysqlmysql -u root -p < database/setup.sql請先確認 MySQL 已啟動,並在
backend/main.py中填入正確的資料庫密碼。
cd backend
uvicorn main:app --reload後端服務預設運行於 http://localhost:8000
直接用瀏覽器開啟 index.html 即可,無需額外建置步驟。
| 方法 | 路徑 | 說明 |
|---|---|---|
GET |
/generate-question |
隨機產生一道數學題並存入資料庫 |
POST |
/submit |
提交作答,回傳對錯結果與 AI 分析 |
{
"user_id": 1,
"question_id": 123,
"answer": "7"
}{
"correct": false,
"ai_feedback": {
"type": "邏輯運算錯誤",
"msg": "AI 分析建議:針對標籤「AI自動出題-*」進行複習。正確答案為 12。"
}
}這個專案的核心問題意識是:學生通常知道自己答錯,但不知道為什麼錯。系統透過標籤機制記錄每道題目的運算類型,在錯誤發生時精準指向需要複習的知識點,而非只給一個「答錯了」的提示。
資料庫設計刻意將題目、作答紀錄、AI 分析拆成三張獨立的表,保留未來擴充的空間——例如加入學習歷程分析、弱點雷達圖、或串接 LLM 提供更深入的解題說明。
- 串接 OpenAI API 提供更豐富的自然語言錯誤解釋
- 根據歷史作答紀錄動態調整題目難度(真正的適性學習)
- 加入教師後台,查看班級整體學習狀況
- 使用者登入與多人支援
余萬崧 — 大同大學資訊工程學系