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

DocuMente & NotebookLM Agent

Python 3.10+ FastAPI Code style: ruff Tests

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

# 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

uv run fastapi dev src/notebooklm_agent/api/main.py

API disponibile su: http://localhost:8000

Esempio

# 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


🧠 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

# Dipendenze già installate con uv sync sopra

# Avvia Qdrant (richiesto)
docker run -p 6333:6333 qdrant/qdrant

Avvio

# Backend
uv run fastapi dev src/agentic_rag/api/main.py

# Frontend (opzionale)
cd frontend && npm install && npm run dev

Servizi:

Esempi

# 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


🔧 Configurazione

Crea un file .env nella root:

# 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 Guida completa NotebookLM Agent
docs/integration.md Come integrare NotebookLM con RAG
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

Description
Agent Retrivial per NotebookLM
Readme 375 KiB
Languages
Python 83.1%
TypeScript 14.2%
HTML 1.3%
CSS 0.7%
JavaScript 0.5%
Other 0.2%