Rewrite documentation to clearly separate the two systems: README.md Changes: - Restructure as two independent systems (NotebookLM Agent vs DocuMente) - Clear separation of requirements: * NotebookLM Agent: NO Qdrant needed * DocuMente RAG: Qdrant REQUIRED - Remove confusing 'dual-system' language - Add FAQ section clarifying common questions - Simplified examples for each system - Clear statement: systems work independently docs/integration.md Changes: - Remove overly complex architecture diagrams - Focus on practical usage only - Simplified to 3 steps: start services → sync → query - Remove redundant API documentation (refer to SKILL.md) - Add clear use cases section - Shorter troubleshooting section docs/README.md Changes: - Minimal structure overview - Clear separation of endpoints by system - Quick links to relevant docs Impact: - 821 lines removed, 259 added - Much clearer for new users - No confusion about Qdrant requirements - Clear distinction between the two systems Closes documentation clarity issue
203 lines
4.8 KiB
Markdown
203 lines
4.8 KiB
Markdown
# DocuMente & NotebookLM Agent
|
|
|
|
[](https://www.python.org/downloads/)
|
|
[](https://fastapi.tiangolo.com/)
|
|
[](https://github.com/astral-sh/ruff)
|
|
[](https://docs.pytest.org/)
|
|
|
|
> **Due Sistemi AI - Usali Separatamente o Insieme**
|
|
|
|
Questo repository contiene **due sistemi AI indipendenti** che puoi usare separatamente o insieme:
|
|
|
|
---
|
|
|
|
## 🤖 NotebookLM Agent
|
|
|
|
API REST per gestire **Google NotebookLM** programmaticamente.
|
|
|
|
### Cosa fa
|
|
- Crea e gestisci notebook NotebookLM
|
|
- Aggiungi fonti (URL, PDF, YouTube, Drive)
|
|
- Chat con le fonti
|
|
- Genera contenuti (podcast, video, quiz, flashcard)
|
|
- Ricevi notifiche via webhook
|
|
|
|
### Requisiti
|
|
- Python 3.10+
|
|
- Account Google NotebookLM
|
|
|
|
### Installazione
|
|
```bash
|
|
# Clona e installa
|
|
git clone <repository-url>
|
|
cd documente
|
|
uv venv --python 3.10
|
|
source .venv/bin/activate
|
|
uv sync
|
|
|
|
# Autenticazione NotebookLM (prima volta)
|
|
notebooklm login
|
|
```
|
|
|
|
### Avvio
|
|
```bash
|
|
uv run fastapi dev src/notebooklm_agent/api/main.py
|
|
```
|
|
|
|
API disponibile su: http://localhost:8000
|
|
|
|
### Esempio
|
|
```bash
|
|
# Crea notebook
|
|
curl -X POST http://localhost:8000/api/v1/notebooks \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"title": "Ricerca AI"}'
|
|
|
|
# Aggiungi fonte
|
|
curl -X POST http://localhost:8000/api/v1/notebooks/{id}/sources \
|
|
-d '{"type": "url", "url": "https://example.com"}'
|
|
```
|
|
|
|
📚 **Documentazione**: [SKILL.md](./SKILL.md)
|
|
|
|
---
|
|
|
|
## 🧠 DocuMente (RAG con NotebookLM)
|
|
|
|
Sistema **RAG** (Retrieval-Augmented Generation) che permette di:
|
|
- Caricare documenti (PDF, DOCX, TXT, MD)
|
|
- Sincronizzare notebook da NotebookLM
|
|
- Fare ricerche semantiche su entrambi
|
|
- Chat con LLM multi-provider
|
|
|
|
### Cosa fa
|
|
- **Ricerca su documenti**: Carica file e fai domande
|
|
- **Ricerca su notebook**: Sincronizza notebook NotebookLM e interrogali
|
|
- **Ricerca combinata**: Cerca sia nei documenti che nei notebook
|
|
|
|
### Requisiti
|
|
- Python 3.10+
|
|
- **Qdrant** (vector database)
|
|
- Node.js 18+ (per frontend opzionale)
|
|
|
|
### Installazione
|
|
```bash
|
|
# Dipendenze già installate con uv sync sopra
|
|
|
|
# Avvia Qdrant (richiesto)
|
|
docker run -p 6333:6333 qdrant/qdrant
|
|
```
|
|
|
|
### Avvio
|
|
```bash
|
|
# Backend
|
|
uv run fastapi dev src/agentic_rag/api/main.py
|
|
|
|
# Frontend (opzionale)
|
|
cd frontend && npm install && npm run dev
|
|
```
|
|
|
|
Servizi:
|
|
- API: http://localhost:8000/api
|
|
- Web UI: http://localhost:3000
|
|
|
|
### Esempi
|
|
```bash
|
|
# Carica documento
|
|
curl -X POST http://localhost:8000/api/v1/documents \
|
|
-F "file=@documento.pdf"
|
|
|
|
# Sincronizza notebook da NotebookLM
|
|
curl -X POST http://localhost:8000/api/v1/notebooklm/sync/{notebook_id}
|
|
|
|
# Fai una domanda (cerca in documenti + notebook)
|
|
curl -X POST http://localhost:8000/api/v1/query \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"question": "Trova informazioni su...",
|
|
"notebook_ids": ["uuid-notebook"],
|
|
"include_documents": true
|
|
}'
|
|
```
|
|
|
|
📚 **Documentazione Integrazione**: [docs/integration.md](./docs/integration.md)
|
|
|
|
---
|
|
|
|
## 🔧 Configurazione
|
|
|
|
Crea un file `.env` nella root:
|
|
|
|
```env
|
|
# Per NotebookLM Agent
|
|
NOTEBOOKLM_HOME=~/.notebooklm
|
|
|
|
# Per DocuMente (almeno un provider LLM)
|
|
OPENAI_API_KEY=sk-... # o altro provider
|
|
|
|
# Per ricerche su notebook (opzionale)
|
|
OLLAMA_BASE_URL=http://localhost:11434 # se usi Ollama
|
|
LMSTUDIO_BASE_URL=http://localhost:1234 # se usi LM Studio
|
|
|
|
# Qdrant (solo per DocuMente)
|
|
QDRANT_HOST=localhost
|
|
QDRANT_PORT=6333
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 Struttura Progetto
|
|
|
|
```
|
|
documente/
|
|
├── src/
|
|
│ ├── notebooklm_agent/ # 🤖 Solo NotebookLM
|
|
│ │ ├── api/
|
|
│ │ └── services/
|
|
│ │
|
|
│ └── agentic_rag/ # 🧠 RAG + NotebookLM
|
|
│ ├── api/
|
|
│ ├── services/
|
|
│ └── ...
|
|
│
|
|
├── frontend/ # 🎨 Web UI (solo per RAG)
|
|
├── docs/
|
|
│ └── integration.md # Guida integrazione
|
|
│
|
|
└── tests/
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 Documentazione
|
|
|
|
| File | Descrizione |
|
|
|------|-------------|
|
|
| **[SKILL.md](./SKILL.md)** | Guida completa NotebookLM Agent |
|
|
| **[docs/integration.md](./docs/integration.md)** | Come integrare NotebookLM con RAG |
|
|
| **[CONTRIBUTING.md](./CONTRIBUTING.md)** | Come contribuire |
|
|
|
|
---
|
|
|
|
## ❓ FAQ
|
|
|
|
**Q: Devo usare entrambi i sistemi?**
|
|
A: No! Puoi usare solo NotebookLM Agent, solo DocuMente, o entrambi.
|
|
|
|
**Q: NotebookLM Agent richiede Qdrant?**
|
|
A: No, funziona standalone senza database.
|
|
|
|
**Q: Posso cercare solo nei notebook senza caricare documenti?**
|
|
A: Sì, usa DocuMente e sincronizza solo i notebook.
|
|
|
|
**Q: Quali provider LLM supporta DocuMente?**
|
|
A: OpenAI, Anthropic, Google, Mistral, Azure, Ollama (locale), LM Studio (locale).
|
|
|
|
---
|
|
|
|
## Licenza
|
|
|
|
Proprietà di Luca Sacchi Ricciardi. Tutti i diritti riservati.
|
|
|
|
**Contatto**: luca@lucasacchi.net
|