Home
學生控制台
註冊會員/登入
研究知情同意書
UeduGPTs
Uedu Jupyter
我的學習畫像
學習特質探索
Uedu Mind
Uedu Fit
Garmin 儀錶板
運動紀錄
Wellness Toolkit
PALM
Uedu Brain Dev
Learning Portfolio
山巒地圖
我的證書
教師控制台
課程設定
EMI Toolkit
Assessment Toolkit
Interaction Toolkit
Forum Toolkit
AI 知識庫
功能介紹
教學實踐研究
學術交流
教學工作坊
活動主辦
課程搜尋
FAQ常見問答
使用教學
更新紀錄
學生研究團隊招募
建立AI助教說明
教師研究社群
教學研究支援
Uedu Labs
隱私權政策
資料安全
研究倫理
支援與訊息
支持 Uedu
Uptime 數據

UeduGPTs

--

Jupyters

5

AI 回覆桌面通知

AI 助教回覆完成時顯示桌面通知

聊天訊息通知

同學在討論區發送訊息時通知

聲音通知

每當有新通知時播放提示音

METHODOLOGY

Bloom's Taxonomy
認知層次分析方法論

說明 Uedu 平台如何透過大型語言模型(LLM)自動分類學生與 AI 助教對話中的認知層次,供教學研究者撰寫論文時參考。

1. 概述

Uedu 平台在學生與 AI 助教(UeduGPTs)的每一次對話中,自動對學生發送的訊息進行 Bloom's Revised Taxonomy 認知層次分類。此分析完全在後端執行,不影響學生的使用體驗,分析結果供教師在儀表板中檢視,亦可匯出供研究使用。

本文件說明此自動分類系統的完整方法論,包含理論依據、技術實作、Prompt 設計、資料品質控管等面向,協助研究者理解數據的產生過程。

目前 Prompt 版本

本文件描述的分類邏輯基於 v1.4,使用模型為 gpt-5-mini。歷次版本變更請見第 10 節

2. 理論基礎

本系統採用 Bloom's Revised Taxonomy(Anderson & Krathwohl, 2001)作為認知層次分類框架,將學生的認知操作分為由低到高的六個層次:

層次 英文 定義 學生訊息範例
1. 記憶 Remember 回憶、辨識事實性知識 「什麼是光合作用?」
2. 理解 Understand 解釋、歸納、推論意義 「為什麼要用遞迴?」
3. 應用 Apply 在新情境中執行或使用知識 「如何用 for 迴圈印九九乘法表?」
4. 分析 Analyze 分解要素、找出關係與結構 「這兩種方法差在哪?」
5. 評鑑 Evaluate 根據準則做出判斷 「A 和 B 方案哪個更適合?」
6. 創造 Create 整合元素產生新的東西 「幫我設計一個實驗方案」

分類原則

  • 依學生展現的認知操作分類,而非話題難度(簡單話題也可能展現高階認知操作)
  • 同一訊息涉及多層次時,以最主要的認知操作決定 bloom_level
  • 六個層次的分數(scores)總和為 1.0,反映各層次的佔比分布

3. 系統架構與資料流

以下流程圖說明一則學生訊息從送出到完成 Bloom 分類的完整資料流:

Bloom's Taxonomy 認知層次分析 — 資料流程圖 學生在 UeduGPTs 送出訊息 app.py 將訊息寫入 classroomgpt_my_log 記錄 log_id, chat_id, classroom_id, user_id, message 呼叫 analyze_bloom_async() 啟動背景 daemon thread(即時路徑) Step A:查詢對話脈絡 從 classroomgpt_my_log 取得前 2-3 輪 request/response 若學生訊息附帶圖片,一併取出並編碼為 base64 Step B:組裝 Prompt System Prompt(分類規則 + 六層次定義 + 輸出格式) User Message(對話脈絡 + 待分類學生訊息 + 圖片) Step C:呼叫 OpenAI API model=gpt-5-mini, response_format=json_object 失敗時最多重試 3 次 Step D:驗證與解析回應 JSON 格式驗證、bloom_level 合法性檢查、scores 數值驗證 驗證失敗則重試;最終失敗記錄 failure record Step E:寫入 classroomgpt_bloom_analysis INSERT IGNORE 確保冪等(同一 log_id 不重複寫入) 批次路徑(Batch Worker) 10 個並行 daemon thread 每 10 秒輪詢未分析的 log 依 log_id % 10 分區避免衝突 用於回補歷史資料 教師儀表板 / 匯出 API 查詢分析結果

流程摘要

  1. 學生在 UeduGPTs 送出訊息,app.py 將原始訊息寫入 classroomgpt_my_log 資料表
  2. 寫入完成後,立即呼叫 analyze_bloom_async() 啟動背景 thread
  3. 背景 thread 查詢該學生最近 2-3 輪的對話脈絡(含圖片)
  4. 將分類規則(System Prompt)與學生訊息(User Message)組裝後,呼叫 OpenAI API
  5. 解析 LLM 回傳的 JSON,驗證格式與欄位合法性
  6. 將分析結果寫入 classroomgpt_bloom_analysis

4. 分類 Prompt 設計

Prompt 採用 System / User 拆分模式(v1.2 起):

  • System Prompt:包含角色定位、分類規則、六個認知層次定義、判斷原則、輸出格式。此部分在同一 session 中固定不變,可受益於 LLM 的 prompt caching 機制。
  • User Message:僅包含待分類的學生訊息(可附帶對話脈絡與圖片)。

4.1 有意義性判斷(Meaningfulness)

分類前,LLM 會先判斷該訊息是否為有意義的學習訊息is_meaningful)。以下類型被視為無意義:

  • 招呼語 / 禮貌用語(謝謝、OK、好、嗯)
  • 測試訊息(123、test、aaa)
  • 純符號 / 表情符號
  • 工具性指令(翻譯、潤稿,不涉及認知操作)
  • 情緒反應 / 感嘆(好厲害、哇、太神了)
  • 閒聊(你是誰、講個笑話)
  • 確認 / 附和(了解、知道了、收到)
  • 重複 / 催促(快一點、繼續、???)
  • 純貼上無提問(只貼文字 / 程式碼但沒有問題)

短但有明確學習意圖的訊息仍判定為有意義,例如「為什麼?」「什麼是 DNA?」。

4.2 對話脈絡處理

系統會查詢學生當前訊息之前最近 2-3 輪的對話紀錄(學生提問 + AI 回覆)作為前文脈絡,但 LLM 只分類最後一則學生訊息,前文僅用於理解語境。

例如,當學生回覆「為什麼?」時,前文可以幫助判斷這是在追問概念解釋(Understand)還是在探究因果關係(Analyze)。

4.3 多模態支援

學生訊息可能附帶圖片(截圖、照片、手寫筆記等)。系統會將圖片編碼為 base64,以 OpenAI 的 multimodal content 格式送入 LLM,讓分類器能綜合文字與圖片內容進行判斷。

5. 輸出格式與欄位

LLM 回傳嚴格 JSON 格式,經系統驗證後存入資料庫。每一筆分析結果包含以下欄位:

欄位 型別 說明
is_meaningful Boolean 是否為有意義的學習訊息
bloom_level Enum 主要認知層次:remember / understand / apply / analyze / evaluate / create(無意義訊息為 NULL)
scores 6 個 Float 六個層次各自的佔比分數,總和 = 1.0
evidence Text LLM 提供的判斷依據(30 字以內)
skip_reason String 若 is_meaningful = false,記錄原因
method String 使用的模型名稱(如 gpt-5-mini)
prompt_version String Prompt 版本號(如 v1.4)
關於 scores 的解讀

bloom_level 代表 LLM 判定的主要認知層次(單一標籤),而 scores 六維分數則反映該訊息在各層次間的分布。研究者可依需求選用單一標籤(分布統計)或連續分數(雷達圖、軌跡分析)。

6. 資料處理雙路徑

系統採用即時路徑 + 批次路徑雙軌並行,確保每一則學生訊息都能被分析:

即時路徑(Real-time) 批次路徑(Batch)
觸發時機 學生送出訊息後立即觸發 背景 daemon 每 10 秒輪詢
實作方式 單一 daemon thread 10 個並行 daemon thread
(依 log_id % 10 分區)
用途 即時分析新訊息 回補歷史資料、處理即時路徑遺漏
防重複機制 資料庫 UNIQUE KEY on log_id,INSERT IGNORE 確保冪等

7. 資料品質控管

7.1 回應驗證

系統對 LLM 回傳的每一筆結果進行多層驗證:

  1. 非空驗證:檢查 LLM 是否回傳空內容(可能因 token 限制或異常終止)
  2. JSON 格式驗證:使用 response_format=json_object 強制 LLM 輸出 JSON,並在客戶端再次 parse 驗證
  3. bloom_level 合法性:確認為六個合法值之一,若 is_meaningful=true 但 bloom_level 無效則重試
  4. scores 數值驗證:確認六個分數皆為有效數值

7.2 重試機制

任何驗證失敗會觸發重試,最多重試 3 次,每次間隔 1 秒。若 3 次均失敗,系統會寫入一筆 failure record(method='error'),防止批次 worker 無限重試同一筆資料。

7.3 Prompt 版本追蹤

每筆分析結果都記錄使用的 prompt_versionmethod(模型名稱)。當 Prompt 或模型更新時,研究者可依版本號篩選資料,確保分析的一致性。

8. 教師可用的 API

教師(需具備該課程的教師 / 助教權限)可透過以下 API 取得分析資料:

API 端點 說明
GET /api/bloom/classroom/{id}/overview 全班認知層次分布概覽(各層次筆數、平均分數)
GET /api/bloom/classroom/{id}/students 每位學生的分析摘要(主要認知層次、平均分數)
GET /api/bloom/classroom/{id}/trajectory 認知層次時間軌跡(按週彙整,可篩選特定學生)
GET /api/bloom/classroom/{id}/export 匯出全班完整數據(JSON,按學生 × 週次彙整)

9. 研究引用建議

若您在學術論文中使用 Uedu 平台產生的 Bloom's Taxonomy 認知層次資料,建議在方法論章節中說明以下資訊:

方法論描述範本

學生與 AI 助教對話中的每則訊息,由 Uedu 平台自動進行 Bloom's Revised Taxonomy(Anderson & Krathwohl, 2001)認知層次分類。分類系統使用大型語言模型(LLM; OpenAI gpt-5-mini)作為分類器,透過結構化 Prompt(版本 v1.4)指示模型依據學生展現的認知操作(而非話題難度)判定主要認知層次,並輸出六維度分數分布。分類時納入前 2-3 輪對話脈絡以理解語境,並支援文字與圖片的多模態輸入。系統對每筆 LLM 回應進行格式與合法性驗證,失敗時最多重試三次。詳細方法論說明見 https://uedu.tw/doc/bloom。

建議同時提供以下資訊:

  • 資料收集期間使用的 Prompt 版本號(可從匯出資料的 prompt_version 欄位確認)
  • 使用的 LLM 模型名稱(可從 method 欄位確認)
  • 分析涵蓋的時間範圍與樣本量
  • 有意義 vs. 無意義訊息的比例

10. 版本歷程

版本 Prompt 模式 主要變更
v1.4 System / User 拆分 精簡版,針對 gpt-5-mini 優化,減少空回應。新增無意義類型(情緒反應、閒聊、確認附和、催促、純貼上)。新增多模態(圖片)支援說明。
v1.3 System / User 拆分 新增對話脈絡處理規則(只分類最後一則、前文僅供語境理解)
v1.2 System / User 拆分 首次拆分為 system prompt + user prompt,啟用 prompt caching
v1.1 合併式 新增 is_meaningful 有意義性判斷、skip_reason 欄位
v1.0 合併式 初始版本,基本六層次分類