Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Ricerca Web

La funzionalità di ricerca web di LibreChat ti consente di cercare su internet e recuperare informazioni pertinenti per arricchire le tue conversazioni. La funzionalità è composta da tre componenti principali che lavorano insieme per fornire risultati di ricerca completi.

Avvio rapido

Per iniziare con la ricerca web, dovrai configurare le chiavi API per un provider di ricerca e uno scraper. Il reranking può utilizzare Jina o Cohere, oppure può essere disabilitato con rerankerType: "none". Puoi farlo in due modi:

  1. Variabili d'ambiente (Consigliato per gli amministratori):

    # Search Provider (Required - choose one)
    SERPER_API_KEY=your_serper_api_key
    # or
    SEARXNG_INSTANCE_URL=your_searxng_instance_url
    SEARXNG_API_KEY=your_searxng_api_key  # Optional
    # or
    TAVILY_API_KEY=your_tavily_api_key
    
    # Scraper (Required - choose one)
    FIRECRAWL_API_KEY=your_firecrawl_api_key
    # Optional: Custom Firecrawl API URL
    FIRECRAWL_API_URL=your_firecrawl_api_url
    # Optional: Firecrawl API version (v0 or v1)
    # FIRECRAWL_VERSION=v1
    # or
    TAVILY_API_KEY=your_tavily_api_key
    
    # Reranker (Optional - choose one, or set rerankerType: "none")
    JINA_API_KEY=your_jina_api_key
    # Optional: Custom Jina API URL
    JINA_API_URL=your_jina_api_url
    # or
    COHERE_API_KEY=your_cohere_api_key
  2. Interfaccia Utente (Se le variabili d'ambiente non sono impostate):

    • Agli utenti verrĂ  richiesto di inserire le chiavi API necessarie al primo utilizzo della funzionalitĂ  di ricerca web.
    • Possono scegliere quale provider di ricerca (Serper, SearXNG o Tavily) e quale servizio di reranker utilizzare (Jina, Cohere o nessuno).

Ottenere le API Key

Ogni servizio esterno abilitato richiede la propria chiave API. Ecco come ottenerle:

Provider di ricerca

Serper

  1. Visita Serper.dev
  2. Registrati per un account
  3. Vai alla sezione API Key
  4. Copia la tua chiave API
  5. Impostalo nelle tue variabili d'ambiente o forniscilo tramite l'interfaccia utente

SearXNG

  1. Segui le istruzioni di configurazione nella documentazione Web Search Configuration
  2. Imposta SEARXNG_INSTANCE_URL sull'URL della tua istanza
  3. Facoltativamente, imposta SEARXNG_API_KEY se la tua istanza richiede l'autenticazione

Tavily

  1. Visita Tavily
  2. Registrati per un account
  3. Copia la tua chiave API
  4. Imposta TAVILY_API_KEY nelle tue variabili d'ambiente o forniscila tramite l'interfaccia utente.
  5. Tavily può essere utilizzato sia come provider di ricerca che come provider di scraping.

Scraper: Firecrawl

  1. Visita Firecrawl.dev
  2. Registrati per un account
  3. Vai alla sezione API Key
  4. Copia la tua chiave API
  5. Impostalo nelle tue variabili d'ambiente o forniscilo tramite l'interfaccia utente
  6. (Opzionale) Se stai utilizzando un'istanza personalizzata di Firecrawl, dovrai anche impostare l'URL dell'API

Rerankers

Jina

  1. Visita Jina.ai
  2. Registrati per un account
  3. Vai alla Dashboard API
  4. Copia la tua chiave API
  5. Impostalo nelle tue variabili d'ambiente o forniscilo tramite l'interfaccia utente

Cohere

  1. Visita la Cohere Dashboard
  2. Registrati per un account
  3. Passa alla sezione API Keys
  4. Copia la tua chiave API
  5. Impostalo nelle tue variabili d'ambiente o forniscilo tramite l'interfaccia utente

Componenti

1. Provider di ricerca

I provider di ricerca sono responsabili dell'esecuzione della ricerca web iniziale e della restituzione dei risultati pertinenti.

Provider disponibili:

  • Serper: Un'API di ricerca Google che fornisce risultati di ricerca di alta qualitĂ 
  • SearXNG: Meta motore di ricerca open-source e self-hosted
    • Ospita autonomamente la tua istanza
    • Risultati di ricerca incentrati sulla privacy
  • Tavily: API di ricerca ottimizzata per l'IA
    • Ottieni la tua chiave API da Tavily
    • Supporta profonditĂ  di ricerca configurabile, filtraggio per argomento, filtraggio per dominio e altro ancora.
    • Può anche fungere da provider di scraper

2. Scrapers

Gli scraper estraggono il contenuto effettivo dalle pagine web restituite dal provider di ricerca.

Scraper disponibili:

  • Firecrawl: Un potente servizio di web scraping che estrae contenuti dalle pagine web

    • Ottieni la tua chiave API da Firecrawl.dev
    • L'URL dell'API è facoltativo (per impostazione predefinita viene utilizzato il servizio ospitato di Firecrawl)
  • Tavily: Estrazione batch di URL tramite Tavily Extract API

    • Utilizza la stessa TAVILY_API_KEY del provider di ricerca
    • Supporta profonditĂ  di estrazione configurabile, estrazione di immagini ed estrazione di favicon

Scraper pianificati:

  • Local Firecrawl: Versione self-hosted di Firecrawl
  • Ulteriori servizi di scraping di terze parti

3. Rerankers

I Reranker analizzano il contenuto estratto per determinare le parti piĂš rilevanti e riordinarle per ottenere risultati migliori.

Reranker disponibili:

  • Jina: servizio di reranking basato su AI
    • Ottieni la tua chiave API da Jina.ai
    • L'URL dell'API è facoltativo (per impostazione predefinita utilizza il servizio ospitato di Jina)
  • Cohere: Servizio di reranking avanzato
  • None: Salta il reranking quando rerankerType è impostato su "none"

Reranker pianificati:

  • RAG API: Reranking open-source tramite RAG (Retrieval-Augmented Generation)
  • Ulteriori servizi di reranking di terze parti

Configurazione

Configurazione Amministratore

Gli amministratori possono configurare la funzionalitĂ  di ricerca web utilizzando le variabili d'ambiente. La configurazione YAML consente di specificare nomi di variabili d'ambiente personalizzati per ciascun componente.

⚠️ Importante: Non inserire mai chiavi API reali o valori nel file YAML (non funzionerebbero); utilizza solo i nomi delle variabili d'ambiente.

webSearch:
  # Search Provider Configuration
  serperApiKey: "${CUSTOM_SERPER_API_KEY}"  # ✅ Correct: Using environment variable name
  # serperApiKey: "sk-123..."               # ❌ Wrong: Never put actual API keys here
  # or
  searxngInstanceUrl: "${CUSTOM_SEARXNG_INSTANCE_URL}"  # ✅ Correct: Using environment variable name
  searxngApiKey: "${CUSTOM_SEARXNG_API_KEY}"            # ✅ Correct: Using environment variable name
  # searxngInstanceUrl: "http://..."        # ❌ Wrong: Never put actual URLs here
  # searxngApiKey: "sk-123..."              # ❌ Wrong: Never put actual API keys here

  # Tavily Configuration (search and/or scraper)
  tavilyApiKey: "${CUSTOM_TAVILY_API_KEY}"
  tavilySearchUrl: "${CUSTOM_TAVILY_SEARCH_URL}"
  tavilyExtractUrl: "${CUSTOM_TAVILY_EXTRACT_URL}"

  # Scraper Configuration
  firecrawlApiKey: "${CUSTOM_FIRECRAWL_API_KEY}"
  firecrawlApiUrl: "${CUSTOM_FIRECRAWL_API_URL}"
  # firecrawlApiKey: "fc-123..."            # ❌ Wrong: Never put actual API keys here
  # firecrawlApiUrl: "https://..."          # ❌ Wrong: Never put actual URLs here

  # Reranker Configuration
  jinaApiKey: "${CUSTOM_JINA_API_KEY}"
  jinaApiUrl: "${CUSTOM_JINA_API_URL}"
  cohereApiKey: "${CUSTOM_COHERE_API_KEY}"
  # jinaApiKey: "jn-123..."                 # ❌ Wrong: Never put actual API keys here
  # jinaApiUrl: "https://..."               # ❌ Wrong: Never put actual URLs here
  # cohereApiKey: "ch-123..."               # ❌ Wrong: Never put actual API keys here

  # General Settings
  safeSearch: 1 # Options: 0 (OFF), 1 (MODERATE - default), 2 (STRICT)

Nota: La configurazione YAML dovrebbe contenere solo nomi di variabili d'ambiente (nel formato ${VARIABLE_NAME}). Questa flessibilitĂ  consente:

  • Utilizzo di nomi di variabili diversi in ambienti diversi
  • Supporto di configurazioni multiple per diversi gruppi di utenti
  • Integrazione futura con configurazioni basate sui ruoli

Se desideri limitare il sistema all'utilizzo di soli servizi specifici, puoi specificare i tipi di servizio:

webSearch:
  # ... variable configurations ...
  searchProvider: "serper"    # Only use Serper for search
  # searchProvider: "searxng" # Only use SearXNG for search
  # searchProvider: "tavily"  # Only use Tavily for search
  scraperProvider: "firecrawl"    # Only use Firecrawl for scraping
  # scraperProvider: "tavily" # Only use Tavily for scraping
  rerankerType: "jina"        # Options: "jina", "cohere", "none"

Configurazione Utente

Se l'amministratore non ha configurato tutte le chiavi API necessarie, agli utenti verrĂ  richiesto di fornirle tramite l'interfaccia utente. L'interfaccia consente agli utenti di:

  1. Scegli il loro reranker preferito (Jina, Cohere o nessuno)
  2. Inserisci le chiavi API per i servizi richiesti
  3. Configura l'URL dell'API di Firecrawl se necessario (opzionale)
  4. Configura l'URL dell'API Jina se necessario (opzionale)
  5. Configura gli URL delle API Tavily Search o Extract se necessario (opzionale)

Utilizzo

Una volta configurata, puoi utilizzare la ricerca web in due modi:

  1. Interfaccia di chat: Fai clic sul pulsante di ricerca web nell'interfaccia di chat per abilitare la ricerca web per la tua conversazione
  2. Agenti: Utilizza la funzionalitĂ  web_search negli agenti per consentire loro di effettuare ricerche sul web

Note

  • La configurazione del provider di ricerca e dello scraper è obbligatoria; il reranking può essere disabilitato con rerankerType: "none"
  • L'URL dell'API Firecrawl è facoltativo e utilizza come impostazione predefinita il loro servizio ospitato.
  • L'URL dell'API Jina è facoltativo e utilizza come impostazione predefinita il loro servizio ospitato.
  • Gli URL delle API Tavily Search and Extract sono facoltativi e utilizzano come impostazione predefinita i servizi ospitati da Tavily.
  • Safe search fornisce tre livelli di filtraggio dei contenuti: OFF (0), MODERATE (1 - predefinito) e STRICT (2)
  • Tavily non eredita l'impostazione globale safeSearch per impostazione predefinita; utilizza tavilySearchOptions.safeSearch solo se il tuo account Tavily supporta safe_search
  • Il timeout dello scraper è impostato su 7,5 secondi (7500ms) per impostazione predefinita
  • Le API keys possono essere revocate in qualsiasi momento tramite l'interfaccia utente.
  • I futuri aggiornamenti includeranno piĂš opzioni open-source e self-hosted per tutti i componenti
  • Sono previste ulteriori opzioni di personalizzazione, tra cui:
    • Controllo sul numero di link da analizzare
    • Allowlist/blocklist di dominio per lo scraping
    • Regole di scraping e filtri personalizzati
    • Opzioni avanzate di filtraggio e classificazione dei risultati
    • Controlli di limitazione della frequenza (rate limiting) e di throttling delle richieste

Com’è questa guida?