Home
Explore Uedu
Student Console
Register as Member/Login
(2) In future presentations of the research findings, in addition to the course project website and public presentations, your real name and personal information will not appear in this research report. If you are interested in the research results, we can provide you with an executive summary after the study is completed.
問卷中心
Teacher Console
Course Setup
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

0

Local AI

--

AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

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)的授權條款。