智能学习笔记生成器

一个基于RAG和MCP技术的AI学习笔记生成器,帮助学生整理学习材料、生成笔记并准备考试和校园招聘培训。

  • by Karthik8402
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Karthik8402/smart-study-notes-generator

使用说明

📚 智能学习笔记生成器和组织者

基于人工智能的学习笔记生成器,使用 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 dev

MCP服务器设置(可选)

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://<username>:<password>@<cluster>.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/ 获取已保存的笔记

🎯 用法

  1. 注册/登录 -创建帐户或登录
  2. 上传材料 -上传您的PDF、PPT、图片或YouTube链接
  3. 与AI聊天 -询问有关学习材料的问题
  4. 生成笔记 -创建摘要、主题注释、MCQ或解释
  5. 保存并查看 -保存生成的笔记以供以后查看

🚂 铁路部署

部署到Railway,轻松实现云托管!

快速部署

  1. 推送到GitHub

    git add . && git commit -m "Deploy" && git push
    
  2. 首选 铁路 → 使用GitHub登录

  3. 部署后端:

    • 新项目→ 从GitHub部署
    • 设置根目录: backend
    • 添加变量: MONGODB_URL, GROQ_API_KEY, SECRET_KEY
  4. 部署前端:

    • 新项目→ 从GitHub部署
    • 设置根目录: frontend
    • 添加变量: VITE_API_URL=https://your-backend.railway.app

📖 看 铁路_部署.md 详细说明。

🤝 贡献

欢迎投稿!请随时提交拉取请求。

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

👨‍💻 作者

卡尔蒂·库马尔

  • 最后一年项目
  • 学院: 您的大学名称

⭐ 如果你觉得这个项目有帮助,请给它一颗星!