本文档介绍了 roadmap.sh 平台中的 AI 课程系统,该系统允许用户使用 AI 生成任何技术主题的个性化学习课程。该系统处理课程生成、内容显示、导航和进度跟踪。有关 AI 路线图生成的信息,请参阅AI 路线图生成。
AI 课程系统使用户能够通过 AI 驱动的界面创建定制的学习路径。用户可以通过提供主题和难度级别来生成课程,并可以选择添加个性化上下文以获得更好的结果。生成的课程由模块和课程组成,结构清晰,并可以以多种格式(大纲视图、路线图视图或模块视图)查看。
来源
AI 课程系统的核心是 AiCourse 数据类型,它定义了每个课程的结构。
每个课程都有:
title(标题)modules(模块)列表,每个模块都有自己的标题和课程difficulty(难度)级别(初级、中级或高级)done 数组,用于跟踪已完成课程的 ID进度跟踪使用基于模块和课程索引的字符串标识符:${slugify(String(moduleIndex))}-${slugify(String(lessonIndex))}
来源
课程生成过程从用户输入开始,涉及多个步骤以创建个性化学习路径。
输入表单允许用户通过几个选项自定义课程
来源
课程查看器提供了一个多方面界面,用于导航和学习课程内容。它由几个关键组件组成
课程内容可以以三种不同模式显示
视图模式由 AICourseContent 组件中的 viewMode 状态控制,可以设置为 'module'、'outline' 或 'roadmap'。
来源
在模块视图中,系统显示带有各种交互功能的单个课程内容。
课程在访问时动态生成。系统
/v1-generate-ai-course-lesson/{courseSlug} 发出请求来源
系统跟踪用户的每个课程进度,允许用户将课程标记为已完成。
进度存储在课程对象中的 done 数组中,其中包含课程 ID。系统使用以下方式显示进度:
来源
每节课程都包含一个 AI 聊天功能,允许用户询问有关内容的问题或请求额外的解释。
聊天面板作为可调整大小的组件实现,位于课程内容旁边。它提供:
聊天功能可能会根据用户的订阅状态有使用限制。
来源
课程导航系统由多个组件协同工作,允许用户浏览课程内容。
导航系统通过以下方式跟踪当前位置:
activeModuleIndex - 当前查看的模块activeLessonIndex - 模块内当前课程expandedModules - 侧边栏中展开的模块记录来源
路线图视图以交互式学习路径的形式直观地呈现课程内容。
路线图生成过程:
/v1-generate-ai-course-roadmap/{courseSlug} 发出请求@roadmapsh/editor 库渲染路线图来源
AI 课程系统包含高级功能和由订阅系统管理的用量限制。
免费用户有每日限制:
系统提供多种升级到高级账户的入口
来源
用户可以通过专用界面管理他们生成的课程。
课程列表:
/v1-list-user-ai-courses 获取用户课程来源
系统允许用户根据附加指令重新生成课程内容。
用户可以
来源
系统允许用户派生他人创建的课程,创建可以修改和跟踪进度的个人副本。
派生功能通过以下方式实现:
来源
AI 课程系统与多个后端 API 端点集成,以提供其功能。
| 端点 | 方法 | 目的 |
|---|---|---|
/v1-generate-ai-course | POST | 根据主题生成新课程 |
/v1-regenerate-ai-course/{slug} | POST | 重新生成现有课程 |
/v1-generate-ai-course-lesson/{slug} | POST | 生成特定课程 |
/v1-generate-ai-course-roadmap/{slug} | POST | 生成课程路线图 |
/v1-toggle-done-ai-lesson/{slug} | PATCH | 将课程标记为已完成/未完成 |
/v1-get-ai-course/{slug} | GET | 检索特定课程 |
/v1-get-ai-course-limit | GET | 获取用户的用量限制 |
/v1-list-user-ai-courses | GET | 列出用户课程 |
/v1-delete-ai-course/{slug} | DELETE | 删除课程 |
来源
完整的 AI 课程系统架构展示了所有组件如何交互。
来源