SearchMuse
Intelligent web research powered by LLMs
- Stato
- beta
- Licenza
- MIT
- Categoria
- Research & AI Tooling
- Aggiornato
Descrizione
SearchMuse capisce gli obiettivi della ricerca a livello semantico e raffina iterativamente le query DuckDuckGo finché non trova fonti complete. Supporta Ollama (locale, default), Claude, OpenAI e Gemini. Combina httpx (async, sites leggeri) e Playwright (JS-heavy) per lo scraping, con estrazione contenuti tramite trafilatura + readability-lxml. Architettura hexagonal (CLI ↔ Application ↔ Ports ↔ Domain ↔ Adapters), 311 test, type-checking mypy stretto, code style ruff. CLI Typer + output Rich, banner ASCII con provider status. Licenza MIT.
Funzionalità chiave
Ricerca iterativa raffinata
L'LLM analizza i primi risultati e riformula la query finché le fonti non sono complete
Multi-provider LLM
Ollama (locale, privacy-first), Claude, OpenAI, Gemini — switch con flag `-p`
Citazioni in markdown
Ogni finding include URL, data pubblicazione e attribuzione tracciabile
Scraping multi-strategia
httpx per richieste leggere + Playwright per siti JavaScript-heavy
Estrazione contenuto
trafilatura + readability-lxml + BeautifulSoup per parsing articoli affidabile
Architettura hexagonal
Domain puro Python, Ports/Adapters swappable, 311 test pytest con TDD
CLI Typer + Rich
Banner due colonne con provider status, mascotte ASCII, output JSON per pipeline
Privacy-first
DuckDuckGo + Ollama on-prem, API keys in keyring di sistema, zero telemetria
Tech stack
- Python 3.11+
- Typer
- Rich
- httpx
- Playwright
- trafilatura
- readability-lxml
- beautifulsoup4
- DuckDuckGo Search
- Ollama
- Anthropic Claude
- OpenAI
- Google Gemini
- PyYAML
- SQLite + aiosqlite
- pytest
- ruff
- mypy
Casi d'uso
- Deep research su topic tecnici/accademici con citazioni verificabili e markdown export
- Pipeline async di knowledge gathering con output JSON consumabile da downstream tool
- Estrazione contenuti da siti JavaScript-heavy via Playwright headless
- Ricerca privacy-first (DuckDuckGo + Ollama locale) per analisti, giornalisti, ricercatori
- Confronto multi-LLM su uno stesso research goal (Ollama vs Claude vs OpenAI vs Gemini)
Quick Start
Avvia il progetto localmente in pochi comandi.
git clone https://github.com/fedcal/SearchMuse.git
cd SearchMuse
pip install -e ".[all-providers]"
searchmuse search "your research query"Documentazione completa
Esplora le sezioni della documentazione su GitHub Pages.
Contribuisci al progetto
SearchMuse è open source. Apri una issue, proponi una pull request o lascia una stella su GitHub: ogni contributo, anche piccolo, è benvenuto.
- ⭐ Lascia una stella se ti è utile
- 🐛 Segnala bug o proponi feature via issue
- 🔧 Invia pull request con fix o miglioramenti
- 📣 Condividi il progetto se lo trovi interessante