📚 智能学习笔记生成器和组织者
基于人工智能的学习笔记生成器,使用 RAG(检索增强生成) 和 MCP(模型上下文协议) 帮助学生组织、学习他们的学习材料,并为考试和 校园招聘培训(CRT).
✨ 特性
- 📄 多格式上传 -支持PDF、PPT/PPTX、图像(OCR)和YouTube转录
- 🧠 人工智能驱动的RAG -基于您上传内容的智能问答
- 📝 自动生成的笔记 -创建摘要、主题注释、MCQ和概念解释
- 💬 与AI聊天 -从你的学习材料中提问并获得个性化的答案
- 🔧 MCP工具集成 -与驱动器、日历和本地文件系统集成
- 🌙 深色模式 -漂亮的UI,支持亮/暗主题
- 📱 响应式设计 -在桌面和移动设备上无缝工作
- 📊 交互式仪表板 -跟踪你的进度、学习时间和最近的活动
- 📅 智能学习计划 -MCP驱动的日历集成,可自动安排学习课程
🎓 校园招聘培训(CRT)
一套专门的工具,旨在帮助学生在校园实习中取得优异成绩:
- 🧠 能力与逻辑推理
- 上传练习表(PDF/图像)并获得即时解决方案和解释。 - 根据你的弱点产生无限的练习题。
- 💻 技术面试准备
- 核心科目(操作系统、DBMS、CN、Java/Python)的模拟面试模拟。 - “解释代码”功能可帮助您清楚地表达逻辑。
- 🏢 公司特定模式
- 分析上传的过去论文,以确定重复出现的主题。 - 制定公司特定的准备策略。
- 🗣️ 人力资源轮次准备
- 行为问题模拟器,对您的答案提供反馈。 - 简历筛选和优化技巧。
🔌 MCP集成(模型上下文协议)
智能学习笔记利用 模型上下文协议 将AI与您的本地工具连接:
📅 日历服务器
- 自动调度:“为周一开始的DBMS考试制定学习计划”->自动阻止日历中的条目。
- 冲突检测:在安排之前检查现有事件。
- 学习提醒:即将举行的会议的智能通知。
📂 文件系统和驱动器
- 直接访问:直接从您的计算机或Google云端硬盘与文件聊天,无需手动上传。
- 组织:自动将生成的笔记组织到实际的文件系统文件夹中。
🏗️ 技术栈
| 层 | 技术 |
|---|---|
| 前端 | React 18+Vite+顺风CSS |
| 后端 | FastAPI(Python 3.10+) |
| 用户数据库 | MongoDB Atlas |
| 向量数据库 | ChromaDB |
| 嵌入 | 句子转换器(全MiniLM-L6-v2) |
| LLM | Ollama(当地型号:Calma 3,Mistral) |
| 文件处理 | pypdf、python-pptx、pytesseract、youtube转录api |
📁 项目结构
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── main.py # Application entry point
│ │ ├── config.py # Configuration settings
│ │ ├── database/ # MongoDB & ChromaDB connections
│ │ ├── routers/ # API endpoints
│ │ │ ├── auth.py # Authentication
│ │ │ ├── upload.py # File uploads
│ │ │ ├── chat.py # RAG-powered chat
│ │ │ └── notes.py # AI note generation
│ │ ├── services/ # Business logic
│ │ │ ├── extraction.py # File text extraction
│ │ │ ├── rag_engine.py # RAG pipeline
│ │ │ ├── llm_service.py # OpenAI integration
│ │ │ └── note_generator.py
│ │ └── mcp/ # MCP tool implementations
│ ├── requirements.txt
│ └── .env.example
│
└── frontend/ # React frontend
├── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page components
│ ├── context/ # React context providers
│ └── services/ # API client
├── package.json
└── tailwind.config.js🚀 快速开始
先决条件
- Python 3.10+
- Node.js 18+
- MongoDB Atlas帐户(免费版有效)
- OpenAI API密钥
- Tesseract OCR(用于图像文本提取)
后端设置
# Navigate to backend directory
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
.\venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Copy environment file and configure
copy .env.example .env # Windows
cp .env.example .env # macOS/Linux
# Start the server
python -m uvicorn app.main:app --reload --port 8000前端设置
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Copy environment file
copy .env.example .env # Windows
cp .env.example .env # macOS/Linux
# Start development server
npm run devMCP服务器设置(可选)
MCP(模型上下文协议)服务器提供与日历、驱动器和本地文件系统的集成。
# Navigate to backend directory
cd backend
# Start local MCP servers (Filesystem, Calendar, Drive)
python start_mcp_servers.py
# Or include Google API servers (requires credentials.json)
python start_mcp_servers.py --google
# Or start only Google API servers
python start_mcp_servers.py --google-only可用MCP服务器:
| 服务器 | URL | 描述 |
|---|---|---|
| 文件系统 | http://localhost:9000 | 本地文件系统操作 |
| 日历 | http://localhost:9001 | 本地日历管理 |
| 驱动器 | http://localhost:9002 | 本地驾驶模拟 |
| 谷歌日历 | http://localhost:9010 | 真实谷歌日历API |
| 谷歌云端硬盘 | http://localhost:9011 | 真正的Google Drive API |
注: Google API服务器需要credentials.json从谷歌云控制台下载文件。把它放在backend/app/mcp/servers/credentials.json.
⚙️ 环境变量
后端(.env)
# MongoDB Atlas
MONGODB_URL=mongodb+srv://:
@.mongodb.net/smart_study_notes
DATABASE_NAME=smart_study_notes
# JWT Authentication
SECRET_KEY=your-super-secret-key-change-in-production
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
# OpenAI API
# Ollama configuration
OLLAMA_BASE_URL=http://localhost:11434/v1
OLLAMA_MODEL=llama3
# ChromaDB
CHROMA_PERSIST_DIRECTORY=./chroma_db
# File Upload
UPLOAD_DIRECTORY=./uploads
MAX_UPLOAD_SIZE_MB=50
# Server
HOST=0.0.0.0
PORT=8000
DEBUG=True
# Embedding Model
EMBEDDING_MODEL=all-MiniLM-L6-v2
# RAG Settings
CHUNK_SIZE=800
CHUNK_OVERLAP=200
TOP_K_RESULTS=5前端(.env)
VITE_API_URL=http://localhost:8000📖 API终点
| 方法 | 端点 | 描述 |
|---|---|---|
POST | /api/auth/register | 注册新用户 |
POST | /api/auth/login | 用户登录 |
GET | /api/auth/me | 获取当前用户 |
POST | /api/upload/file | 上传文件(PDF/PPT/图片/TXT) |
POST | /api/upload/youtube | 提取YouTube文字记录 |
GET | /api/upload/documents | 列出用户文档 |
POST | /api/chat/ | 发送聊天信息(RAG) |
GET | /api/chat/sessions | 获取聊天会话 |
POST | /api/notes/generate | 生成AI笔记 |
GET | /api/notes/ | 获取已保存的笔记 |
🎯 用法
- 注册/登录 -创建帐户或登录
- 上传材料 -上传您的PDF、PPT、图片或YouTube链接
- 与AI聊天 -询问有关学习材料的问题
- 生成笔记 -创建摘要、主题注释、MCQ或解释
- 保存并查看 -保存生成的笔记以供以后查看
🚂 铁路部署
部署到Railway,轻松实现云托管!
快速部署
- 推送到GitHub
git add . && git commit -m "Deploy" && git push- 首选 铁路 → 使用GitHub登录
- 部署后端:
- 新项目→ 从GitHub部署 - 设置根目录: backend - 添加变量: MONGODB_URL, GROQ_API_KEY, SECRET_KEY
- 部署前端:
- 新项目→ 从GitHub部署 - 设置根目录: frontend - 添加变量: VITE_API_URL=https://your-backend.railway.app
📖 看 铁路_部署.md 详细说明。
🤝 贡献
欢迎投稿!请随时提交拉取请求。
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
👨💻 作者
卡尔蒂·库马尔
- 最后一年项目
- 学院: *您的大学名称*
______________________________________________________________________
⭐ 如果你觉得这个项目有帮助,请给它一颗星!
