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
Explain how Uedu extracts knowledge concepts and relationships from materials uploaded by Instructors, and tracks the evolution of Students' knowledge mastery through dialogue analysis.
Uedu's Knowledge Graph module builds knowledge structure from two perspectives:
This system enables teachers to visualise the course knowledge structure and observe each student's learning progress across concepts.
The data sources for the Knowledge Graph are RAG SystemProcessed teaching materials chunks. The materials are first split into chunks by the RAG pipeline and vectorised, then the knowledge graph module extracts concepts from the chunks. See the relationship between the two inSection 7。
The input for knowledge extraction is RAG SystemProcessed teaching materials chunks. Each chunk has already been segmented (800 tokens / chunk) and vectorised.
The system uses the gpt-4o-mini model and a structured Prompt to extract knowledge concepts and relationships from textbook chunks:
The database has a unique index on (classroom_id, name). When different chunks extract the same concept name, the system keeps only one record and merges multiple source chunk IDs for tracking.
| Field | Description | Example |
|---|---|---|
name | Concept name (Chinese, 2–8 characters) | Recursion, photosynthesis |
name_en | English name (cross-language comparison) | Recursion, Photosynthesis |
category | Category groups | Basic grammar, data structures |
description | One-sentence description | A programming technique in which a function calls itself in its definition |
source_chunk_ids | Source RAG chunk IDs | [42, 43, 51] |
The system defines four types of relationships between concepts:
| Type | Semantics | Example |
|---|---|---|
prerequisite |
A is prerequisite knowledge for B (learn A before learning B) | "Variables" → "Loops" |
contains |
A includes B as a sub-concept | "Data structures" → "Arrays" |
related |
A and B are related but have no causal / inclusion relationship | 'Stack' ↔ 'Queue' |
applies_to |
A can be applied to the context of B | "Recursion" → "Tree traversal" |
Each association edge includes weight (strength 0.0-1.0) and evidence (the LLM's grounds for judgement). The number of associations does not exceed three times the number of concepts.
and Bloom's analysisLike this, after the Student submits a message, the system automatically performs a knowledge mastery analysis in a background thread. During analysis, it will refer to:
The LLM determines each concept involved in the Student's dialogue for mastery, in five levels:
| Level | Definition | Reasoning |
|---|---|---|
| mentioned | The Student only mentions the concept | Unable to determine whether understood |
| exploring | Student is exploring | Ask basic questions |
| understanding | The Student can explain the concept correctly | Precise language, clear logic |
| applying | The Student can use it in new situations | Try applying concepts to problems |
| mastered | The Student can integrate, evaluate or use it creatively | Cross-concept integration and proposing improvements |
Each tag includes:
concept_name: name of the concept involvedmastery_level: one of five levelsconfidence: the LLM's confidence in the judgement (0.0-1.0)evidence: brief explanation of the basis for the judgementIf the Student's message does not involve any known concept (for example, casual chat), return an empty array and do not generate any tags.
The system periodically aggregates Students' knowledge mastery labels into weekly snapshots, stored in the kg_student_snapshot table. Each snapshot includes:
mastery_score: composite mastery score (0.0-1.0), calculated by weighting the labels for that weekinteraction_count: number of interactions with this concept in that weekbloom_level_avg: Average Bloom's cognitive level of related conversations (integrated Bloom's analysisdata)Instructors can use the dashboard to view the time trajectory of Students’ knowledge mastery, observing which concepts are gradually mastered during the semester and which remain in the exploratory stage.
Knowledge Graph and RAG SystemTightly integrated:
source_chunk_ids, traceable back to the original teaching material fragmentsWhen the Instructor enables GraphRAG mode, the retrieval process for Student questions will additionally use the knowledge graph:
See detailed explanation RAG Methodology Section 6。
| API endpoint | Description |
|---|---|
GET /api/kg/classroom/{id}/graph | Complete Course knowledge graph (nodes + edges) |
GET /api/kg/classroom/{id}/concepts | Concept list (including category statistics) |
POST /api/kg/classroom/{id}/generate | Generate / regenerate a knowledge graph from teaching materials |
GET /api/kg/classroom/{id}/students | Overview of conceptual mastery for the class |
PUT /api/kg/concepts/{id} | Instructor manually edits concept names / categories |
DELETE /api/kg/concepts/{id} | Soft-delete inappropriate concepts |
After extraction, Instructors can manually edit or delete inappropriate concepts to ensure the quality of the knowledge graph.
The Course knowledge structure is automatically built through Uedu platform's knowledge graph module. The system uses a large language model (LLM; OpenAI gpt-4o-mini, prompt v1.0) to extract knowledge concepts and the relationships between concepts (four types: prerequisite, contains, related, applies_to) from teacher-uploaded materials (chunked by the RAG pipeline). Dialogues between Students and the AI TA are then matched by the same LLM against the Course concept list to determine each Student's grasp of each concept (five levels: mentioned → exploring → understanding → applying → mastered), with an accompanying confidence score. Mastery labels are aggregated weekly into snapshots for time-series analysis. See https://uedu.tw/doc/knowledge-graph for a detailed methodology description.
It is recommended to provide the following information as well: