sandbox-notebookllamalm/pyproject.toml
DJP 2292f8a511 Transform NotebookLlaMa to enterprise multi-user NotebookLM clone
Major Changes:
- Implemented notebook-first architecture (multi-document collections)
- Added user authentication and multi-tenancy
- Created comprehensive database schema (7 tables)
- Built complete notebook management system
- Implemented notebook-level chat across multiple documents
- Added podcast generation from notebooks
- Implemented notebook sharing with permissions
- Fixed MCP server crashes by bypassing for document processing
- Added all enterprise features requested

New Features:
- User login/signup with bcrypt password hashing
- Create/edit/delete notebooks
- Upload multiple PDFs to notebooks
- Add documents to existing notebooks
- Chat across all documents in a notebook
- Generate podcasts from entire notebooks
- Share notebooks with other users
- View shared notebooks
- Persistent chat history per notebook
- Document summaries, Q&A, and highlights

Technical Improvements:
- PostgreSQL database with SQLAlchemy ORM
- Connection pooling and proper cleanup
- Bypassed buggy MCP server for document processing
- Direct LlamaCloud API calls for reliability
- Proper CASCADE deletes
- Session management
- Error handling and logging

Documentation:
- ENTERPRISE_SETUP.md - Setup guide
- IMPLEMENTATION_SUMMARY.md - Technical details
- SIMPLIFIED_PLAN.md - Architecture overview
- CURRENT_STATUS.md - Status and known issues
- FINAL_README.md - User guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:28:06 -04:00

40 lines
1 KiB
TOML

[project]
name = "notebookllama"
version = "0.2.0.post1"
description = "An OSS and LlamaCloud-backed alternative to NotebookLM"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"audioop-lts>=0.2.1",
"bcrypt>=4.0.1",
"elevenlabs>=2.5.0",
"fastmcp>=2.9.2",
"ffprobe>=0.5",
"llama-cloud>=0.1.29",
"llama-cloud-services>=0.6.38",
"llama-index-core>=0.12.44",
"llama-index-embeddings-openai>=0.3.1",
"llama-index-indices-managed-llama-cloud>=0.6.11",
"llama-index-llms-openai>=0.4.7",
"llama-index-observability-otel>=0.1.1",
"llama-index-tools-mcp>=0.2.5",
"llama-index-workflows>=1.0.1",
"mypy>=1.16.1",
"opentelemetry-exporter-otlp-proto-http>=1.34.1",
"plotly>=6.2.0",
"pre-commit>=4.2.0",
"psycopg2-binary>=2.9.10",
"pydub>=0.25.1",
"pytest>=8.4.1",
"pytest-asyncio>=1.0.0",
"python-dotenv>=1.1.1",
"pyvis>=0.3.2",
"sqlalchemy>=2.0.0",
"streamlit>=1.46.1"
]
[tool.mypy]
disable_error_code = ["import-not-found", "import-untyped"]
[tool.pytest.ini_options]
pythonpath = ["src"]