Files
documente/README.md
Luca Sacchi Ricciardi 2aa96e9efa
Some checks are pending
CI / test (3.10) (push) Waiting to run
CI / test (3.11) (push) Waiting to run
CI / test (3.12) (push) Waiting to run
CI / lint (push) Waiting to run
docs: simplify documentation - clarify two separate systems
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
2026-04-06 18:48:16 +02:00

203 lines
4.8 KiB
Markdown

# DocuMente & NotebookLM Agent
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![FastAPI](https://img.shields.io/badge/FastAPI-0.100+-009688.svg)](https://fastapi.tiangolo.com/)
[![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
[![Tests](https://img.shields.io/badge/tests-pytest-blue.svg)](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