Minghsin University of Science and Technology
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Teacher Console
Course Setup
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

6

Local AI

--

Uedu Code

--

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

Learning Profile
Methodology for cross-course learning profiling

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.

1. Overview

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.

2. Data sources

Learning profile synthesis is based on 9 types of data sources, covering the multi-dimensional learning footprint of students on the platform:

#Data sourceTime rangeDescription
1coursesAllList of courses taken by the Student (course name, semester)
2course_questionsLast 90 daysRecords of Student questions in Course AI conversations
3notebook_questionsLast 90 daysStudent question records in AIs within the personal notebook
4bloom_distributionAllBloom's Taxonomy cognitive level distribution (six-dimensional proportions)
5user_memoryAllStudent preferences and characteristics remembered by the AI Teaching Assistant
6profiling_scalesLatestLearner trait exploration results (RIASEC, Big Five, OEJTS)
7ai_interact_evaluationsAllAI interactive assignment grading results
8interaction_statsAllInteraction statistics (number of conversations, active days, average conversation length)
9portfolioAllStudent's Learning history file
90-day window

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.

3. LLM synthesis workflow

3.1 Trigger method

The learning profile uses an on-demand generation model. It is triggered when the following occurs:

  • Requests from a student or instructor to view the learning profile
  • When the AI Teaching Assistant needs personalised context (if the cache has expired)

3.2 Synthesis steps

  1. Collect data from 9 data sources
  2. Computing data fingerprint hash, used to detect whether data has changed
  3. Assemble the data into a Prompt and send it to the LLM (gpt-4o-mini)
  4. LLM returns structured JSON (see Section 4)
  5. Validate the JSON format, then write to cache

3.3 Background refresh

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.

4. Output structure

The learning profile output by the LLM is structured JSON and includes the following fields:

FieldTypeDescription
core_interestsArrayThe Student's core areas of interest (for example, "artificial intelligence", "psychology", "educational technology")
learning_styleStringLearning style descriptions (such as 'prefers hands-on, practical tasks' or 'likes to understand the big picture before going into details')
bloom_distributionObjectSummary of cognitive level distribution (six dimensions, based on Bloom's analysis data)
personality_alignmentObjectAlignment description with Profiling scale results
cross_course_patternsArrayCross-course learning pattern observation (for example, “showing different questioning styles in humanities and science courses”)
knowledge_gapsArrayPotential knowledge gaps or areas for improvement
next_stepsArrayRecommended next learning direction
profile_narrative_zhStringA complete learning profile description (Traditional Chinese, for student reading)
prompt_injection_zhStringConcise description (Traditional Chinese, for injection into the AI System Prompt)
Role of prompt_injection_zh

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."

5. Caching and updates

5.1 Cache strategy

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:

  • 24-hour profiling cache after generation
  • Requests during the cache period are returned directly from the cache
  • After the cache expires, the next request triggers regeneration

5.2 Data Fingerprint

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.

5.3 Background refresh Thread

When the cache expires or the fingerprint changes, the system will not keep the user waiting for an LLM response, but will instead:

  1. Return the legacy cache first (if it exists)
  2. Start background thread to regenerate
  3. Once generation is complete, the cache is updated, and the latest version is returned on the next request

6. AI dialogue injection

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:

System Prompt injection snippet (illustrative)

## 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.

6.1 Injection timing

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).

6.2 Privacy considerations

  • The learning profile is based only on students' public learning behaviour on the Uedu platform and does not include personal private information
  • Students can view their own learning profile content
  • prompt_injection_zh will not be shown directly to students in the conversation; it is only used as background reference for the AI

7. Research citation guidance

Methodology description template

The 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:

  • Actual coverage and completeness of each data source
  • Average generation frequency of the learning profile (cache hit rate)
  • Average length of prompt_injection_zh
  • Data collection period and number of participating Students
  • Whether to enable AI dialogue injection during the research period