Salta al contenuto principale
beta MITResearch & AI Tooling

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