feat: v0.2.0 — API REST, TTS support, documentazione completa e UI mobile-first

✨ Nuove funzionalità:
- Nuovo endpoint API REST /api/v1/query (GET+POST) per consumo programmatico
- Campo speakable_text ottimizzato per sintesi vocale (Alexa, Google Home)
- Funzione strip_markdown() per conversione Markdown → plain text TTS
- Supporto CORS per accesso cross-origin
- UI responsive mobile-first con micro-interazioni e stati
- Nuovo pulsante 'Nuova ricerca' e metadata bar

📚 Documentazione completa:
- docs/ARCHITECTURE.md — architettura di sistema, stack, componenti
- docs/FLOW.md — diagrammi Mermaid della pipeline e flussi
- docs/API.md — documentazione endpoint REST con esempi curl
- docs/WIKI.md — FAQ, glossario, roadmap
- docs/DEPLOYMENT.md — guida deployment (Gunicorn, Nginx, Docker, systemd)
- docs/CONTRIBUTING.md — guida alla contribuzione

🔧 Migliorie tecniche:
- Pipeline di ricerca condivisa in _run_search_pipeline()
- Gestione errori Gemini migliorata con _clean_error()
- Sanitizzazione HTML con allowlist per prevenzione XSS
- .env.example completo con commenti

🧪 Test: 109/109 passati
This commit is contained in:
Sibilla committed 2026-07-18 10:05:46 +00:00
1 parent f3fe13c60e
commit 76bc667adf
20 files changed
+3385 -245

No files matched your search

+9 -4
View File
@@ -2,14 +2,17 @@
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="theme-color" content="#0f0f14">
<meta name="description" content="Sibilla — L'oracolo AI che cerca nel web e risponde alle tue domande">
<title>Sibilla — L'Oracolo AI</title>
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg">
<link rel="stylesheet" href="/static/style.css">
</head>
<body>
<div class="container">
<header>
<h1>🔮 Sibilla</h1>
<h1><img src="/static/favicon.svg" alt="Sibilla logo" class="logo"> Sibilla</h1>
<p class="subtitle">L'oracolo AI che cerca nel web e risponde alle tue domande</p>
</header>
@@ -23,7 +26,7 @@
autofocus
></textarea>
<button type="submit" id="submit-btn">
<span>Interroga l'Oracolo</span>
<span>🔮 Interroga l'Oracolo</span>
</button>
</form>
@@ -32,13 +35,15 @@
<span class="spinner"></span>
<p>Sibilla sta consultando le fonti...</p>
</div>
<button id="new-search-btn" class="new-search-btn">↩ Nuova ricerca</button>
<div id="meta-bar" class="meta-bar" style="display: none;"></div>
<div id="answer" class="answer"></div>
<div id="sources" class="sources"></div>
</div>
</main>
<footer>
<p>Sibilla v0.1.0 — Self-hosted AI Search</p>
<p>Sibilla v0.2.0 — Self-hosted AI Search</p>
</footer>
</div>