Starting from the research topic, combining AI semantic clustering with the OpenAlex global academic database,
helping Students explore supervisors and research directions
When students are deciding on a research direction or looking for a supervisor, they often do not know "which research fields are available" or "which lecturers are working on what research". The traditional approach is to browse each department's website one by one, which is time-consuming and makes cross-institution comparison difficult.
The Research Field Map provides two-stage exploration: first narrow down from a broad topic, then delve into specific instructors and papers. It combines Uedu’s own data with the OpenAlex global academic database, allowing students’ horizons to extend beyond a single platform.
Aggregate the research keywords of all opt-in Instructors and present them as a tag cloud. Supports cross-Instructor paper search (title and abstract), and listing all related Instructors by topic.
| Feature | Data source | Description |
|---|---|---|
| Topic tag cloud | research_profiles.research_keywords | Sort by number of Teachers and show the number of new Students accepted |
| Paper search | research_publications | LIKE matches title and summary |
| Find Instructors by topic | research_keywords + research_bio | Up to 5, no ranking by score |
Each opt-in Instructor has a public profile page (/advisor/profile/
The Research Field Map (/advisor/map) integrates three sections: a topic tag cloud, paper search (dual tab), and instructor list.
Uedu-certified instructors are not included automatically; instead, instructors must actively complete a research profile and set is_recruiting=1. This is the most fundamental ethical design in the entire system:
is_recruiting to 0 to remove it from the recommendation pool; the historical profile will remain, but will not be shown to Studentsis_recruiting=1 adds 1 extra pointAfter entering an ORCID in their personal research profile, Instructors can click "Sync publications from ORCID". The system runs in the background:
https://pub.orcid.org/v3.0/<orcid>/works to retrieve the list of worksput-code batch query)teachers_publications table, using put_code as the primary key for deduplication
Automatically retry network errors for 429 / 503 / with exponential backoff 3 times (_orcid_get_with_retry). ORCID provides only metadata (title, authors, year, DOI); if a full abstract is needed, it must still be added manually by the Instructor or parsed subsequently from the DOI.
Instructors can manually hide specific publications on the profile page (POST /api/advisor/publications/<id>/toggle_hidden), or delete them (DELETE /api/advisor/publications/<id>). Hidden publications will not appear in the public profile or recommendation results, but records are retained so that the Instructor may restore them later.
Automatically generate embeddings for papers every day (text-embedding-3-small), then use k-means clustering and have the LLM name the clusters.
| Step | Technology |
|---|---|
| 1. Thesis embedding | OpenAI text-embedding-3-small (1536 dimensions) |
| 2. Instructor vector | The L2-normalised average of all papers embedding for that Instructor |
| 3. Clustering | scikit-learn KMeans(k = max(2, min(8, N//3))) |
| 4. Naming | GPT-4o-mini generates tags and descriptions from cluster representative paper titles |
At present, recommend_potential_advisors uses keyword LIKE matching; the design principle is 'explainable, auditable':
| Step | Description |
|---|---|
| 1. Parsing student interest keywords | LLM extracts keywords from the conversation (for example, "EEG" and "learning analytics") |
| 2. Keyword hit scoring | Use LIKE matching against research_keywords and research_bio; add 1 point for each matched keyword |
| 3. Rewards for new student enrolments | is_recruiting=1 adds an extra +1 point |
| 4. Top 5 selection | Sort by score and return up to 5 teachers |
| 5. Hit rationale included | 'Why recommended' for each Instructor: list the matched keywords in detail |
When the AI TA replies with recommendations, it must end with: 'This is only a preliminary suggestion; please read the paper first and then email the Instructor to discuss it.' This is a mandatory requirement in the code of ethics, designed to prevent Students from treating AI recommendations as Instructor endorsement, and to encourage genuine academic dialogue rather than mechanical matching.
Phase 2 planning: switch to paper embeddings for semantic retrieval, solving the problem that LIKE cannot handle synonyms (“deep learning” vs. “neural networks”). See .claude/logs/advisor-match-proposal.md for the detailed design.
When Uedu's own data is insufficient (for example, there are currently few opt-in instructors), the system simultaneously queries the OpenAlex global scholarly database (indexing over 240 million papers), currently limited to institutional authors from five countries.
| Country | ISO Code |
|---|---|
| Taiwan | tw |
| Singapore | sg |
| Japan | jp |
| South Korea | kr |
| China | cn |
Note: Taiwan (tw) and China (cn) are two independent countries.
The query result is cached for 7 days (external_papers_cache table) to avoid repeated API calls.
Find a research direction of interest in the tag cloud or semantic clusters on the research area map
Tap a topic to expand all related instructors, and view their keywords, number of papers, and whether they are accepting new students
Tap an instructor's name to enter the public profile page and read the research introduction and full list of papers (including abstracts)
After reading 1–2 paper abstracts, write to the instructor to discuss it, so the instructor knows you have done your homework
Students can also explore directly with natural language in ClassroomGPT or Aida Learning Companion:
| Student asks | Tools called by AI |
|---|---|
| 'What research topics are available on Uedu?' | list_advisor_research_topics |
| "Which teachers are doing learning analytics?" | find_advisors_by_topic → search_external_papers(fallback) |
| "Has anyone recently published a paper on EEG teaching?" | search_advisor_papers → search_external_papers(fallback) |
| "What research does Chia-Kai Chang do?" | list_uedu_team_papers |
| 'Looking for a project supervisor' | recommend_potential_advisors |
AI first searches Uedu internal data; if that is insufficient, it automatically checks external OpenAlex data, and clearly distinguishes the two sources in its reply.
| Endpoint | Description | Login required |
|---|---|---|
| GET /api/advisor/topics | List of research topics (sorted by number of Instructors) | No |
| GET /api/advisor/search_papers?q=... | Search papers by Uedu certified instructors | No |
| GET /api/advisor/by_topic?topic=... | Find Instructors by topic | No |
| GET /api/advisor/external_search?q=... | Search OpenAlex external papers | No |
| GET /api/advisor/public_profile/{id} | Teacher public research files | No |
| GET /api/advisor/clusters | Semantic research group list | No |
| GET /api/advisor/cluster/{id}/advisors | Teachers under the group | No |