Home
學生控制台
註冊會員/登入
研究知情同意書
UeduGPTs
Aida 優學伴
Uedu Open
支援與訊息
Uptime 數據

UeduGPTs

--

Jupyters

14

AI 回覆桌面通知

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

聊天訊息通知

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

聲音通知

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

METHODOLOGY

Uedu Open
AI Chat as Learning for OCW

將 MIT OpenCourseWare 等開放式課程匯入 Uedu,搭配以逐字稿為基礎的對話式 AI 助教,讓自學者能與課程內容進行有脈絡的問答互動,將「閱讀/觀看」型的開放教材升級為「對話」型的學習體驗。

1. 設計理念

開放式課程(OpenCourseWare, OCW)自 2002 年 MIT 帶頭之後,已累積數萬門高品質教材。但對自學者而言,OCW 仍是單向廣播:影片、講義、習題均為靜態資源,無法回答「這段公式為什麼成立」「我看不懂這個比喻」這類即時困惑。

Uedu Open 將開放教材匯入平台,並針對每堂 lecture 提供獨立的 AI 對話夥伴。AI 知道學生正在看哪一堂課、哪一段內容,能根據逐字稿提供有脈絡的引導,將「看講義」升級為「跟講師討論」。

與 ClassroomGPT、Aida 的定位差異

ClassroomGPT 服務正式選課學生,由教師設定 system prompt;Aida 是平台層級的 Agentic AI,採 AIDA 框架引導;Uedu Open 則是針對 OCW 等公開教材的輕量對話介面,無教師個別設定,預設使用通用引導 prompt + lecture 逐字稿作為脈絡。

2. 系統架構

Uedu Open 由兩個 Flask Blueprint 組成,定義於 app_uedu_open.py

  • uedu_open(前綴 /open):UI 路由,提供課程目錄、課程詳情、Lecture 播放頁面
  • uedu_open_api(前綴 /api/open):API 路由,提供 AI 對話 SSE 串流、對話歷史、學習指南

主要頁面

頁面路由功能
課程目錄/open/分類、學科、難度、關鍵字搜尋(MySQL FULLTEXT)
課程詳情/open/course/<slug>課綱、Lectures 列表、教材檔案、AI 學習指南
Lecture 播放/open/lecture/<lecture_id>影片播放器 + 右側 AI 對話面板

技術組成

  • LLM:OpenAI gpt-5.4-mini(單一模型,無 function calling)
  • 串流:Server-Sent Events(SSE),訊息使用 base64 編碼避免換行干擾
  • 檢索策略:簡易 prompt augmentation(將 lecture 逐字稿前 3000 字直接拼進 system prompt),不使用 embedding 向量檢索
  • 資料庫:MySQL;課程內容支援 MATCH/AGAINST 全文檢索(中英雙欄)

3. 資料模型

共 6 張主要資料表,定義於 sql/open_tables.sql

資料表用途關鍵欄位
open_sources 開放教材來源定義 code、name、homepage_url、api_config(JSON,含 API endpoint 與認證資訊)
open_courses 課程主表 slug、title / title_zh、description / description_zh、instructors(JSON)、topics(JSON)、level、course_number、source_id
open_lectures 單堂 lecture / 影片 video_id、video_platform(YouTube / 本地)、duration、transcript_text、order_index
open_materials 課程附件(PDF / 講義 / 作業) file_path、category、size_bytes
open_chat_sessions 學習者對話紀錄 session_uuid、user_id、course_id、lecture_id、messages(JSON 陣列)
open_study_guides AI 自動產生的學習指南 summary、key_terms、quiz_questions(皆 JSON)

初始 seed 資料只啟用 MIT OpenCourseWare 一個來源,schema 預留 nthu_ocwstanford_edxedx_api 等識別碼,未來可由各來源實作獨立的匯入腳本。

4. 課程匯入

外部資料透過背景匯入流程進入資料庫,目前以 MIT Learn API(https://api.learn.mit.edu/api/v1/courses/)為主要來源:

  1. 匯入腳本依 open_sources.api_config 連接外部 API
  2. 抓取課程 metadata(標題、講師、學期、難度、topics)寫入 open_courses
  3. 逐課抓取 lectures,含影片 ID、長度、逐字稿(YouTube auto-caption 或 OCW 提供的 SRT)
  4. 抓取課程附件(PDF / 講義)寫入 open_materials
  5. 選擇性產生 AI 學習指南(摘要 / 關鍵詞 / 測驗)寫入 open_study_guides
授權與引用

匯入的教材必須符合來源的開放授權條款(MIT OCW 為 CC BY-NC-SA 4.0)。Uedu Open 不主張對教材的著作權,僅提供「對話式探索介面」,原始教材的著作權與引用責任歸屬原作者與機構。

5. AI 對話流程

核心 endpoint 為 POST /api/open/chat/stream(SSE),實作於 api_open_chat_stream()

  1. 檢查使用者已登入(公開瀏覽不需登入,但對話須登入,以利學習資料追蹤)
  2. 讀取 lecture_id,撈取對應 lecture + 所屬 course 的 metadata
  3. build_system_prompt() 動態組裝 system prompt(見下節)
  4. 若有 session_uuid,從 open_chat_sessions.messages 還原既有對話脈絡;否則建立新 session
  5. 送 OpenAI gpt-5.4-minitemperature=0.7max_completion_tokens=1500,啟用 streaming
  6. 每收到一個 token chunk,base64 編碼後以 SSE event 串回前端
  7. 串流結束後,將完整 user / assistant 訊息 append 進 messages JSON,更新 open_chat_sessions

對話歷史

GET /api/open/chat/history?session_uuid=... 回傳完整對話陣列,前端據此重建歷史對話 UI。同一使用者在同一 lecture 可有多個 session,互不污染。

6. 提示組裝(Prompt Augmentation)

Uedu Open 採逐字稿基礎的 prompt augmentation,而非 RAG embedding 檢索。原因有三:

  • 每段 lecture 的範圍已由 lecture_id 明確界定,不需要跨講次的語意檢索
  • 逐字稿通常 5,000~15,000 字,截取前 3,000 字(≈ 4,000 tokens)已能涵蓋主要概念
  • 避免額外的向量化成本,加速冷啟動

System prompt 結構

你是一位協助學習開放式課程的 AI 助教。

# 課程資訊
- 課程:{course.title_zh} / {course.title}
- 課號:{course.course_number}
- 學期:{course.semester}
- 講師:{course.instructors}
- 難度:{course.level}

# 本堂 Lecture
- 標題:{lecture.title}
- 順序:第 {lecture.order_index} 堂

# 講授內容(節錄)
{lecture.transcript_text[:3000]}

# 你的角色
- 以蘇格拉底式對話引導學生思考,不直接給答案
- 若學生問題超出本堂範圍,提示可能在哪堂講次
- 使用繁體中文回應
為什麼選 GPT-5.4-mini

OCW 的對話量級可能比正式課程高 10 倍以上(自學者沒有上限),需平衡品質與成本。GPT-5.4-mini 在 mid-tier 模型中提供最佳 token 性價比,且支援長 context(足以容納 3,000 字逐字稿 + 多輪對話)。

7. 學習資料治理

所有 AI 對話皆寫入 open_chat_sessions,包含 user_id、課程 / lecture 連結、完整 messages JSON。這些資料具有以下研究價值:

  • 自學者學習行為研究:不同 lecture 的提問頻率、提問深度、卡關點分佈
  • 教材難度回饋:高頻提問段落即為教材需要補充的概念
  • 跨課程學習路徑:同一使用者跨課程的學習脈絡可串接成個人 OCW 學習地圖

隱私與同意

  • 對話資料採用 user_id 對應,不去識別化儲存(與 ClassroomGPT 一致)
  • Uedu 使用條款已涵蓋 AI 對話資料用於平台改善與學術研究
  • 學習者可隨時於個人設定刪除個別 session 或全部歷史
  • 對外論文發表時,所有引用對話皆需經去識別化處理

8. 目前限制與未來方向

目前限制

  • 來源覆蓋率:目前僅整合 MIT OpenCourseWare;NTHU OCW、Stanford Online、edX 等已預留欄位但尚未匯入
  • 逐字稿截斷:3,000 字截斷對長 lecture(90 分鐘以上)可能漏掉後段內容
  • 無向量檢索:跨講次的概念聯想(如「這個觀念在第 5 堂提過」)目前無法自動關聯
  • 無工具調用:不像 Aida / ClassroomGPT 能呼叫 Bloom 分類、學習歷程等工具,回應較單純

短期規劃

  • 逐字稿分段 + embedding 向量化,啟用真正的 RAG 跨段檢索
  • 整合 Bloom's Taxonomy 分類器,追蹤自學者的認知層次變化
  • 串接 Aida 的工具調用機制,提供「跨堂查找」「相關習題」等能力
  • 擴充更多開放來源(NTHU OCW、Open Yale Courses、Khan Academy)

9. 研究應用

Uedu Open 是研究「對話式自學行為」的天然實驗場。可探索的研究議題包含:

  • OCW 自學者與正式選課學生在提問模式上的差異
  • 逐字稿 prompt augmentation vs. embedding RAG 在開放教材場景的效益比較
  • 不同學科(STEM / 人文社科)OCW 學習者的持續性學習路徑
  • AI 引導對OCW 完課率的影響(傳統 OCW 完課率僅 5–15%)
引用建議

引用本系統時,請標註「Uedu Open: an AI conversational interface for open courseware (https://uedu.tw/open)」並說明使用的是 GPT-5.4-mini 模型 + 逐字稿基礎的 prompt augmentation 策略。同時應註明原始教材來源(如 MIT OpenCourseWare)的授權條款。