Show a desktop notification when the AI TA finishes replying
Notify me when classmates post messages in the forum
Play an alert sound whenever there is a new notification
Import open courses such as MIT OpenCourseWare into Uedu, and combine them with a transcript-based conversational AI TA, so that self-directed learners can engage in contextual question-and-answer interactions with course content, upgrading open materials of the 'read/watch' type into a 'conversational' learning experience.
Since MIT led the way in 2002, OpenCourseWare (OCW) has amassed tens of thousands of high-quality teaching materials. But for self-directed learners, OCW is still a one-way broadcast: videos, handouts and exercises are all static resources, unable to answer immediate confusions such as 'Why does this formula hold?' or 'I do not understand this analogy'.
Uedu Open imports open educational materials into the platform and provides an independent AI conversation partner for each lecture. AI knows which lecture and which section the student is viewing, and can provide contextual guidance based on the transcript, upgrading "reading lecture notes" to "discussing with the instructor".
ClassroomGPT serves formally enrolled students and uses a system prompt set by the Instructor; Aida is a platform-level Agentic AI guided by the AIDA framework; Uedu Open is a lightweight dialogue interface for OCW and other open materials, with no individual Instructor setup, and by default uses a general guiding prompt + lecture transcript as context.
Uedu Open consists of two Flask Blueprints, defined in app_uedu_open.py:
uedu_open (prefix /open): UI routes, providing the course catalogue, course details and Lecture playback pagesuedu_open_api (prefix /api/open): API routes, providing AI conversation SSE streaming, conversation history and learning guides| Page | Route | Feature |
|---|---|---|
| Course directory | /open/ | Classification, subject, difficulty, keyword search (MySQL FULLTEXT) |
| Course details | /open/course/<slug> | Syllabus, Lectures list, teaching material files, AI learning guide |
| Lecture playback | /open/lecture/<lecture_id> | Video player + AI chat panel on the right |
gpt-5.4-mini (single model, no function calling)There are 6 main data tables in total, defined in sql/open_tables.sql:
| Data table | Purpose | Key fields |
|---|---|---|
open_sources |
Definition of open teaching material sources | code, name, homepage_url, api_config (JSON, including API endpoint and authentication details) |
open_courses |
Course master table | slug、title / title_zh、description / description_zh、instructors(JSON)、topics(JSON)、level、course_number、source_id |
open_lectures |
Single lecture / video | video_id, video_platform (YouTube / local), duration, transcript_text, order_index |
open_materials |
Course attachments (PDF / handouts / assignments) | file_path、category、size_bytes |
open_chat_sessions |
Learner dialogue record | session_uuid, user_id, course_id, lecture_id, messages (JSON array) |
open_study_guides |
AI-generated study guide | summary, key_terms, quiz_questions (all JSON) |
The initial seed data enables only MIT OpenCourseWare as a source; the schema reserves identifiers such as nthu_ocw, stanford_edx, and edx_api, allowing each source to implement its own import script in future.
External data enters the database via a background import process; the main source at present is the MIT Learn API (https://api.learn.mit.edu/api/v1/courses/):
open_sources.api_configopen_coursesopen_materialsopen_study_guidesImported teaching materials must comply with the open licensing terms of the source (MIT OCW is CC BY-NC-SA 4.0). Uedu Open does not claim copyright in the teaching materials, and only provides a 'dialogue-based exploration interface'; copyright and citation responsibility for the original materials rests with the original authors and institutions.
The core endpoint is POST /api/open/chat/stream (SSE), implemented in api_open_chat_stream():
lecture_id, and fetch the corresponding lecture metadata plus the metadata for the Course it belongs tobuild_system_prompt() (see the next section)session_uuid, restore the existing conversation context from open_chat_sessions.messages; otherwise create a new sessiongpt-5.4-mini, temperature=0.7, max_completion_tokens=1500, with streaming enabledmessages JSON, and update open_chat_sessionsGET /api/open/chat/history?session_uuid=... returns the full conversation array, which the front end uses to rebuild the historical chat UI. The same user may have multiple sessions within the same lecture, and they do not interfere with one another.
Uedu Open adopts transcript-based prompt augmentation rather than RAG embedding retrieval. There are three reasons:
你是一位協助學習開放式課程的 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]}
# 你的角色
- 以蘇格拉底式對話引導學生思考,不直接給答案
- 若學生問題超出本堂範圍,提示可能在哪堂講次
- 使用繁體中文回應
The volume of dialogue in OCW may be more than 10 times that of formal courses (self-learners have no upper limit), so quality and cost need to be balanced. GPT-5.4-mini offers the best token value among mid-tier models, and supports long context (enough to accommodate a 3,000-character verbatim transcript + multi-turn dialogue).
All AI conversations are written to open_chat_sessions, including user_id, Course / lecture links, and the full messages JSON. These data have the following research value:
Uedu Open is a natural laboratory for studying "conversational self-study behaviour". Possible research topics include:
When citing this system, please cite "Uedu Open: an AI conversational interface for open courseware (https://uedu.tw/open)" and state that the GPT-5.4-mini model was used, together with a prompt augmentation strategy based on verbatim transcripts. You should also state the licensing terms of the original teaching materials source (for example, MIT OpenCourseWare).