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 collates diverse learning data across Courses for each Student, synthesises structured learning profiles through an LLM, and injects them into the AI dialogue system to deliver personalised responses.
Learning Profile (cross-course learner profile) is Uedu's learner persona synthesis module. The system aggregates students' diverse learning data on the platform (9 sources) and uses LLM to synthesise a structured learning profile JSON describing the student's core interests, learning style, cognitive level distribution and cross-course patterns.
One of the core outputs of the learning profile is prompt_injection_zh, a concise Traditional Chinese description that is injected into the AI tutor's System Prompt, enabling the AI to automatically adapt to the student's learning characteristics in conversation and provide more personalised responses.
Learning profile synthesis is based on 9 types of data sources, covering the multi-dimensional learning footprint of students on the platform:
| # | Data source | Time range | Description |
|---|---|---|---|
| 1 | courses | All | List of courses taken by the Student (course name, semester) |
| 2 | course_questions | Last 90 days | Records of Student questions in Course AI conversations |
| 3 | notebook_questions | Last 90 days | Student question records in AIs within the personal notebook |
| 4 | bloom_distribution | All | Bloom's Taxonomy cognitive level distribution (six-dimensional proportions) |
| 5 | user_memory | All | Student preferences and characteristics remembered by the AI Teaching Assistant |
| 6 | profiling_scales | Latest | Learner trait exploration results (RIASEC, Big Five, OEJTS) |
| 7 | ai_interact_evaluations | All | AI interactive assignment grading results |
| 8 | interaction_stats | All | Interaction statistics (number of conversations, active days, average conversation length) |
| 9 | portfolio | All | Student's Learning history file |
course_questions and notebook_questions only include records from the past 90 days, to reflect students' current learning status and interests rather than the full history. All other data sources include all records.
The learning profile uses an on-demand generation model. It is triggered when the following occurs:
To avoid blocking user actions, when the cache is about to expire, the system starts a background refresh thread to regenerate the profile in the background, and users can continue using the old cache.
The learning profile output by the LLM is structured JSON and includes the following fields:
| Field | Type | Description |
|---|---|---|
core_interests | Array | The Student's core areas of interest (for example, "artificial intelligence", "psychology", "educational technology") |
learning_style | String | Learning style descriptions (such as 'prefers hands-on, practical tasks' or 'likes to understand the big picture before going into details') |
bloom_distribution | Object | Summary of cognitive level distribution (six dimensions, based on Bloom's analysis data) |
personality_alignment | Object | Alignment description with Profiling scale results |
cross_course_patterns | Array | Cross-course learning pattern observation (for example, “showing different questioning styles in humanities and science courses”) |
knowledge_gaps | Array | Potential knowledge gaps or areas for improvement |
next_steps | Array | Recommended next learning direction |
profile_narrative_zh | String | A complete learning profile description (Traditional Chinese, for student reading) |
prompt_injection_zh | String | Concise description (Traditional Chinese, for injection into the AI System Prompt) |
prompt_injection_zh is one of the core outputs of the learning profile. This concise description will be injected into the AI assistant's System Prompt (see Section 6), allowing the AI to adapt automatically to the student's learning characteristics. For example: "This student prefers practice-oriented learning, is strong in analytical thinking, has a keen interest in programming, and should be given more code examples."
Generating the learning profile requires calling an LLM, which involves some latency and cost. The system uses a 24-hour cache (CACHE_HOURS = 24) strategy:
The system calculates hash fingerprints for 9 data sources. Even if the cache has not yet expired, if the data fingerprint changes (indicating that Students have new learning activity), the system will also trigger cache invalidation and regenerate the data.
This mechanism ensures that the learning profile reflects the student's latest learning status in real time, rather than showing out-of-date information because of caching.
When the cache expires or the fingerprint changes, the system will not keep the user waiting for an LLM response, but will instead:
prompt_injection_zh will be injected into the AI assistant's System Prompt so that the AI automatically takes the student's learning characteristics into account during the conversation:
## Learner profile This student is double majoring in Information Engineering and Psychology, and prefers hands-on, practice-oriented learning. Bloom's analysis shows a focus on the ‘Apply’ and ‘Analyse’ levels. The RIASEC type is IAS (Investigative-Artistic-Social), indicating a preference for exploratory learning. They have recently become particularly interested in machine learning and natural language processing, so it is recommended to provide more code examples and real-world application cases.
Whenever a Student opens a conversation with the AI TA, the system checks whether there is a valid learning profile cache. If there is, prompt_injection_zh is appended to the System Prompt; if not, or if the cache has expired, nothing is injected (graceful degradation).
prompt_injection_zh will not be shown directly to students in the conversation; it is only used as background reference for the AIThe learner profile is generated on demand by the Learning Profile module of the Uedu platform. The system aggregates 9 data sources (enrolment records, AI conversation questions from Courses and notebooks in the past 90 days, Bloom's cognitive level distribution, AI memory, learner trait inventory results, AI interactive assignment grading, interaction statistics, Learning history files), synthesises structured JSON through an LLM (OpenAI gpt-4o-mini), and includes core interests, learning style, cognitive distribution, cross-Course patterns, knowledge gaps, recommended directions and Traditional Chinese descriptions. The system uses a 24-hour cache and data fingerprint (hash) mechanism to control update frequency, and automatically invalidates the cache when data changes. The core output prompt_injection_zh is injected into the AI teaching assistant's System Prompt to deliver personalised conversational responses. See https://uedu.tw/doc/learning-profile for detailed methodology.
It is recommended to provide the following: