Skip to content

Latest commit

 

History

History
1627 lines (1219 loc) · 30 KB

File metadata and controls

1627 lines (1219 loc) · 30 KB

下面是一份完整方案,项目定位采用我们前面确定的方向:不是通用 AI 笔记工具,而是面向大学生课程学习的 AI 课程资料整理与复习平台。


项目完整方案:课序 CourseFlow

一、项目名称

课序 CourseFlow

名称含义

“课序”表示把杂乱、分散、无序的课程资料整理成清晰、有层次、有复习价值的课程知识体系。

英文名 CourseFlow 表示课程学习过程中的资料流、知识流和复习流。


二、项目定位

课序 CourseFlow 是一个面向大学生课程学习的 AI 资料整理与复习平台。

用户可以为每门课程建立独立空间,上传课件、教材截图、课堂笔记、作业、实验报告、往年试卷等学习资料。平台借助大模型、OCR、文档解析和知识检索技术,自动完成资料分类、章节归纳、知识点提取、考点总结、复习计划生成和课程问答,帮助学生把零散资料整理成可复习、可提问、可测验的课程知识库。


三、项目一句话概述

课序 CourseFlow 能够把大学课程中的课件、笔记、教材截图、作业和试卷自动整理成课程知识树,并生成考点摘要、复习计划和自测题,帮助学生高效完成课程学习与考试复习。


四、项目核心差异化

1. 与 NoteLLM / NotebookLM 的区别

对比维度 NoteLLM / NotebookLM 类工具 课序 CourseFlow
核心对象 文件、笔记、资料集合 大学课程
使用目的 理解资料、总结资料、基于资料问答 学完一门课、复习一门课、准备考试
组织方式 Notebook / Source / 文件夹 学期 - 课程 - 章节 - 知识点
输出结果 摘要、问答、学习指南 课程知识树、考点、题型、复习计划、自测题
使用场景 通用学习、研究、办公 大学生课程学习、期中期末复习
用户体验 围绕资料提问 围绕课程学习闭环
特色能力 通用资料理解 课程知识结构化 + 考试导向复习

2. 核心宣传语

可以使用下面这些表达:

NoteLLM 帮你读资料,课序帮你学完一门课。

或者:

不是把资料变短,而是把资料变成可学习、可复习、可测验的课程体系。

或者:

把零散课程资料,整理成你的 AI 课程知识库。


五、目标用户

主要用户

大学生,尤其是课程资料多、复习压力大的学生。

重点适用人群包括:

理工科大学生
考研学生
医学、法学、工科等资料量大的专业学生
需要整理 PPT、PDF、笔记、作业、试卷的课程学习者
希望提高期末复习效率的学生

典型使用场景

场景一:平时课程资料整理

学生每周上传老师发的 PPT、PDF、课堂笔记和教材截图,系统自动归类到课程与章节中。

场景二:期中期末复习

考试前,学生打开某门课程,系统自动生成:

课程知识树
章节重点
高频考点
公式清单
易错点
典型题型
复习计划
自测题

场景三:作业辅助

学生上传作业题或实验指导书,系统自动指出涉及的知识点和相关资料位置。

场景四:课程问答

学生可以直接问:

这门课第 3 章主要讲什么?
本课程期末可能考哪些内容?
根轨迹法和频域分析有什么区别?
这份 PPT 里有哪些公式需要记?
帮我根据这门课生成 10 道复习题。

六、项目核心功能设计

模块一:课程空间管理

用户可以按照真实大学课程创建课程空间。

功能

创建课程
编辑课程信息
按学期管理课程
查看课程资料数量
查看课程学习进度
查看 AI 生成的课程知识树

示例结构

2026 春季学期
├── 高等数学
├── 大学物理
├── 概率论与数理统计
├── 自动控制原理
└── 计算机网络

每门课程拥有独立资料库、知识树、复习计划和问答上下文。


模块二:资料上传与解析

用户可以上传课程相关资料。

第一阶段支持格式

PDF
PPT / PPTX
Word / DOCX
图片
TXT / Markdown

第二阶段扩展格式

网页链接
视频字幕
音频转写
压缩包
手写笔记照片

上传后系统自动处理

识别文件类型
提取文本内容
对图片和扫描件进行 OCR
识别标题、章节、页码
切分文本块
保存原始文件
保存解析后的结构化内容
生成摘要、标签和章节归类

模块三:自动分类与章节归纳

系统根据资料内容自动判断其所属课程、章节和资料类型。

分类维度

课程名称
章节
知识点
资料类型
考试相关程度
重要程度
上传时间
来源

资料类型示例

课件
教材
课堂笔记
作业
实验报告
试卷
答案解析
复习资料
公式表
其他

自动归类示例

用户上传一个文件:

线性系统时域分析.pptx

系统自动识别为:

课程:自动控制原理
章节:第 3 章 线性系统时域分析
资料类型:课件
知识点:一阶系统、二阶系统、阶跃响应、稳态误差
重要程度:高

模块四:课程知识树生成

这是项目的核心差异化功能。

系统不是单独总结每份资料,而是把多份资料融合成一棵课程知识树。

示例

自动控制原理
├── 控制系统基本概念
│   ├── 开环控制
│   ├── 闭环控制
│   └── 反馈控制
├── 控制系统数学模型
│   ├── 微分方程
│   ├── 传递函数
│   └── 方框图
├── 线性系统时域分析
│   ├── 一阶系统
│   ├── 二阶系统
│   ├── 稳态误差
│   └── 动态性能指标
├── 根轨迹法
├── 频域分析
└── 系统校正

每个知识点节点可以包含:

关联资料
核心定义
公式
推导过程
典型题型
易错点
自测题
资料来源页码

模块五:考点提取与复习摘要

平台需要区别于普通摘要工具,因此摘要不能只是“这份资料讲了什么”,而要面向大学课程考试。

输出内容

章节概要
核心概念
重要公式
高频考点
可能题型
典型解题步骤
易错点
需要记忆的内容
需要理解的内容
需要刷题的内容

示例输出

课程:概率论与数理统计 章节:参数估计

核心知识点:
1. 矩估计
2. 最大似然估计
3. 无偏性
4. 有效性
5. 置信区间

高频考点:
1. 根据样本求最大似然估计量
2. 判断估计量是否无偏
3. 比较两个估计量的方差
4. 构造置信区间

易错点:
1. 似然函数写错
2. 忘记取对数简化
3. 参数取值范围没有考虑
4. 无偏性判断中期望计算错误

模块六:AI 课程问答

用户可以基于某一门课程资料进行问答。

问答特点

不是普通聊天,而是基于用户上传的课程资料回答。

支持问题

这门课主要讲了哪些内容?
第 2 章和第 3 章有什么关系?
帮我解释这个公式。
这份 PPT 哪些地方最可能考试?
根据这门课生成 20 道选择题。
我还有哪些知识点没有复习?
请用通俗语言解释劳斯判据。

回答要求

回答需要尽量标注来源,例如:

该知识点主要来自《第 3 章 线性系统时域分析.pptx》第 12-18 页。

这样可以提高可信度。


模块七:自测题与复习卡片生成

系统可以根据课程资料自动生成练习题。

支持题型

选择题
填空题
判断题
简答题
计算题
概念辨析题

示例

用户点击“生成第 3 章自测题”,系统输出:

1. 二阶系统的超调量与哪些参数有关?
2. 稳态误差的大小与系统型别有什么关系?
3. 判断下列系统是否稳定。
4. 写出一阶系统单位阶跃响应的表达式。

复习卡片

每个知识点可以生成卡片:

正面:什么是最大似然估计?
背面:最大似然估计是一种通过最大化样本观测值出现概率来估计未知参数的方法。

模块八:复习计划生成

根据考试时间、资料量、章节重要度和用户掌握情况,自动生成复习计划。

输入信息

考试日期
课程资料数量
章节数量
用户已复习内容
自测题正确率
知识点重要程度

输出示例

距离考试还有 7 天,建议安排如下:

第 1 天:复习第 1-2 章,完成基础概念梳理
第 2 天:复习第 3 章,重点掌握公式和典型题
第 3 天:复习第 4 章,完成章节自测
第 4 天:整理易错点,回看错题
第 5 天:完成一套综合测试
第 6 天:背诵公式和高频考点
第 7 天:快速浏览知识树,查漏补缺

模块九:错题与薄弱点分析

如果用户使用平台生成的自测题,系统可以记录答题情况。

记录内容

题目
所属课程
所属章节
所属知识点
用户答案
正确答案
是否正确
错误原因
答题时间

分析结果

你在“二阶系统动态性能指标”上的错误率较高。
你对“最大似然估计”的计算步骤掌握不稳定。
建议重新复习第 4 章第 2 节,并完成 5 道相关练习题。

七、系统总体架构

整体架构

前端应用层
        ↓
后端服务层
        ↓
AI 能力层
        ↓
数据存储层

1. 前端应用层

负责用户交互。

推荐技术

Web 端:React / Vue / Next.js
移动端:Flutter
桌面端:可后续扩展 Electron

页面模块

登录注册页
课程首页
课程详情页
资料上传页
资料列表页
知识树页面
资料摘要页
课程问答页
自测题页面
复习计划页
错题分析页
个人中心

2. 后端服务层

负责业务逻辑、文件处理、AI 调用和数据管理。

推荐技术

Python FastAPI

原因:

适合做 AI 项目
生态成熟
方便接入 OCR、文档解析、大模型、向量数据库
接口开发效率高
适合后续和 Flutter / Web 前端对接

后端核心服务

用户服务 User Service
课程服务 Course Service
文件服务 File Service
文档解析服务 Parser Service
OCR 服务 OCR Service
AI 总结服务 Summary Service
分类服务 Classification Service
知识树服务 Knowledge Tree Service
问答服务 QA Service
复习计划服务 Review Plan Service
题目生成服务 Quiz Service
错题分析服务 Error Analysis Service

3. AI 能力层

主要能力

OCR 识别
文档解析
文本切分
Embedding 向量化
语义检索
RAG 问答
课程摘要生成
知识点提取
章节分类
考点预测
题目生成
错题分析

可选模型

DeepSeek
OpenAI
通义千问
Kimi
豆包
智谱 GLM
本地开源模型

推荐策略

第一阶段可以直接使用 API,降低开发难度。

第二阶段再考虑:

本地 Embedding 模型
本地 OCR
本地轻量模型
私有化部署

4. 数据存储层

推荐组合

PostgreSQL:存储用户、课程、资料、摘要、题目、答题记录
pgvector:存储文本向量,支持语义检索
MinIO / 本地存储:存储原始文件
Redis:缓存任务状态、问答上下文、异步任务进度

八、核心技术流程

1. 资料上传流程

用户上传文件
↓
后端接收文件
↓
保存原始文件
↓
记录文件元数据
↓
判断文件类型
↓
进入解析任务队列
↓
解析文本或 OCR
↓
文本切分
↓
生成向量
↓
写入向量数据库
↓
调用大模型生成摘要、标签、知识点
↓
自动归类到课程/章节
↓
更新课程知识树

2. 课程问答流程

用户在某门课程中提问
↓
系统分析问题
↓
在该课程资料向量库中检索相关片段
↓
取回相关文本块
↓
组合 Prompt
↓
调用大模型生成回答
↓
返回答案和资料来源

3. 知识树生成流程

读取课程内所有资料摘要
↓
提取章节标题和知识点
↓
合并重复知识点
↓
建立父子层级关系
↓
生成课程知识树
↓
将知识树节点与资料片段绑定
↓
前端可视化展示

4. 自测题生成流程

用户选择课程 / 章节 / 知识点
↓
系统检索相关资料
↓
调用大模型生成题目
↓
生成标准答案和解析
↓
用户作答
↓
自动判分
↓
保存答题记录
↓
更新薄弱知识点分析

九、数据库设计初稿

下面是适合第一版的核心表设计。


1. users 用户表

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(100) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    password_hash TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

2. courses 课程表

CREATE TABLE courses (
    id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(id),
    name VARCHAR(255) NOT NULL,
    semester VARCHAR(100),
    description TEXT,
    exam_date DATE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

3. materials 资料表

CREATE TABLE materials (
    id SERIAL PRIMARY KEY,
    course_id INTEGER REFERENCES courses(id),
    user_id INTEGER REFERENCES users(id),
    title VARCHAR(255),
    file_name VARCHAR(255),
    file_type VARCHAR(50),
    file_path TEXT,
    material_type VARCHAR(100),
    chapter VARCHAR(100),
    summary TEXT,
    tags TEXT[],
    importance_score FLOAT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4. material_chunks 文本切片表

如果使用 pgvector,可以加入向量字段。

CREATE TABLE material_chunks (
    id SERIAL PRIMARY KEY,
    material_id INTEGER REFERENCES materials(id),
    course_id INTEGER REFERENCES courses(id),
    chunk_index INTEGER,
    content TEXT,
    page_number INTEGER,
    embedding VECTOR(1536),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

向量维度根据你选择的 embedding 模型调整,不一定是 1536。


5. knowledge_nodes 知识点表

CREATE TABLE knowledge_nodes (
    id SERIAL PRIMARY KEY,
    course_id INTEGER REFERENCES courses(id),
    parent_id INTEGER REFERENCES knowledge_nodes(id),
    title VARCHAR(255) NOT NULL,
    description TEXT,
    level INTEGER,
    importance_score FLOAT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

6. quizzes 自测题表

CREATE TABLE quizzes (
    id SERIAL PRIMARY KEY,
    course_id INTEGER REFERENCES courses(id),
    knowledge_node_id INTEGER REFERENCES knowledge_nodes(id),
    question TEXT NOT NULL,
    question_type VARCHAR(50),
    answer TEXT,
    explanation TEXT,
    difficulty FLOAT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

7. answer_records 答题记录表

CREATE TABLE answer_records (
    id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(id),
    quiz_id INTEGER REFERENCES quizzes(id),
    user_answer TEXT,
    is_correct BOOLEAN,
    score FLOAT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

8. review_plans 复习计划表

CREATE TABLE review_plans (
    id SERIAL PRIMARY KEY,
    user_id INTEGER REFERENCES users(id),
    course_id INTEGER REFERENCES courses(id),
    title VARCHAR(255),
    plan_content TEXT,
    start_date DATE,
    end_date DATE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

十、接口设计初稿

用户接口

POST /api/auth/register
POST /api/auth/login
GET  /api/user/profile

课程接口

POST   /api/courses
GET    /api/courses
GET    /api/courses/{course_id}
PUT    /api/courses/{course_id}
DELETE /api/courses/{course_id}

资料接口

POST /api/courses/{course_id}/materials/upload
GET  /api/courses/{course_id}/materials
GET  /api/materials/{material_id}
DELETE /api/materials/{material_id}

AI 分析接口

POST /api/materials/{material_id}/analyze
POST /api/courses/{course_id}/generate-summary
POST /api/courses/{course_id}/generate-knowledge-tree
POST /api/courses/{course_id}/generate-review-plan

问答接口

POST /api/courses/{course_id}/chat
GET  /api/courses/{course_id}/chat/history

自测接口

POST /api/courses/{course_id}/quizzes/generate
GET  /api/courses/{course_id}/quizzes
POST /api/quizzes/{quiz_id}/answer
GET  /api/courses/{course_id}/weak-points

十一、前端页面设计

1. 首页 / 仪表盘

展示用户所有课程。

内容

我的课程
最近上传资料
待复习课程
最近生成的知识树
即将考试提醒

2. 课程详情页

这是核心页面。

页面结构

课程名称
课程资料数量
考试日期
AI 课程摘要
课程知识树
高频考点
资料列表
复习计划
课程问答入口
自测题入口

3. 资料上传页

功能

拖拽上传
选择所属课程
选择资料类型
上传进度
解析状态显示
AI 分析结果预览

4. 知识树页面

功能

展示章节结构
展示知识点层级
点击节点查看解释
查看关联资料
生成该节点自测题
加入复习计划

5. AI 问答页面

类似聊天界面,但上下文绑定当前课程。

特点

回答基于当前课程资料
显示引用来源
支持追问
支持生成总结
支持生成题目

6. 复习计划页面

功能

显示每日复习安排
标记完成状态
查看推荐复习资料
查看薄弱知识点
重新生成计划

7. 自测题页面

功能

选择章节
选择题型
生成题目
在线作答
查看解析
记录错题
生成薄弱点报告

十二、AI Prompt 设计方向

1. 资料分类 Prompt

你是一个大学课程资料整理助手。
请根据以下资料内容,判断它属于哪一门课程、哪一章节、哪种资料类型,并提取关键词。

请输出 JSON:
{
  "course_guess": "",
  "chapter_guess": "",
  "material_type": "",
  "keywords": [],
  "importance_score": 0.0,
  "reason": ""
}

2. 课程摘要 Prompt

你是一个大学课程 AI 助教。
请根据以下课程资料内容,生成面向大学生复习的课程摘要。

要求:
1. 不要只做普通摘要
2. 需要提取核心概念、重要公式、考点、易错点
3. 输出结构清晰
4. 使用适合大学生理解的语言

输出格式:
- 章节概要
- 核心知识点
- 重要公式
- 高频考点
- 易错点
- 推荐复习方式

3. 知识树生成 Prompt

你是一个课程知识结构化专家。
请根据以下课程资料,生成该课程的知识树。

要求:
1. 按章节和知识点组织
2. 层级不要超过 4 层
3. 合并重复知识点
4. 每个知识点给出一句话解释
5. 标注重要程度:高 / 中 / 低

请输出 JSON 树结构。

4. 自测题生成 Prompt

你是大学课程出题助手。
请根据以下资料,为学生生成自测题。

要求:
1. 题目必须来自资料内容
2. 覆盖核心知识点
3. 包含答案和解析
4. 难度从易到难
5. 题型包括选择题、填空题、简答题

请输出 JSON:
[
  {
    "question_type": "",
    "question": "",
    "options": [],
    "answer": "",
    "explanation": "",
    "knowledge_point": "",
    "difficulty": 0.0
  }
]

十三、MVP 版本设计

第一版不要做太大,要做出核心差异化。

MVP 目标

做出一个可以演示的“AI 课程资料整理与复习平台”。


MVP 必须包含的功能

1. 用户创建课程
2. 上传 PDF / PPT / 图片资料
3. 自动提取文本
4. 自动生成资料摘要和标签
5. 自动归类到章节
6. 生成课程知识树
7. 基于课程资料问答
8. 生成考点摘要
9. 生成简单自测题

MVP 暂时不做的功能

多人协作
班级共享空间
复杂权限系统
视频解析
音频转写
复杂学习进度算法
完整错题系统
移动端 App
支付系统

MVP 推荐技术栈

前端:React / Next.js
后端:FastAPI
数据库:PostgreSQL + pgvector
文件存储:本地存储
OCR:PaddleOCR 或第三方 OCR API
文档解析:PyMuPDF、python-pptx、python-docx
大模型:DeepSeek / OpenAI / 通义千问
异步任务:Celery + Redis,或 FastAPI BackgroundTasks

如果你想降低开发复杂度,第一版可以先不用 Celery,直接用 FastAPI 后台任务。


十四、项目目录结构建议

courseflow/
├── README.md
├── backend/
│   ├── app/
│   │   ├── main.py
│   │   ├── config.py
│   │   ├── database.py
│   │   ├── models/
│   │   │   ├── user.py
│   │   │   ├── course.py
│   │   │   ├── material.py
│   │   │   ├── knowledge_node.py
│   │   │   └── quiz.py
│   │   ├── schemas/
│   │   ├── routers/
│   │   │   ├── auth.py
│   │   │   ├── courses.py
│   │   │   ├── materials.py
│   │   │   ├── ai.py
│   │   │   └── quizzes.py
│   │   ├── services/
│   │   │   ├── file_service.py
│   │   │   ├── parser_service.py
│   │   │   ├── ocr_service.py
│   │   │   ├── embedding_service.py
│   │   │   ├── summary_service.py
│   │   │   ├── knowledge_tree_service.py
│   │   │   └── qa_service.py
│   │   └── prompts/
│   │       ├── classify_material.txt
│   │       ├── summarize_course.txt
│   │       ├── generate_knowledge_tree.txt
│   │       └── generate_quiz.txt
│   ├── requirements.txt
│   └── Dockerfile
├── frontend/
│   ├── package.json
│   ├── src/
│   │   ├── pages/
│   │   ├── components/
│   │   ├── api/
│   │   └── stores/
│   └── README.md
├── docs/
│   ├── architecture.md
│   ├── api.md
│   ├── database.md
│   └── prompts.md
├── docker-compose.yml
└── .env.example

十五、README 应包含的内容

README 建议写清楚:

项目简介
核心功能
技术栈
项目结构
环境变量说明
数据库配置方法
本地启动方法
文件上传路径配置
大模型 API Key 配置
OCR 配置
开发路线
常见问题

.env.example 示例

APP_NAME=CourseFlow
ENV=development

DATABASE_URL=postgresql://postgres:password@localhost:5432/courseflow

UPLOAD_DIR=./uploads
MAX_UPLOAD_SIZE_MB=50

LLM_PROVIDER=deepseek
LLM_API_KEY=your_api_key_here
LLM_BASE_URL=https://api.deepseek.com

EMBEDDING_PROVIDER=openai
EMBEDDING_API_KEY=your_embedding_key_here

OCR_PROVIDER=paddleocr
REDIS_URL=redis://localhost:6379/0

十六、开发路线

第一阶段:项目基础搭建

目标:完成项目骨架和基础功能。

1. 初始化 GitHub 仓库
2. 建立前后端项目结构
3. 配置 PostgreSQL
4. 实现用户注册登录
5. 实现课程创建与课程列表
6. 实现文件上传
7. 保存文件元数据

阶段成果:

用户可以登录,创建课程,并上传资料。

第二阶段:资料解析与 AI 摘要

目标:让上传资料变成可理解文本。

1. PDF 文本提取
2. PPT 文本提取
3. Word 文本提取
4. 图片 OCR
5. 文本切分
6. 调用大模型生成摘要
7. 自动生成标签
8. 自动判断资料类型

阶段成果:

用户上传资料后,系统可以自动生成摘要、标签和资料类型。

第三阶段:课程知识树

目标:做出项目核心差异化。

1. 提取课程知识点
2. 合并多份资料中的重复知识点
3. 生成课程知识树
4. 前端展示知识树
5. 知识点关联资料来源

阶段成果:

用户可以看到某门课的完整知识结构。

第四阶段:课程问答 RAG

目标:实现基于课程资料的 AI 问答。

1. 接入 embedding 模型
2. 配置 pgvector
3. 保存文本块向量
4. 实现课程内语义检索
5. 构建 RAG 问答链路
6. 回答中显示资料来源

阶段成果:

用户可以针对某门课程资料进行问答。

第五阶段:复习与自测

目标:形成学习闭环。

1. 生成考点摘要
2. 生成章节自测题
3. 用户在线作答
4. 保存答题记录
5. 分析薄弱知识点
6. 生成复习计划

阶段成果:

平台从资料整理工具升级为课程复习助手。

第六阶段:优化与扩展

1. 支持班级共享课程空间
2. 支持多用户协作上传资料
3. 支持错题本
4. 支持移动端
5. 支持知识图谱可视化
6. 支持视频字幕解析
7. 支持导出复习资料为 PDF

十七、项目难点与解决方案

难点一:文件格式复杂

问题

不同资料格式解析方式不同。

解决方案

第一版只支持:

PDF
PPTX
DOCX
图片

暂时不支持复杂视频、音频和压缩包。


难点二:OCR 准确率不稳定

问题

教材扫描件、手写笔记和板书照片可能识别错误。

解决方案

优先支持清晰图片
保留原图
允许用户修改 OCR 结果
对低置信度内容做标记

难点三:AI 摘要可能泛泛而谈

问题

普通 Prompt 容易生成空泛摘要。

解决方案

让 Prompt 强制输出课程学习结构:

核心知识点
重要公式
考点
易错点
题型
复习建议

难点四:自动分类可能不准确

问题

AI 可能把资料分错课程或章节。

解决方案

允许用户手动修正
记录用户修正结果
后续用于优化分类规则

难点五:大模型回答可能不可靠

问题

模型可能幻觉。

解决方案

采用 RAG:

只基于课程资料回答
回答附带来源
无法从资料中找到时明确说明

十八、项目亮点总结

这个项目最应该突出的亮点是:

1. 面向大学生课程,而不是通用资料总结
2. 以课程为中心组织资料
3. 自动生成课程知识树
4. 自动提取考点和易错点
5. 支持基于课程资料的 AI 问答
6. 能生成自测题和复习计划
7. 形成“资料整理 → 知识结构 → 问答 → 测验 → 复习”的学习闭环

十九、最终项目描述

你可以在 README 或项目介绍中这样写:

课序 CourseFlow 是一个面向大学生课程学习的 AI 资料整理与复习平台。用户可以按课程上传 PPT、PDF、教材截图、课堂笔记、作业和试卷等资料,系统通过 OCR、文档解析、向量检索和大模型自动完成资料分类、知识点提取、课程知识树生成、考点总结、复习计划制定和自测题生成,帮助学生将零散的课程资料转化为结构化、可复习、可提问的课程知识库。


二十、建议优先实现的 MVP 页面

如果你准备马上用 Codex 或自己开发,我建议先做这 5 个页面:

1. 课程列表页
2. 课程详情页
3. 资料上传页
4. AI 知识树页
5. 课程问答页

暂时不要一开始做太多页面。

第一版能跑通下面这条链路就已经很完整:

创建课程
↓
上传资料
↓
解析资料
↓
生成摘要
↓
生成知识树
↓
基于资料问答

等这条主链路稳定后,再加入:

考点提取
自测题
复习计划
错题分析

二十一、给 Codex 的完整启动提示词

你可以直接把下面这段发给 Codex,让它帮你初始化项目。

我要新建一个项目,项目名为“课序 CourseFlow”。

这是一个面向大学生课程学习的 AI 资料整理与复习平台。用户可以按课程上传 PPT、PDF、Word、图片、课堂笔记、作业、试卷等资料,系统通过文档解析、OCR、向量检索和大模型自动完成资料分类、知识点提取、课程知识树生成、考点总结、课程问答、自测题生成和复习计划制定。

请你先不要急着写全部功能,而是完成第一阶段项目初始化。

技术栈要求:
1. 后端使用 Python FastAPI
2. 数据库使用 PostgreSQL
3. 向量检索后续使用 pgvector
4. 前端使用 React 或 Next.js
5. 文件存储第一阶段使用本地 uploads 文件夹
6. 大模型 API Key 通过 .env 配置
7. 项目中必须包含 README.md 和 .env.example

请完成以下任务:
1. 初始化项目目录结构
2. 创建 backend 和 frontend 两个目录
3. 在 backend 中建立 FastAPI 项目骨架
4. 设计基础数据库模型:User、Course、Material
5. 实现课程创建、课程列表、资料上传三个基础接口
6. 保存上传文件到 uploads 文件夹
7. 保存文件元数据到数据库
8. 编写 README.md,说明项目目标、技术栈、启动方式、数据库配置、上传路径配置和后续开发计划
9. 编写 .env.example
10. 不要提交真实 API Key
11. 每个模块代码要有清晰注释
12. 最后总结你修改了哪些文件,以及如何运行项目

第一阶段只需要完成基础骨架和资料上传,不需要真正接入大模型。

最终建议

这个项目可以分两条线推进:

产品线:课程空间、知识树、复习计划、问答体验
技术线:文件解析、OCR、RAG、大模型摘要、向量检索

你第一阶段最重要的目标不是功能多,而是做出一个清晰闭环:

大学课程资料上传
↓
AI 自动整理
↓
生成课程知识结构
↓
支持复习和问答

只要这个闭环跑通,课序 CourseFlow 就已经和普通 NoteLLM 类工具区分开了。