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:
1 parent
f3fe13c60e
commit
76bc667adf
20 files changed
+3385
-245
No files matched your search
+29
-12
@@ -1,21 +1,38 @@
|
||||
# Google AI API Key — ottenila da https://aistudio.google.com/apikey
|
||||
GOOGLE_API_KEY=your-api-key-here
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
# Sibilla Configuration Template
|
||||
# ═══════════════════════════════════════════════════════════════
|
||||
#
|
||||
# Copia questo file in .env e modifica i valori:
|
||||
# cp .env.example .env
|
||||
|
||||
# ── Search backends (cascading: Degoog → SearXNG → DuckDuckGo) ──
|
||||
# Google Gemini API key (obbligatoria)
|
||||
# Ottienila gratis: https://aistudio.google.com/apikey
|
||||
GOOGLE_API_KEY=la-tua-api-key
|
||||
|
||||
# Degoog (primary) — self-hosted metasearch, default port 4444
|
||||
# Flask secret key (cambiala in produzione!)
|
||||
# Generane una con: python -c "import secrets; print(secrets.token_hex(32))"
|
||||
SECRET_KEY=dev-secret-key-change-me
|
||||
|
||||
# ── Server ───────────────────────────────────────────────────
|
||||
|
||||
# Host e porta del server Flask
|
||||
SIBILLA_HOST=127.0.0.1
|
||||
SIBILLA_PORT=5000
|
||||
|
||||
# Debug mode (0 = off, 1 = on)
|
||||
# ⚠️ NON usare SIBILLA_DEBUG=1 in produzione!
|
||||
SIBILLA_DEBUG=1
|
||||
|
||||
# ── Search Engines ────────────────────────────────────────────
|
||||
|
||||
# Degoog (primary) — motore di ricerca self-hosted
|
||||
# Avvia con: docker run -d --name degoog -p 4444:4444 ghcr.io/degoog-org/degoog:latest
|
||||
DEGOOG_URL=http://localhost:4444
|
||||
|
||||
# SearXNG (fallback 1) — self-hosted metasearch, default port 8080
|
||||
# SearXNG (secondary, fallback) — motore di ricerca self-hosted
|
||||
# Avvia con: docker run -d -p 8080:8080 searxng/searxng
|
||||
SEARXNG_URL=http://localhost:8080
|
||||
|
||||
# DuckDuckGo (fallback 2) — nessun server richiesto
|
||||
# DuckDuckGo fallback (1 = on, 0 = off)
|
||||
# Funziona senza server — scraping HTML, nessuna API key necessaria
|
||||
SIBILLA_DDG_FALLBACK=1
|
||||
|
||||
# ── Flask ──
|
||||
SECRET_KEY=change-me-to-a-random-string
|
||||
SIBILLA_HOST=127.0.0.1
|
||||
SIBILLA_PORT=5000
|
||||
SIBILLA_DEBUG=1
|
||||
Reference in new issue
Block a user