内容
# 学术副驾驶
学术副驾驶是一个全栈式AI驱动的学习平台,它可以将课程表转化为个性化的学术工作空间。学生可以上传课程表,生成学习计划,发现资源,尝试测验,通过成绩报告跟踪表现,并向AI导师提问疑难。
该项目现在包括:
- **RAG** 用于课程表感知的检索
- **MCP** 用于结构化的AI工具、资源和提示
- **多代理编排** 用于辅导、规划、测验适应和进度辅导
## 项目亮点
- 通过文本、PDF、TXT或Markdown上传课程表
- 自动将课程表解析为科目、主题和子主题
- 生成个性化的学习计划
- 基于主题的资源推荐
- 测验生成和测验提交分析
- 带有图表、掌握度跟踪和反馈的成绩报告
- Groq驱动的AI疑难聊天
- RAG支持的从课程表知识块的上下文检索
- MCP服务器暴露工具、资源和提示
- 带有协调器、导师、规划器、测验和进度代理的代理后端
- 备用安全设计,确保即使在代理流程不可用时,现有功能仍能正常运行
## 截图
### 登录和身份验证




### 仪表盘和课程表流程



### 学习计划




### 资源、测验、报告和导师









## 它解决的问题
学生经常使用原始的课程表,这些课程表很难转化为实用的学习系统。学术副驾驶将非结构化的课程表内容转化为:
- 结构化的学习计划
- 有指导的实践工作流程
- 绩效反馈环
- AI辅助的疑难解答体验
## 核心工作流程
1. 学生注册或登录。
2. 学生上传课程表文件或粘贴课程表文本。
3. 后端提取并解析课程表为结构化的学术主题。
4. 使用解析的课程表和用户偏好生成学习计划。
5. 生成基于主题的资源。
6. 从相同的课程表结构生成测验问题。
7. 评估和存储测验尝试。
8. 成绩报告显示进度、弱项、强项、趋势和科目掌握度。
9. 课程表被索引到RAG层作为可检索的知识块。
10. 当用户询问疑难时,代理系统检索相关课程表上下文并使用Groq生成上下文感知答案。
## 系统架构
### 架构图

### 高级层
1. **前端层**
- 基于React的仪表盘和页面路由
- 处理身份验证流程和所有用户交互
2. **API层**
- 身份验证、课程表、学习计划、测验、报告和疑难聊天的Express路由
3. **核心学习引擎**
- 课程表解析器
- 学习计划生成器
- 资源推荐生成器
- 测验生成器
- 性能分析器
4. **RAG层**
- 划分课程表知识
- 在MongoDB中存储知识块
- 为疑难聊天检索相关上下文
- 支持词典备用和可选的基于嵌入的检索
5. **代理层**
- 协调器代理
- 导师代理
- 规划器代理
- 测验代理
- 进度代理
6. **MCP层**
- 暴露结构化的工具、资源和提示,供代理使用
7. **LLM层**
- Groq驱动最终语言生成
### 请求流程
```text
用户 -> React UI -> Express API -> 核心服务 / RAG / 代理 / MCP -> Groq -> 响应 -> UI
```
## 代理AI设计
该平台现在表现为**代理AI学习系统**。
### 代理
- **协调器代理**
- 决定请求是最好作为辅导、规划或进度分析处理
- **导师代理**
- 使用RAG上下文和MCP工具回答学生疑难
- **规划器代理**
- 根据最新的计划和学生进度提供学习指导
- **测验代理**
- 使用弱项信号调整测验顺序
- **进度代理**
- 从测验历史生成绩效辅导和学习建议
### 添加代理的原因
代理帮助平台从静态响应转向动态适应。 与其以相同的方式处理每个请求,系统可以:
- 将任务路由到合适的专家
- 使用结构化的学术上下文
- 根据学生的学习历史个性化支持
## MCP集成
后端包括一个公开的MCP服务器,地址为:
```text
/api/mcp
```
### MCP工具
- `fetch_latest_plan`
- `fetch_report_snapshot`
- `fetch_quiz_snapshot`
- `fetch_rag_context`
- `fetch_study_guidance`
### MCP资源
- 最新学术计划资源
- 最新报告资源
### MCP提示
- `study-coach`
- `progress-coach`
- `tutor-doubt`
### 使用MCP的原因
MCP为代理提供了一种干净、结构化的方式来访问项目数据和指令,而无需将所有内容紧密耦合在一个提示中。 这使系统更加模块化,更容易扩展。
## RAG集成
学术副驾驶使用检索层使AI答案具有课程表感知能力。
### RAG工作流程
1. 创建课程表时,内容被分割。
2. 分割的内容作为知识记录存储在MongoDB中。
3. 在疑难聊天问题时,后端检索最相关的分割内容。
4. 检索的上下文被传递到Groq提示中。
5. 使用检索的课程表感知上下文生成答案。
### 当前检索模式
- **词典检索备用**
- 无需额外嵌入设置即可工作
- **启用嵌入检索**
- 可使用OpenAI兼容的嵌入提供程序启用
这意味着项目已经安全地支持RAG,可以在不更改前端的情况下进一步升级。
## 技术栈
### 前端
- React 18
- React Router
- Axios
- Framer Motion
- 自定义CSS
### 后端
- Node.js
- Express
- MongoDB
- Mongoose
- JWT身份验证
- bcryptjs
- multer
- pdf-parse
### AI和智能层
- Groq API
- MCP SDK
- Zod
- 自定义RAG管道
- 多代理编排
## 文件夹结构
```text
Academic-copilot/
├── assets/
├── backend/
│ ├── config/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── services/
│ │ ├── agents/
│ │ ├── llm/
│ │ ├── mcp/
│ │ └── rag/
│ ├── .env.example
│ ├── package.json
│ └── server.js
├── frontend/
│ ├── src/
│ └── package.json
└── README.md
```
## 重要后端模块
### 核心模型
- `User`
- `SyllabusPlan`
- `QuizAttempt`
- `KnowledgeChunk`
### 核心服务
- `syllabusParser`
- `studyPlanGenerator`
- `ragPipeline`
- `quizGenerator`
- `performanceAnalyzer`
- `fileTextExtractor`
- `doubtChat`
### 新智能服务
- `services/rag/*`
- `services/mcp/*`
- `services/agents/*`
- `services/llm/groqClient.js`
## 设置说明
### 1. 克隆仓库
```bash
git clone <your-repo-url>
cd Academic-copilot
```
### 2. 安装前端依赖
```bash
cd frontend
npm install
```
### 3. 安装后端依赖
```bash
cd ../backend
npm install
```
### 4. 配置环境变量
在`backend/`中创建一个`.env`文件,以`backend/.env.example`为参考。
示例:
```env
GROQ_API_KEY=your_groq_api_key_here
GROQ_MODEL=llama-3.3-70b-versatile
AGENTIC_MODE_ENABLED=true
MCP_ENABLED=true
MCP_SERVER_NAME=academic-copilot-mcp
MONGODB_URI=mongodb://127.0.0.1:27017/academic_copilot
```
### 5. 启动MongoDB
确保MongoDB在本地运行,或更新`MONGODB_URI`到托管数据库。
### 6. 启动后端
```bash
cd backend
npm start
```
后端运行在:
```text
http://localhost:5000
```
### 7. 启动前端
```bash
cd frontend
npm start
```
前端运行在:
```text
http://localhost:3000
```
## 环境变量说明
- `GROQ_API_KEY`
- AI导师和代理生成所需
- `GROQ_MODEL`
- 控制用于响应的Groq模型
- `AGENTIC_MODE_ENABLED`
- 启用代理路由和智能后端行为
- `MCP_ENABLED`
- 启用MCP端点和工具层
- `MCP_SERVER_NAME`
- 设置MCP服务器名称
- `MONGODB_URI`
- MongoDB连接字符串
- `RAG_EMBEDDING_BASE_URL`
- `RAG_EMBEDDING_API_KEY`
- `RAG_EMBEDDING_MODEL`
- 可选的嵌入配置,用于更强的向量式检索
## API概述
### 身份验证
- `POST /api/signup`
- `POST /api/login`
### 仪表盘
- `GET /api/dashboard/overview`
- `GET /api/dashboard/plan`
- `GET /api/dashboard/quiz`
- `POST /api/dashboard/quiz/submit`
- `GET /api/dashboard/report`
- `POST /api/dashboard/syllabus`
- `POST /api/dashboard/syllabus/upload`
- `POST /api/dashboard/doubt-chat`
### MCP
- `POST /api/mcp`
- `GET /api/mcp`
- `DELETE /api/mcp`
## 疑难聊天工作原理
1. 用户从仪表盘发送问题。
2. 后端通过`/api/dashboard/doubt-chat`接收。
3. 协调器代理分类请求。
4. 调用相关MCP工具。
5. RAG检索有用的课程表块。
6. Groq生成具有课程表感知能力的答案。
7. 如果任何操作失败,后端会恢复到原始导师流程。
## 测验和报告工作原理
### 测验
- 根据课程表结构生成
- 可以根据弱项信号由测验代理重新排序
- 评估存储分数、百分比、弱项、强项和科目准确性
### 成绩报告
- 从测验历史构建
- 显示进度趋势、准确性、反馈和洞察
- 进度代理可以增强学习建议
## 未来改进想法
- 持久聊天历史
- 矢量数据库集成,用于更强的语义检索
- 教师/管理员角色
- PDF页面级引用参考
- 基于重复测验尝试的自适应学习路径
- 更丰富的分析和可下载报告
## 结论
学术副驾驶不再只是一个课程表规划器。 它现在是一个完整的**AI驱动的学术工作流系统**,结合:
- 规划
- 检索
- 辅导
- 评估
- 分析
- 代理编排
- 基于MCP的结构化智能
它旨在让前端保持用户友好,同时在后端变得更加智能和模块化。