Skip to content

RainYu0510/AI_Learning_System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

AI 適性學習系統 (AI Adaptive Learning System)

一套以 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 分析 規則式錯誤分類 + 標籤導向個人化建議

功能說明

🎲 AI 自動出題

  • 後端隨機生成四則運算題目(+-*/),避免除以零
  • 每題自動寫入 Questions 資料表並標記運算類型標籤

✅ 作答判斷與紀錄

  • 前端送出答案後,後端查詢正確答案並比對
  • 每筆作答(含對錯結果)寫入 Answers 資料表,保存完整學習軌跡

🤖 AI 錯誤分析

  • 答錯時自動觸發錯誤分析,分類錯誤類型並根據題目標籤給出複習建議
  • 分析結果寫入 AI_Analysis 資料表,可供後續學習報告使用

📊 即時學習狀態

  • 前端即時顯示累計題數、答對題數、正確率

資料庫結構

Users        -- 使用者資料(學生 / 教師角色)
Questions    -- 題目內容、正確答案、標籤
Answers      -- 作答紀錄(含時間戳記)
AI_Analysis  -- AI 錯誤診斷與複習建議

快速啟動

1. 安裝依賴

pip install fastapi uvicorn pymysql

2. 建立資料庫

mysql -u root -p < database/setup.sql

請先確認 MySQL 已啟動,並在 backend/main.py 中填入正確的資料庫密碼。

3. 啟動後端

cd backend
uvicorn main:app --reload

後端服務預設運行於 http://localhost:8000

4. 開啟前端

直接用瀏覽器開啟 index.html 即可,無需額外建置步驟。


API 端點

方法 路徑 說明
GET /generate-question 隨機產生一道數學題並存入資料庫
POST /submit 提交作答,回傳對錯結果與 AI 分析

POST /submit 請求格式

{
  "user_id": 1,
  "question_id": 123,
  "answer": "7"
}

回應範例(答錯時)

{
  "correct": false,
  "ai_feedback": {
    "type": "邏輯運算錯誤",
    "msg": "AI 分析建議:針對標籤「AI自動出題-*」進行複習。正確答案為 12。"
  }
}

設計思路

這個專案的核心問題意識是:學生通常知道自己答錯,但不知道為什麼錯。系統透過標籤機制記錄每道題目的運算類型,在錯誤發生時精準指向需要複習的知識點,而非只給一個「答錯了」的提示。

資料庫設計刻意將題目、作答紀錄、AI 分析拆成三張獨立的表,保留未來擴充的空間——例如加入學習歷程分析、弱點雷達圖、或串接 LLM 提供更深入的解題說明。


未來規劃

  • 串接 OpenAI API 提供更豐富的自然語言錯誤解釋
  • 根據歷史作答紀錄動態調整題目難度(真正的適性學習)
  • 加入教師後台,查看班級整體學習狀況
  • 使用者登入與多人支援

作者

余萬崧 — 大同大學資訊工程學系

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors