AI Knowledge Workspace with Multi-Model Support, Deep Search & Chinese-First Experience
π Live Demo Β· π Documentation Β· π Report Bug Β· π¬ Community Β· π¨π³ δΈζζζ‘£
NoteWorks is an open-source AI research workspace β a self-hosted alternative to Google's NotebookLM. It lets you upload documents, chat with them using AI, and generate study materials, reports, and presentations β all while supporting any LLM and keeping your data private.
"NotebookLM is powerful but locked to Gemini. NoteWorks gives you the same experience with your choice of models."
| Feature | Google NotebookLM | NoteWorks (Open Source) |
|---|---|---|
| Models | Gemini only | β OpenAI, Claude, Qwen, Gemini, local models |
| Self-hosting | β Cloud only | β Full Docker deployment |
| Data privacy | Google servers | β Your own infrastructure |
| Chinese support | Limited | β Deeply optimized for Chinese |
| Document formats | PDF, TXT | β PDF, DOCX, PPTX, CSV, MD, images, audio, video |
| Deep Search | β | β Compatible with Deep Searcher |
| Studio outputs | Limited | β Mind maps, slides, infographics, reports |
| Multi-user | β | β JWT auth + OAuth (Google, Weibo, QQ, Alipay) |
| Cost | Free | β Free & open source (MIT) |
| Payments | N/A | β Alipay & WeChat Pay integration |
β Upload documents, chat with AI, generate artifacts β all in one workspace
Visit http://www.notebooklm.studio for a live demo.
# Clone the repo
git clone https://github.com/www6v/notebookLM.git
cd notebookLM
# Configure
cp config.yaml.example config.yaml
cp .env.example .env
# Edit .env with your API keys (QWEN_API_KEY, OPENAI_API_KEY, etc.)
# Start everything
make up-middleware # Redis, Milvus, MinIO
make up-ha # Backend + Frontend + Celery + NginxAccess at: http://localhost
| Service | URL |
|---|---|
| App | http://localhost |
| API Docs | http://localhost:8000/docs |
| Health Check | http://localhost:8000/api/health/live |
git clone https://github.com/www6v/notebookLM.git && cd notebookLM
make install # Install dependencies (uv + npm)
make up-middleware # Start Redis, Milvus, etc.
make dev # Backend
make dev-celery # Celery worker
make dev-frontend # Vue dev serverSee Local Development for full setup instructions.
Organize research around notebooks β collect sources, chat with AI, take notes, and generate artifacts in one place.
Upload or link sources in any format:
| Type | Formats | Processing |
|---|---|---|
| Documents | PDF, DOCX, DOC, TXT, MD, CSV, PPTX | Text extraction + optional MinerU for high-quality PDFβMarkdown |
| Images | PNG, JPG, WebP, etc. | Vision model summarization |
| Audio | MP3, WAV, M4A, etc. | Qwen ASR transcription (with long-audio fallback) |
| Video | MP4, YouTube, Bilibili URLs | Qwen VL video summarization |
| URLs | Any web page | Crawling + content extraction |
Powered by LiteLLM router β connect any LLM:
- OpenAI: GPT-4, GPT-4o, o1, o3
- Anthropic: Claude 3.5/4, Sonnet, Opus
- Alibaba: Qwen-Max, Qwen-Plus, Qwen-Turbo
- Google: Gemini Pro, Gemini Flash
- Local: Any OpenAI-compatible endpoint (Ollama, vLLM, etc.)
AI answers are grounded in your documents with source citations β no hallucination, just facts from your knowledge base. Powered by Deep Searcher.
Transform your research into polished outputs:
- π§ Mind Maps β Visual knowledge structures
- π Slide Decks β Auto-generated presentations
- π° Infographics β Data visualization
- π Reports β Structured research summaries
- π¬ Deep Research β Multi-step research briefs (via DeerFlow)
- Self-hosted β your data never leaves your infrastructure
- JWT authentication + OAuth login (Google, Weibo, QQ, Alipay)
- Object storage with Alibaba Cloud OSS
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (Vue 3) β
β ββββββββββββ ββββββββββββ ββββββββββββ βββββββββββββ β
β β Notebook β β Source β β Chat β β Studio β β
β β Workspaceβ β Ingestionβ β w/ Cit. β β Generator β β
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ βββββββ¬ββββββ β
ββββββββββΌβββββββββββββββΌββββββββββββββΌβββββββββββββββΌββββββββββ
β β β β
βΌ βΌ βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Backend (FastAPI) β
β ββββββββββββββ βββββββββββββ ββββββββββββββββββββββββββ β
β β Notebook β β Source β β AI (LiteLLM Router) β β
β β Manager β β Parser β β Qwen / OpenAI / etc β β
β βββββββ¬βββββββ βββββββ¬ββββββ βββββββββββββ¬βββββββββββββ β
β β β β β
β βΌ βΌ βΌ β
β βββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
β β MySQL β β Deep Searcherβ β Celery + Redis β β
β β (meta) β β (RAG/Retrieval)β β (async tasks) β β
β βββββββββββββ ββββββββββββββββ ββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ
β Alibaba OSS β β Milvus / β
β (file storage) β β Vector DB β
βββββββββββββββββββ βββββββββββββββββββ
| Layer | Technologies |
|---|---|
| Frontend | Vue 3, Vite, TypeScript, Vuetify, Pinia, Vue Router, Vue I18n, Axios |
| Backend | FastAPI, SQLAlchemy (async), Pydantic Settings, Alembic |
| Database | MySQL via aiomysql |
| Retrieval | Deep Searcher (HTTP); DashScope embeddings; Milvus (optional) |
| Queue | Celery + Redis + SSE streaming |
| AI | LiteLLM router, DashScope (Qwen), OpenAI, Gemini |
| Storage | Alibaba Cloud OSS |
| Infra | Docker, Docker Compose, Nginx |
notebookLM/
βββ config.yaml.example # Config template (copy to config.yaml)
βββ .env.example # Secrets template (copy to .env)
βββ frontend/ # Vue 3 + Vite application
βββ src-tauri/ # Optional Tauri desktop shell
βββ backend/
β βββ app/api/ # FastAPI routes
β βββ app/ai/ # LLM, vision, ASR integrations
β βββ app/models/ # SQLAlchemy models
β βββ app/services/ # Business logic
β βββ app/tasks/ # Celery tasks
β βββ alembic/ # DB migrations
β βββ docs/ # Backend feature docs
βββ deploy/ # Docker Compose files
β βββ core/ # Core services
β βββ middleware/ # Redis, Milvus, MinIO
β βββ ha/ # High-availability app compose
βββ nginx/ # Reverse proxy configs
βββ makefile # make install / dev / up-middleware / up-ha
βββ README.md
Edit .env with your credentials:
# Essential
SECRET_KEY=your-secret-key
DATABASE_URL=mysql+aiomysql://user:pass@host:3306/dbname
REDIS_URL=redis://localhost:6379/0
CELERY_BROKER_URL=redis://localhost:6379/1
# AI Models (at least one)
QWEN_API_KEY=your-qwen-key
# OPENAI_API_KEY=your-openai-key
# GEMINI_API_KEY=your-gemini-key
# Required for chat & source indexing
DEEP_SEARCHER_BASE_URL=http://localhost:8001
# Object Storage
OSS_ACCESS_KEY_ID=your-oss-key
OSS_ACCESS_KEY_SECRET=your-oss-secret| Integration | Purpose | Config |
|---|---|---|
| MinerU | High-quality PDFβMarkdown parsing | MINERU_BASE_URL, MINERU_API_KEY |
| Langfuse | LLM tracing & observability | LANGFUSE_* |
| DeerFlow | Deep Research agent | deer_flow_base_url in config.yaml |
| OAuth | Google, Weibo, QQ, Alipay login | GOOGLE_OAUTH_*, WEIBO_OAUTH_*, etc. |
| Payments | Alipay & WeChat Pay | ALIPAY_*, WeChat Pay fields |
| yt-dlp | Video/audio from URLs | YTDLP_COOKIES_FILE for Bilibili |
| Role | Notebooks | Sources/notebook | Daily Chats |
|---|---|---|---|
free |
20 | 30 | 50 |
paid |
200 | 50 | 200 |
admin |
200 | 50 | β |
docker compose -f deploy/middleware/docker-compose-middleware.yml up -d redis milvusmake install
# This runs `uv sync` in backend/ and `npm install` in frontend/# Terminal 1: Backend
make dev
# Terminal 2: Celery Worker
make dev-celery
# Terminal 3: Frontend
make dev-frontendOr run manually:
cd backend && source .venv/bin/activate
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd backend && source .venv/bin/activate
celery -A app.tasks.celery_app:celery_app worker --loglevel=infocd frontend && npm run devnpm run desktop:devJoin us to get help, share ideas, and contribute:
- π¬ Discord: Join Server (replace with your link)
- π± WeChat Group: Scan QR code (add QR image here)
- π GitHub Issues: Report bugs or request features
- π‘ Discussions: Share your use cases
We welcome contributions! Here's how to get started:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Check out issues labeled good first issue for beginner-friendly tasks.
This project is licensed under the MIT License.
Made with β€οΈ by @www6v Β· Star this repo to support development β