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:
@@ -1,4 +1,4 @@
|
||||
# AgenticRAG Dockerfile
|
||||
# DocuMente Dockerfile
|
||||
# Multi-stage build for production
|
||||
|
||||
FROM python:3.11-slim as builder
|
||||
|
||||
8
LICENSE
8
LICENSE
@@ -1,6 +1,6 @@
|
||||
Copyright e Licenza
|
||||
|
||||
Progetto: AgenticRAG (aka NotebookLM Agent API)
|
||||
Progetto: DocuMente
|
||||
Autore: Luca Sacchi Ricciardi
|
||||
Contatto: luca@lucasacchi.net
|
||||
|
||||
@@ -20,14 +20,14 @@ Nessuna Modifica: È vietato modificare, alterare, adattare, tradurre, decompila
|
||||
|
||||
Uso Non Autorizzato: È vietato vendere, noleggiare, dare in locazione, concedere in licenza o utilizzare il software per scopi commerciali senza una licenza specifica rilasciata dall'autore.
|
||||
|
||||
Tutela del Marchio: Il nome "AgenticRAG", "NotebookLM Agent API" e le metodologie di sviluppo associate sono di proprietà dell'autore.
|
||||
Tutela del Marchio: Il nome "DocuMente" e le metodologie di sviluppo associate sono di proprietà dell'autore.
|
||||
|
||||
Legge Applicabile e Foro Competente
|
||||
|
||||
Il presente accordo è regolato dalla legge italiana. Per qualsiasi controversia derivante dall'interpretazione, esecuzione o risoluzione della presente licenza e per ogni disputa relativa al progetto "AgenticRAG", sarà competente in via esclusiva il Foro di Milano, Italia.
|
||||
Il presente accordo è regolato dalla legge italiana. Per qualsiasi controversia derivante dall'interpretazione, esecuzione o risoluzione della presente licenza e per ogni disputa relativa al progetto "DocuMente", sarà competente in via esclusiva il Foro di Milano, Italia.
|
||||
|
||||
Contatti
|
||||
|
||||
Per richieste di autorizzazione, collaborazioni o informazioni su licenze commerciali, si prega di contattare l'autore all'indirizzo email: luca@lucasacchi.net.
|
||||
|
||||
Documento generato il 6 Aprile 2026 per la release del sistema completo.
|
||||
Documento generato il 6 Aprile 2026 per la release di DocuMente.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Test Coverage Report - AgenticRAG
|
||||
# Test Coverage Report - DocuMente
|
||||
|
||||
## 📊 Summary
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# AgenticRAG - Docker Compose
|
||||
# DocuMente - Docker Compose
|
||||
# Complete stack with API, Qdrant, and optional services
|
||||
|
||||
version: '3.8'
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Piano di Sviluppo Frontend - AgenticRAG
|
||||
# Piano di Sviluppo Frontend - DocuMente
|
||||
|
||||
## 📋 Overview
|
||||
|
||||
Sviluppo di un'interfaccia web moderna per AgenticRAG utilizzando **React 18 + Vite + TypeScript + Tailwind CSS + shadcn/ui**.
|
||||
Sviluppo di un'interfaccia web moderna per DocuMente utilizzando **React 18 + Vite + TypeScript + Tailwind CSS + shadcn/ui**.
|
||||
|
||||
---
|
||||
|
||||
@@ -319,7 +319,7 @@ npm run preview
|
||||
### Dashboard
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 🧠 AgenticRAG Dashboard Documents Chat Settings│
|
||||
│ 🧠 DocuMente Dashboard Documents Chat Settings│
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
@@ -343,7 +343,7 @@ npm run preview
|
||||
### Chat Interface
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 🧠 AgenticRAG [User ▼] │
|
||||
│ 🧠 DocuMente [User ▼] │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ 💬 Chat 1 ┌─────────────────────┐ │
|
||||
│ 💬 Chat 2 │ │ │
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# AgenticRAG Frontend
|
||||
# DocuMente Frontend
|
||||
|
||||
Modern React-based web interface for AgenticRAG - Agentic Retrieval System powered by datapizza-ai.
|
||||
Modern React-based web interface for DocuMente - Sistema di Retrieval Agentico con AI.
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ export function Layout({ children }: LayoutProps) {
|
||||
<div className="p-2 rounded-lg bg-primary">
|
||||
<Brain className="h-5 w-5 text-primary-foreground" />
|
||||
</div>
|
||||
<span className="text-xl font-bold">AgenticRAG</span>
|
||||
<span className="text-xl font-bold">DocuMente</span>
|
||||
</Link>
|
||||
<Button
|
||||
variant="ghost"
|
||||
|
||||
@@ -53,7 +53,7 @@ export function Dashboard() {
|
||||
<div>
|
||||
<h1 className="text-3xl font-bold tracking-tight">Dashboard</h1>
|
||||
<p className="text-muted-foreground">
|
||||
Overview of your AgenticRAG system
|
||||
Overview of your DocuMente system
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ export function Login() {
|
||||
<Brain className="h-8 w-8 text-primary" />
|
||||
</div>
|
||||
</div>
|
||||
<CardTitle className="text-2xl text-center">Welcome to AgenticRAG</CardTitle>
|
||||
<CardTitle className="text-2xl text-center">Welcome to DocuMente</CardTitle>
|
||||
<CardDescription className="text-center">
|
||||
Enter your API key to access the system
|
||||
</CardDescription>
|
||||
|
||||
@@ -112,7 +112,7 @@ export function Settings() {
|
||||
<div>
|
||||
<h1 className="text-3xl font-bold tracking-tight">Settings</h1>
|
||||
<p className="text-muted-foreground">
|
||||
Configure your AgenticRAG preferences
|
||||
Configure your DocuMente preferences
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
## 1. Panoramica del Prodotto
|
||||
|
||||
### 1.1 Nome del Prodotto
|
||||
**AgenticRAG** - Sistema di retrieval agentico con interfaccia web e API REST, basato sul framework datapizza-ai.
|
||||
**DocuMente** - Sistema di retrieval agentico con interfaccia web e API REST, basato sul framework datapizza-ai.
|
||||
|
||||
### 1.2 Descrizione
|
||||
Sistema RAG (Retrieval-Augmented Generation) avanzato che combina:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# AgenticRAG Requirements
|
||||
# DocuMente Requirements
|
||||
# Core dependencies
|
||||
|
||||
# FastAPI and web framework
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# AgenticRAG - Agentic Retrieval System
|
||||
# DocuMente - Agentic Retrieval System
|
||||
|
||||
Powered by [datapizza-ai](https://github.com/datapizza-labs/datapizza-ai)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
"""AgenticRAG API - Backend powered by datapizza-ai.
|
||||
"""DocuMente API - Backend powered by datapizza-ai.
|
||||
|
||||
Multi-provider LLM support: OpenAI, Z.AI, OpenCode Zen, OpenRouter, Anthropic, Google, Mistral, Azure
|
||||
"""
|
||||
@@ -55,9 +55,9 @@ async def lifespan(app: FastAPI) -> AsyncGenerator:
|
||||
def create_application() -> FastAPI:
|
||||
"""Create and configure FastAPI application."""
|
||||
app = FastAPI(
|
||||
title="AgenticRAG API",
|
||||
title="DocuMente API",
|
||||
description="""
|
||||
Agentic Retrieval System powered by datapizza-ai.
|
||||
DocuMente - Sistema di Retrieval Agentico con AI. Interroga i tuoi documenti in modo intelligente.
|
||||
|
||||
## Multi-Provider LLM Support
|
||||
|
||||
@@ -128,10 +128,10 @@ async def api_root():
|
||||
configured = settings.list_configured_providers()
|
||||
|
||||
return {
|
||||
"name": "AgenticRAG API",
|
||||
"name": "DocuMente API",
|
||||
"version": "2.0.0",
|
||||
"docs": "/api/docs",
|
||||
"description": "Agentic Retrieval System powered by datapizza-ai",
|
||||
"description": "DocuMente - Sistema di Retrieval Agentico con AI",
|
||||
"features": {
|
||||
"multi_provider_llm": True,
|
||||
"authentication": ["api_key", "jwt"],
|
||||
|
||||
@@ -22,7 +22,7 @@ async def chat_stream(request: ChatMessage):
|
||||
|
||||
# Placeholder for streaming implementation
|
||||
async def generate():
|
||||
yield b"data: Hello from AgenticRAG!\n\n"
|
||||
yield b"data: Hello from DocuMente!\n\n"
|
||||
yield b"data: Streaming not fully implemented yet.\n\n"
|
||||
yield b"data: [DONE]\n\n"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ class Settings(BaseSettings):
|
||||
"""Application settings with multi-provider LLM support."""
|
||||
|
||||
# API
|
||||
app_name: str = "AgenticRAG"
|
||||
app_name: str = "DocuMente"
|
||||
app_version: str = "2.0.0"
|
||||
debug: bool = True
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ class OpenRouterClient(BaseLLMClient):
|
||||
headers={
|
||||
"Authorization": f"Bearer {api_key}",
|
||||
"HTTP-Referer": "https://agenticrag.app", # Required by OpenRouter
|
||||
"X-Title": "AgenticRAG",
|
||||
"X-Title": "DocuMente",
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>AgenticRAG - Powered by datapizza-ai</title>
|
||||
<title>DocuMente - Powered by datapizza-ai</title>
|
||||
<style>
|
||||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body {
|
||||
@@ -120,8 +120,8 @@
|
||||
<body>
|
||||
<div class="container">
|
||||
<header>
|
||||
<h1>🍕 AgenticRAG</h1>
|
||||
<p class="subtitle">Agentic Retrieval System powered by datapizza-ai</p>
|
||||
<h1>🍕 DocuMente</h1>
|
||||
<p class="subtitle">Sistema di Retrieval Agentico con AI - Powered by datapizza-ai</p>
|
||||
</header>
|
||||
|
||||
<div class="grid">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
"""Shared fixtures for AgenticRAG unit tests."""
|
||||
"""Shared fixtures for DocuMente unit tests."""
|
||||
|
||||
import pytest
|
||||
from unittest.mock import Mock, AsyncMock, MagicMock, patch
|
||||
@@ -13,7 +13,7 @@ sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent.parent / "src"
|
||||
def mock_settings():
|
||||
"""Create a mock Settings object."""
|
||||
settings = Mock()
|
||||
settings.app_name = "AgenticRAG"
|
||||
settings.app_name = "DocuMente"
|
||||
settings.app_version = "2.0.0"
|
||||
settings.debug = True
|
||||
settings.cors_origins = ["http://localhost:3000"]
|
||||
|
||||
@@ -44,7 +44,7 @@ class TestChatStream:
|
||||
response = client.post("/chat/stream", json={"message": "Hello"})
|
||||
content = response.content.decode("utf-8")
|
||||
|
||||
assert "data: Hello from AgenticRAG!" in content
|
||||
assert "data: Hello from DocuMente!" in content
|
||||
assert "data: Streaming not fully implemented yet." in content
|
||||
assert "data: [DONE]" in content
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ class TestSettings:
|
||||
|
||||
settings = Settings()
|
||||
|
||||
assert settings.app_name == "AgenticRAG"
|
||||
assert settings.app_name == "DocuMente"
|
||||
assert settings.app_version == "2.0.0"
|
||||
assert settings.debug is True
|
||||
assert settings.qdrant_host == "localhost"
|
||||
|
||||
@@ -131,7 +131,7 @@ class TestOpenRouterClient:
|
||||
assert "HTTP-Referer" in headers
|
||||
assert "X-Title" in headers
|
||||
assert headers["HTTP-Referer"] == "https://agenticrag.app"
|
||||
assert headers["X-Title"] == "AgenticRAG"
|
||||
assert headers["X-Title"] == "DocuMente"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_invoke_success(self, client):
|
||||
|
||||
1
uploads/1935902a-c883-47b6-9f42-12abb80be380_document.md
Normal file
1
uploads/1935902a-c883-47b6-9f42-12abb80be380_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
1
uploads/1f2840ce-ef30-4494-a2b1-6651d79378dc_document.md
Normal file
1
uploads/1f2840ce-ef30-4494-a2b1-6651d79378dc_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
1
uploads/8df2e154-1cfe-42b3-8de9-a746639cf06d_document.md
Normal file
1
uploads/8df2e154-1cfe-42b3-8de9-a746639cf06d_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
1
uploads/aa0aaa26-9e09-46f9-bb1d-ca3ff2908225_document.md
Normal file
1
uploads/aa0aaa26-9e09-46f9-bb1d-ca3ff2908225_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
1
uploads/ce0aa59e-e8d4-4722-bf62-8e7033720a91_document.md
Normal file
1
uploads/ce0aa59e-e8d4-4722-bf62-8e7033720a91_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
1
uploads/daa5fd04-f408-4a4a-afa1-2235633dd854_document.md
Normal file
1
uploads/daa5fd04-f408-4a4a-afa1-2235633dd854_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
1
uploads/e155f7eb-20dd-4192-a392-eb357d259812_document.md
Normal file
1
uploads/e155f7eb-20dd-4192-a392-eb357d259812_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
1
uploads/e3ca5935-472d-4a62-be2a-ea5cc24fb27d_document.md
Normal file
1
uploads/e3ca5935-472d-4a62-be2a-ea5cc24fb27d_document.md
Normal file
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
@@ -0,0 +1 @@
|
||||
Test content
|
||||
Reference in New Issue
Block a user