菜单

AI 课程系统

相关源文件

本文档介绍了 roadmap.sh 平台中的 AI 课程系统,该系统允许用户使用 AI 生成任何技术主题的个性化学习课程。该系统处理课程生成、内容显示、导航和进度跟踪。有关 AI 路线图生成的信息,请参阅AI 路线图生成

概述

AI 课程系统使用户能够通过 AI 驱动的界面创建定制的学习路径。用户可以通过提供主题和难度级别来生成课程,并可以选择添加个性化上下文以获得更好的结果。生成的课程由模块和课程组成,结构清晰,并可以以多种格式(大纲视图、路线图视图或模块视图)查看。

来源

课程数据结构

AI 课程系统的核心是 AiCourse 数据类型,它定义了每个课程的结构。

每个课程都有:

  • 描述课程主题的 title(标题)
  • 一个 modules(模块)列表,每个模块都有自己的标题和课程
  • 一个 difficulty(难度)级别(初级、中级或高级)
  • 一个 done 数组,用于跟踪已完成课程的 ID

进度跟踪使用基于模块和课程索引的字符串标识符:${slugify(String(moduleIndex))}-${slugify(String(lessonIndex))}

来源

课程生成过程

课程生成过程从用户输入开始,涉及多个步骤以创建个性化学习路径。

用户输入选项

输入表单允许用户通过几个选项自定义课程

  1. 主题 - 课程的主要内容(例如,“JavaScript Promises”)
  2. 难度 - 技能级别(初级、中级、高级)
  3. 微调选项 (可选)
    • 关于您自己 - 背景和经验
    • 学习目标 - 您想实现什么
    • 自定义指令 - AI 的额外指导

来源

课程查看器界面

课程查看器提供了一个多方面界面,用于导航和学习课程内容。它由几个关键组件组成

视图模式

课程内容可以以三种不同模式显示

  1. 模块视图 - 显示带有 AI 聊天交互的单个课程内容
  2. 大纲视图 - 以分层结构列出所有模块和课程
  3. 路线图视图 - 将课程可视化为交互式学习路径

视图模式由 AICourseContent 组件中的 viewMode 状态控制,可以设置为 'module''outline''roadmap'

来源

模块和课程显示

在模块视图中,系统显示带有各种交互功能的单个课程内容。

课程内容生成

课程在访问时动态生成。系统

  1. /v1-generate-ai-course-lesson/{courseSlug} 发出请求
  2. 处理流式响应
  3. 提取 AI 聊天的建议问题
  4. 将 Markdown 内容转换为带有语法高亮的 HTML
  5. 渲染格式化的课程

来源

进度跟踪

系统跟踪用户的每个课程进度,允许用户将课程标记为已完成。

进度存储在课程对象中的 done 数组中,其中包含课程 ID。系统使用以下方式显示进度:

  1. 侧边栏中的模块完成百分比
  2. 课程状态指示器(已完成课程的勾选标记)
  3. 标题中的总课程完成百分比

来源

AI 导师聊天

每节课程都包含一个 AI 聊天功能,允许用户询问有关内容的问题或请求额外的解释。

聊天界面

聊天面板作为可调整大小的组件实现,位于课程内容旁边。它提供:

  1. 聊天消息历史记录
  2. 新问题输入框
  3. 基于课程内容的默认建议问题
  4. 显示/隐藏聊天面板的切换控件

聊天功能可能会根据用户的订阅状态有使用限制。

来源

课程导航系统

课程导航系统由多个组件协同工作,允许用户浏览课程内容。

导航系统通过以下方式跟踪当前位置:

  • activeModuleIndex - 当前查看的模块
  • activeLessonIndex - 模块内当前课程
  • expandedModules - 侧边栏中展开的模块记录

来源

路线图视图系统

路线图视图以交互式学习路径的形式直观地呈现课程内容。

路线图生成过程:

  1. /v1-generate-ai-course-roadmap/{courseSlug} 发出请求
  2. 将流式响应解析为结构化表示
  3. 将结构转换为用于可视化的节点和边
  4. 使用 @roadmapsh/editor 库渲染路线图
  5. 添加交互性以在点击节点时进行导航

来源

高级功能和限制

AI 课程系统包含高级功能和由订阅系统管理的用量限制。

用量限制

免费用户有每日限制:

  • 生成课程的数量
  • 生成课程的数量
  • AI 聊天中的后续问题数量

升级流程

系统提供多种升级到高级账户的入口

  1. 课程标题中的限制指示器
  2. 达到限制时的升级按钮
  3. 带有订阅选项的升级模态框

来源

用户课程管理

用户可以通过专用界面管理他们生成的课程。

课程列表:

  1. 通过 /v1-list-user-ai-courses 获取用户课程
  2. 以带有进度指示器的卡片形式显示课程
  3. 提供查看或删除课程的操作
  4. 支持搜索和分页

来源

课程再生成和自定义

系统允许用户根据附加指令重新生成课程内容。

用户可以

  1. 重新生成整个课程大纲,使用相同主题
  2. 重新生成单个课程
  3. 提供自定义提示以指导再生成

来源

课程派生系统

系统允许用户派生他人创建的课程,创建可以修改和跟踪进度的个人副本。

派生功能通过以下方式实现:

  • 非创建者查看器警报横幅
  • 派生操作确认模态框
  • 各种课程视图中的派生按钮

来源

与后端 API 集成

AI 课程系统与多个后端 API 端点集成,以提供其功能。

端点方法目的
/v1-generate-ai-coursePOST根据主题生成新课程
/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-limitGET获取用户的用量限制
/v1-list-user-ai-coursesGET列出用户课程
/v1-delete-ai-course/{slug}DELETE删除课程

来源

系统架构概览

完整的 AI 课程系统架构展示了所有组件如何交互。

来源