refactor: rename project from AgenticRAG to DocuMente
## Changes
- Update all references from AgenticRAG to DocuMente
- Update README.md with new project description and structure
- Update LICENSE with new project name
- Update API title and descriptions in main.py
- Update frontend components (Layout, Login, Dashboard, Settings)
- Update static HTML page
- Update all documentation files (prd-v2.md, frontend-plan.md, etc.)
- Update test files with new project name
- Update docker-compose.yml, Dockerfile, requirements.txt
## SEO Benefits
- DocuMente combines 'Documento' and 'Mente' (Italian for Document and Mind)
- Memorable and brandable name
- Reflects the core functionality: AI-powered document intelligence
🎉 Project officially renamed to DocuMente!
This commit is contained in:
192
README.md
192
README.md
@@ -1,53 +1,52 @@
|
||||
# NotebookLM Agent API
|
||||
# DocuMente
|
||||
|
||||
[](https://www.python.org/downloads/)
|
||||
[](https://fastapi.tiangolo.com/)
|
||||
[](https://github.com/astral-sh/ruff)
|
||||
[](https://docs.pytest.org/)
|
||||
|
||||
> **API e Webhook Interface per Google NotebookLM Automation**
|
||||
> **Sistema di Retrieval Agentico con AI - Interroga i tuoi documenti in modo intelligente**
|
||||
|
||||
Questo progetto fornisce un'interfaccia API REST completa per Google NotebookLM, con supporto webhook per integrazione con altri agenti AI. Sviluppato seguendo le metodologie **Spec-Driven Development (SDD)** e **Test Driven Development (TDD)**.
|
||||
DocuMente è un sistema RAG (Retrieval-Augmented Generation) avanzato che permette di caricare documenti e interagirci tramite chat conversazionale. Supporta multipli provider LLM (OpenAI, Z.AI, OpenCode Zen, OpenRouter, Anthropic, Google, Mistral, Azure) e offre una moderna interfaccia web React.
|
||||
|
||||
## Caratteristiche
|
||||
|
||||
- **API REST Completa**: Gestione notebook, fonti, chat, generazione contenuti
|
||||
- **Webhook System**: Notifiche event-driven per integrazione multi-agent
|
||||
- **AI Skill**: Interfaccia nativa per OpenCode e altri agenti AI
|
||||
- **Qualità del Codice**: ≥90% test coverage, type hints, linting
|
||||
- **Metodologie**: SDD + TDD + Conventional Commits
|
||||
- **🧠 Multi-Provider LLM**: Supporta 8 provider diversi, scegli il tuo preferito
|
||||
- **📄 Gestione Documenti**: Upload tramite drag & drop, supporta PDF, DOCX, TXT, MD
|
||||
- **💬 Chat Intelligente**: Interroga i tuoi documenti con risposte contestuali
|
||||
- **🔗 API REST Completa**: Integra DocuMente nelle tue applicazioni
|
||||
- **🎨 Interfaccia Web Moderna**: React 18 + TypeScript + Tailwind CSS
|
||||
- **🔒 Autenticazione Sicura**: API Key + JWT support
|
||||
- **🐳 Containerizzato**: Docker e docker-compose pronti all'uso
|
||||
|
||||
## Requisiti
|
||||
|
||||
- Python 3.10+
|
||||
- [uv](https://github.com/astral-sh/uv) per dependency management
|
||||
- Account Google con accesso a NotebookLM
|
||||
- Node.js 18+ (per il frontend)
|
||||
- Docker (opzionale)
|
||||
|
||||
## Installazione
|
||||
|
||||
```bash
|
||||
# Clona il repository
|
||||
git clone https://github.com/example/notebooklm-agent.git
|
||||
cd notebooklm-agent
|
||||
git clone https://github.com/example/documente.git
|
||||
cd documente
|
||||
|
||||
# Crea virtual environment
|
||||
# Backend
|
||||
cd backend
|
||||
uv venv --python 3.10
|
||||
source .venv/bin/activate
|
||||
|
||||
# Installa dipendenze
|
||||
uv sync --extra dev --extra browser
|
||||
|
||||
# Installa pre-commit hooks
|
||||
uv run pre-commit install
|
||||
|
||||
# Configura ambiente
|
||||
cp .env.example .env
|
||||
# Modifica .env con le tue configurazioni
|
||||
# Frontend
|
||||
cd ../frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
## Configurazione
|
||||
|
||||
Crea un file `.env`:
|
||||
Crea un file `.env` nella cartella backend:
|
||||
|
||||
```env
|
||||
# API Configuration
|
||||
@@ -56,60 +55,76 @@ NOTEBOOKLM_AGENT_WEBHOOK_SECRET=your-webhook-secret
|
||||
NOTEBOOKLM_AGENT_PORT=8000
|
||||
NOTEBOOKLM_AGENT_HOST=0.0.0.0
|
||||
|
||||
# NotebookLM Configuration
|
||||
NOTEBOOKLM_HOME=~/.notebooklm
|
||||
NOTEBOOKLM_PROFILE=default
|
||||
# LLM Provider API Keys (configura almeno uno)
|
||||
OPENAI_API_KEY=sk-...
|
||||
ZAI_API_KEY=...
|
||||
OPENCODE_ZEN_API_KEY=...
|
||||
OPENROUTER_API_KEY=...
|
||||
ANTHROPIC_API_KEY=...
|
||||
GOOGLE_API_KEY=...
|
||||
MISTRAL_API_KEY=...
|
||||
AZURE_API_KEY=...
|
||||
|
||||
# Vector Store
|
||||
QDRANT_HOST=localhost
|
||||
QDRANT_PORT=6333
|
||||
|
||||
# Logging
|
||||
LOG_LEVEL=INFO
|
||||
LOG_FORMAT=json
|
||||
```
|
||||
|
||||
## Autenticazione NotebookLM
|
||||
|
||||
```bash
|
||||
# Login a NotebookLM (prima volta)
|
||||
notebooklm login
|
||||
|
||||
# Verifica autenticazione
|
||||
notebooklm auth check
|
||||
```
|
||||
|
||||
## Avvio
|
||||
|
||||
```bash
|
||||
# Development server
|
||||
uv run fastapi dev src/notebooklm_agent/api/main.py
|
||||
### Con Docker (Consigliato)
|
||||
|
||||
# Production server
|
||||
uv run gunicorn notebooklm_agent.api.main:app -w 4 -k uvicorn.workers.UvicornWorker
|
||||
```bash
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
L'API sarà disponibile su `http://localhost:8000`
|
||||
### Manuale
|
||||
|
||||
- API docs: `http://localhost:8000/docs`
|
||||
- OpenAPI schema: `http://localhost:8000/openapi.json`
|
||||
```bash
|
||||
# Backend
|
||||
cd backend
|
||||
uv run fastapi dev src/agentic_rag/api/main.py
|
||||
|
||||
# Frontend (in un altro terminale)
|
||||
cd frontend
|
||||
npm run dev
|
||||
```
|
||||
|
||||
L'applicazione sarà disponibile:
|
||||
- **Web UI**: http://localhost:3000
|
||||
- **API docs**: http://localhost:8000/api/docs
|
||||
- **OpenAPI schema**: http://localhost:8000/openapi.json
|
||||
|
||||
## Uso Rapido
|
||||
|
||||
### Via Web UI
|
||||
|
||||
1. Accedi a http://localhost:3000
|
||||
2. Inserisci la tua API Key
|
||||
3. Carica documenti nella sezione "Documents"
|
||||
4. Inizia a chattare nella sezione "Chat"
|
||||
|
||||
### Via API
|
||||
|
||||
```bash
|
||||
# Creare notebook
|
||||
curl -X POST http://localhost:8000/api/v1/notebooks \
|
||||
# Upload documento
|
||||
curl -X POST http://localhost:8000/api/v1/documents \
|
||||
-H "X-API-Key: your-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"title": "Ricerca AI"}'
|
||||
-F "file=@documento.pdf"
|
||||
|
||||
# Aggiungere fonte
|
||||
curl -X POST http://localhost:8000/api/v1/notebooks/{id}/sources \
|
||||
# Query RAG
|
||||
curl -X POST http://localhost:8000/api/v1/query \
|
||||
-H "X-API-Key: your-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"type": "url", "url": "https://example.com"}'
|
||||
|
||||
# Generare podcast
|
||||
curl -X POST http://localhost:8000/api/v1/notebooks/{id}/generate/audio \
|
||||
-H "X-API-Key: your-key" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"instructions": "Make it engaging"}'
|
||||
-d '{
|
||||
"question": "Qual è il contenuto principale?",
|
||||
"provider": "openai",
|
||||
"model": "gpt-4o-mini"
|
||||
}'
|
||||
```
|
||||
|
||||
## Testing
|
||||
@@ -119,50 +134,53 @@ curl -X POST http://localhost:8000/api/v1/notebooks/{id}/generate/audio \
|
||||
uv run pytest
|
||||
|
||||
# Con coverage
|
||||
uv run pytest --cov=src/notebooklm_agent --cov-report=term-missing
|
||||
uv run pytest --cov=src/agentic_rag --cov-report=term-missing
|
||||
|
||||
# Solo unit test
|
||||
uv run pytest tests/unit/ -m unit
|
||||
|
||||
# Solo integration test
|
||||
uv run pytest tests/integration/ -m integration
|
||||
```
|
||||
|
||||
## Sviluppo
|
||||
|
||||
### Workflow
|
||||
|
||||
1. **Spec-Driven**: Definisci requisiti in `prd.md`
|
||||
2. **TDD**: Scrivi test → Implementa → Refactor
|
||||
3. **Conventional Commits**: Segui lo standard per i commit
|
||||
4. **Pre-commit**: I controlli automatici garantiscono qualità
|
||||
|
||||
### Struttura Progetto
|
||||
## Struttura Progetto
|
||||
|
||||
```
|
||||
notebooklm-agent/
|
||||
├── src/notebooklm_agent/ # Codice sorgente
|
||||
├── tests/ # Test suite
|
||||
├── docs/ # Documentazione
|
||||
├── prd.md # Product Requirements
|
||||
├── AGENTS.md # Linee guida OpenCode
|
||||
├── SKILL.md # Definizione skill AI
|
||||
└── CONTRIBUTING.md # Guida contribuzione
|
||||
documente/
|
||||
├── backend/
|
||||
│ ├── src/agentic_rag/ # Codice sorgente backend
|
||||
│ │ ├── api/ # FastAPI routes
|
||||
│ │ ├── core/ # Config, auth, LLM factory
|
||||
│ │ └── services/ # RAG, documents, vector store
|
||||
│ ├── tests/ # Test suite
|
||||
│ └── requirements.txt
|
||||
├── frontend/
|
||||
│ ├── src/ # React + TypeScript
|
||||
│ ├── public/
|
||||
│ └── package.json
|
||||
├── docker-compose.yml
|
||||
├── Dockerfile
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Provider LLM Supportati
|
||||
|
||||
| Provider | Modelli Principali | Stato |
|
||||
|----------|-------------------|-------|
|
||||
| **OpenAI** | GPT-4o, GPT-4, GPT-3.5 | ✅ |
|
||||
| **Z.AI** | zai-large, zai-medium | ✅ |
|
||||
| **OpenCode Zen** | zen-1, zen-lite | ✅ |
|
||||
| **OpenRouter** | Multi-model access | ✅ |
|
||||
| **Anthropic** | Claude 3.5, Claude 3 | ✅ |
|
||||
| **Google** | Gemini 1.5 Pro/Flash | ✅ |
|
||||
| **Mistral** | Mistral Large/Medium | ✅ |
|
||||
| **Azure** | GPT-4, GPT-4o | ✅ |
|
||||
|
||||
## Documentazione
|
||||
|
||||
- [PRD](./prd.md) - Product Requirements Document
|
||||
- [PRD v2](./prd-v2.md) - Product Requirements Document (DocuMente)
|
||||
- [Frontend Plan](./frontend-plan.md) - Piano sviluppo frontend
|
||||
- [Test Coverage](./TEST_COVERAGE_REPORT.md) - Report coverage test
|
||||
- [AGENTS.md](./AGENTS.md) - Linee guida per OpenCode
|
||||
- [SKILL.md](./SKILL.md) - Skill per agenti AI
|
||||
- [CONTRIBUTING.md](./CONTRIBUTING.md) - Come contribuire
|
||||
|
||||
## Stato del Progetto
|
||||
|
||||
⚠️ **Versione Iniziale**: Questo progetto è in fase di setup iniziale. Le funzionalità API sono pianificate per le prossime release.
|
||||
|
||||
Vedi [CHANGELOG.md](./CHANGELOG.md) per lo stato attuale e la roadmap.
|
||||
|
||||
## ⚖️ Licenza e Note Legali
|
||||
|
||||
Questo software è proprietà riservata di Luca Sacchi Ricciardi.
|
||||
@@ -177,4 +195,6 @@ Vedi [CONTRIBUTING.md](./CONTRIBUTING.md) per le linee guida su come contribuire
|
||||
|
||||
---
|
||||
|
||||
**Nota**: Questo è un progetto non ufficiale e non è affiliato con Google. Usa le API interne di NotebookLM che possono cambiare senza preavviso.
|
||||
**Autore**: Luca Sacchi Ricciardi
|
||||
**Contatto**: luca@lucasacchi.net
|
||||
**Copyright**: © 2026 Tutti i diritti riservati
|
||||
|
||||
Reference in New Issue
Block a user