docs: comprehensive documentation for NotebookLM-RAG integration
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / lint (push) Has been cancelled

Update documentation to reflect new integration features:

README.md:
- Add 'Integrazione NotebookLM + RAG' section after Overview
- Update DocuMente component section with new endpoints
- Add notebooklm_sync.py and notebooklm_indexer.py to architecture
- Add integration API examples
- Add link to docs/integration.md

SKILL.md:
- Add RAG Integration to Capabilities table
- Update Autonomy Rules with new endpoints
- Add RAG Integration section to Quick Reference
- Add Sprint 2 changelog with integration features
- Update Skill Version to 1.2.0

docs/integration.md (NEW):
- Complete integration guide with architecture diagram
- API reference for all sync and query endpoints
- Usage examples and workflows
- Best practices and troubleshooting
- Performance considerations and limitations
- Roadmap for future features

All documentation now accurately reflects the unified
NotebookLM + RAG agent capabilities.
This commit is contained in:
Luca Sacchi Ricciardi
2026-04-06 18:01:50 +02:00
parent a5029aef20
commit 568489cae4
3 changed files with 628 additions and 3 deletions

111
README.md
View File

@@ -31,6 +31,9 @@ Questo repository contiene **due sistemi AI complementari**:
## Panoramica
### Integrazione
- [docs/integration.md](./docs/integration.md) - Guida integrazione NotebookLM + RAG
### NotebookLM Agent
Interfaccia API e webhook per **Google NotebookLM** che permette:
@@ -51,10 +54,45 @@ Sistema **Retrieval-Augmented Generation** standalone con:
**Ideale per:** Knowledge management, Document analysis, Research assistant
---
## Integrazione NotebookLM + RAG
Ora puoi sincronizzare i tuoi notebook di NotebookLM nel sistema RAG di DocuMente, permettendo di:
- **Effettuare ricerche semantiche** sui contenuti dei tuoi notebook
- **Combinare documenti locali e notebook** nelle stesse query
- **Usare tutti i provider LLM** disponibili per interrogare i notebook
- **Filtrare per notebook specifici** durante le ricerche
### Architettura
```
NotebookLM → NotebookLMIndexerService → Qdrant Vector Store
RAGService (query con filtri)
Multi-Provider LLM Response
```
### Come funziona
1. **Sincronizzazione**: I contenuti dei notebook vengono estratti, divisi in chunks e indicizzati in Qdrant
2. **Metadati**: Ogni chunk mantiene informazioni sul notebook e la fonte di origine
3. **Ricerca**: Le query RAG possono filtrare per notebook_id specifici
4. **Risposta**: Il LLM riceve contesto dai notebook selezionati
---
---
## Componenti
### Integrazione
- [docs/integration.md](./docs/integration.md) - Guida integrazione NotebookLM + RAG
### NotebookLM Agent
```
@@ -101,16 +139,46 @@ src/agentic_rag/
│ ├── documents.py # Upload documenti
│ ├── query.py # Query RAG
│ ├── chat.py # Chat conversazionale
── providers.py # Gestione provider LLM
── providers.py # Gestione provider LLM
│ └── notebooklm_sync.py # [NUOVO] Sync NotebookLM
├── services/ # Business logic
│ ├── rag_service.py # Core RAG logic
│ ├── vector_store.py # Qdrant integration
── document_service.py
── document_service.py
│ └── notebooklm_indexer.py # [NUOVO] Indexing service
└── core/ # Configurazioni
├── config.py # Multi-provider config
└── llm_factory.py # LLM factory pattern
```
**Endpoint API NotebookLM Integration:**
- `POST /api/v1/notebooklm/sync/{notebook_id}` - Sincronizza un notebook da NotebookLM
- `GET /api/v1/notebooklm/indexed` - Lista notebook sincronizzati
- `DELETE /api/v1/notebooklm/sync/{notebook_id}` - Rimuovi sincronizzazione
- `GET /api/v1/notebooklm/sync/{notebook_id}/status` - Verifica stato sincronizzazione
- `POST /api/v1/query/notebooks` - Query solo sui notebook
**Query con filtri notebook:**
```bash
# Ricerca in notebook specifici
POST /api/v1/query
{
"question": "Quali sono i punti chiave?",
"notebook_ids": ["uuid-1", "uuid-2"],
"include_documents": true # Include anche documenti locali
}
# Ricerca solo nei notebook
POST /api/v1/query/notebooks
{
"question": "Trova informazioni su...",
"notebook_ids": ["uuid-1"],
"k": 10
}
```
---
**Provider LLM Supportati:**
| Provider | Modelli Principali | Stato |
@@ -217,6 +285,9 @@ DEBUG=false
## Avvio
### Integrazione
- [docs/integration.md](./docs/integration.md) - Guida integrazione NotebookLM + RAG
### NotebookLM Agent
```bash
@@ -292,6 +363,39 @@ curl -X POST http://localhost:8000/api/v1/query \
"provider": "openai",
"model": "gpt-4o-mini"
}'
### Integrazione NotebookLM + RAG
**Sincronizzare un notebook:**
```bash
# Sincronizza un notebook da NotebookLM al vector store
curl -X POST http://localhost:8000/api/v1/notebooklm/sync/{notebook_id}
# Lista notebook sincronizzati
curl http://localhost:8000/api/v1/notebooklm/indexed
# Rimuovi sincronizzazione
curl -X DELETE http://localhost:8000/api/v1/notebooklm/sync/{notebook_id}
```
**Query sui notebook:**
```bash
# Query solo sui notebook (senza documenti locali)
curl -X POST http://localhost:8000/api/v1/query/notebooks -H "Content-Type: application/json" -d '{
"question": "Quali sono le conclusioni principali?",
"notebook_ids": ["uuid-del-notebook"],
"k": 10,
"provider": "openai"
}'
# Query mista (documenti + notebook)
curl -X POST http://localhost:8000/api/v1/query -H "Content-Type: application/json" -d '{
"question": "Confronta le informazioni tra i documenti e i notebook",
"notebook_ids": ["uuid-1", "uuid-2"],
"include_documents": true,
"provider": "anthropic"
}'
```
---
@@ -351,6 +455,9 @@ documente/
## Documentazione
### Integrazione
- [docs/integration.md](./docs/integration.md) - Guida integrazione NotebookLM + RAG
### NotebookLM Agent
- [SKILL.md](./SKILL.md) - Skill definition per agenti AI
- [prd.md](./prd.md) - Product Requirements Document