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

Configurazione della ricerca web

La configurazione webSearch ti consente di personalizzare la funzionalità di ricerca web all'interno di LibreChat, inclusi i provider di ricerca, gli scraper di contenuti e i reranker dei risultati.

Panoramica

La funzionalità di ricerca web è composta da tre componenti principali:

  1. Search Providers: Servizi che eseguono la ricerca web iniziale
  2. Scrapers: Servizi che estraggono contenuti dalle pagine web
  3. Rerankers: Servizi che riordinano i risultati di ricerca per una migliore pertinenza

Esempio

webSearch:
  # Search Provider Configuration
  serperApiKey: "${SERPER_API_KEY}"
  searxngInstanceUrl: "${SEARXNG_INSTANCE_URL}"
  searxngApiKey: "${SEARXNG_API_KEY}"
  searchProvider: "serper" # Options: "serper", "searxng", "tavily"

  # Tavily Configuration (search and/or scraper)
  tavilyApiKey: "${TAVILY_API_KEY}"
  # Optional: custom Tavily-compatible endpoints
  tavilySearchUrl: "${TAVILY_SEARCH_URL}"
  tavilyExtractUrl: "${TAVILY_EXTRACT_URL}"

  # Scraper Configuration
  firecrawlApiKey: "${FIRECRAWL_API_KEY}"
  firecrawlApiUrl: "${FIRECRAWL_API_URL}"
  firecrawlVersion: "${FIRECRAWL_VERSION}"
  scraperProvider: "firecrawl" # Options: "firecrawl", "serper", "tavily"

  # Reranker Configuration
  jinaApiKey: "${JINA_API_KEY}"
  jinaApiUrl: "${JINA_API_URL}"
  cohereApiKey: "${COHERE_API_KEY}"
  rerankerType: "jina" # Options: "jina", "cohere", "none"

  # General Settings
  scraperTimeout: 7500 # Timeout in milliseconds for scraper requests (default: 7500)
  safeSearch: 1 # Options: 0 (OFF), 1 (MODERATE - default), 2 (STRICT)

Provider di ricerca

searchProvider

KeyTypeDescriptionExample
searchProviderStringSpecifica quale provider di ricerca utilizzare.Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringNome della variabile d'ambiente per la chiave API di Serper. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.${SERPER_API_KEY}

Nota: Ottieni la tua chiave API da Serper.dev

searxngInstanceUrl

KeyTypeDescriptionExample
searxngInstanceUrlStringNome della variabile d'ambiente per l'URL dell'istanza SearXNG. Se non impostato nel file .env, agli utenti verrà richiesto di fornirlo tramite l'interfaccia utente.${SEARXNG_INSTANCE_URL}

searxngApiKey

KeyTypeDescriptionExample
searxngApiKeyStringNome della variabile d'ambiente per la chiave API di SearXNG. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.${SEARXNG_API_KEY}

Nota: Questo è facoltativo e necessario solo se la tua istanza SearXNG richiede l'autenticazione.

tavilyApiKey

KeyTypeDescriptionExample
tavilyApiKeyStringNome della variabile d'ambiente per la chiave API di Tavily. Utilizzata sia per la ricerca che per lo scraper. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.${TAVILY_API_KEY}

Nota: Ottieni la tua chiave API da Tavily

tavilySearchUrl

KeyTypeDescriptionExample
tavilySearchUrlStringNome della variabile d'ambiente per un URL personalizzato dell'API di Tavily Search. Opzionale; se non impostato, viene utilizzata la ricerca ospitata da Tavily.${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringNome della variabile d'ambiente per un URL personalizzato dell'API Tavily Extract. Opzionale; se non impostato, viene utilizzato l'extract ospitato da Tavily.${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectOpzioni di configurazione per la ricerca Tavily.

Sottochiavi:

KeyTypeDescriptionExample
searchDepthStringControlla il compromesso tra rilevanza e latenza. "basic" restituisce un riepilogo NLP per URL. "advanced" restituisce molteplici snippet semanticamente rilevanti per URL (2 crediti API). "fast" bilancia velocità e rilevanza con snippet. "ultra-fast" minimizza la latenza con un riepilogo NLP.Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic"
maxResultsNumberIl numero massimo di risultati di ricerca da restituire.Range: 1-20. Default: 5
topicStringLa categoria della ricerca. "news" è utile per aggiornamenti in tempo reale. "finance" per dati finanziari.Options: "general", "news", "finance". Default: "general"
includeImagesBooleanIncludi immagini nella risposta. Restituisce sia le immagini della query di primo livello che le immagini per singolo risultato.Default: false
includeAnswerBoolean or StringIncludi una risposta generata da un LLM. "basic" o true per una risposta rapida, "advanced" per una risposta dettagliata.Default: false
includeRawContentBoolean or StringIncludi contenuto HTML pulito e analizzato. "markdown" o true per il formato markdown, "text" per testo semplice.Default: false
includeDomainsArray of StringsLimita la ricerca a domini specifici. Massimo 300 domini.
excludeDomainsArray of StringsEscludi domini specifici dai risultati. Massimo 150 domini.
timeRangeStringFiltro intervallo temporale basato sulla data di pubblicazione o di ultimo aggiornamento.Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanQuando includeImages è true, aggiungi anche un testo descrittivo per ogni immagine.Default: false
includeFaviconBooleanIncludi l'URL della favicon per ogni risultato di ricerca.Default: false
chunksPerSourceNumberNumero massimo di chunk di contenuto rilevanti per fonte. Disponibile solo quando searchDepth è impostato su "advanced".Range: 1-3. Default: 3
safeSearchBooleanOverride opzionale safe_search di Tavily per le richieste di ricerca Tavily. Omesso per impostazione predefinita; true potrebbe richiedere Tavily Enterprise.Default: omitted
timeoutNumberTimeout della richiesta HTTP lato client in millisecondi. Controlla quanto tempo attendere la risposta dell'API Tavily prima di rinunciare.Default: 15000

Scrapers

firecrawlApiKey

KeyTypeDescriptionExample
firecrawlApiKeyStringNome della variabile d'ambiente per la chiave API di Firecrawl. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.${FIRECRAWL_API_KEY}

Nota: Ottieni la tua chiave API da Firecrawl.dev

firecrawlApiUrl

KeyTypeDescriptionExample
firecrawlApiUrlStringNome della variabile d'ambiente per l'URL dell'API Firecrawl. Se non impostato nel file .env, agli utenti verrà richiesto di fornirlo tramite l'interfaccia utente.${FIRECRAWL_API_URL}

Nota: Questo è facoltativo e necessario solo se si utilizza un'istanza personalizzata di Firecrawl.

firecrawlVersion

KeyTypeDescriptionExample
firecrawlVersionStringNome della variabile d'ambiente per la versione dell'API Firecrawl (v0 o v1).${FIRECRAWL_VERSION}

scraperProvider

KeyTypeDescriptionExample
scraperProviderStringSpecifica quale servizio di scraper utilizzare.Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectOpzioni di configurazione avanzate per lo scraper Firecrawl.

Sottochiavi:

formats

KeyTypeDescriptionExample
formatsArray of StringsFormati da includere nell'output.

includeTags

KeyTypeDescriptionExample
includeTagsArray of StringsTag da includere nell'output.

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of StringsTag da escludere dall'output.

headers

KeyTypeDescriptionExample
headersObjectIntestazioni da inviare con la richiesta. Possono essere utilizzate per inviare cookie, user-agent, ecc.

waitFor

KeyTypeDescriptionExample
waitForNumberSpecifica un ritardo in millisecondi prima di recuperare il contenuto, consentendo alla pagina tempo sufficiente per il caricamento.

timeout

KeyTypeDescriptionExample
timeoutIntegerTimeout in millisecondi per la richiesta di scraping. Deve essere un numero intero non negativo.Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberRestituisce una versione memorizzata nella cache della pagina se è più recente di questa età in millisecondi. Se una versione memorizzata nella cache della pagina è più vecchia di questo valore, la pagina verrà sottoposta a scraping.

Nota: Se non hai bisogno di dati estremamente aggiornati, abilitare questa opzione può velocizzare i tuoi scrape del 500%.

mobile

KeyTypeDescriptionExample
mobileBooleanEmula lo scraping da un dispositivo mobile.

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanSalta la verifica del certificato TLS durante l'esecuzione delle richieste.

blockAds

KeyTypeDescriptionExample
blockAdsBooleanAbilita il blocco degli annunci e dei popup dei cookie.

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBooleanRimuove tutte le immagini in base 64 dall'output, che potrebbero essere eccessivamente lunghe. Il testo alternativo dell'immagine rimane nell'output, ma l'URL viene sostituito con un segnaposto.

parsePDF

KeyTypeDescriptionExample
parsePDFBooleanControlla come vengono elaborati i file PDF durante lo scraping.

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleanSe impostato su true, la pagina verrà archiviata nell'indice e nella cache di Firecrawl. Impostarlo su false è utile se la tua attività di scraping potrebbe sollevare problemi di protezione dei dati. L'utilizzo di alcuni parametri associati allo scraping sensibile (headers) forzerà questo parametro su false.

zeroDataRetention

KeyTypeDescriptionExample
zeroDataRetentionBooleanSe impostato su true, verrà abilitata la conservazione zero dei dati per questo scrape (richiede una configurazione preliminare su Firecrawl).

location

KeyTypeDescriptionExample
locationObjectPosizione geografica e impostazioni della lingua per lo scraping.

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanRestituisci solo il contenuto principale della pagina, escludendo intestazioni, barre di navigazione, piè di pagina, ecc.

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectConfigurazione per il tracciamento delle modifiche nei contenuti estratti.

Esempio:

webSearch:
  firecrawlApiKey: "${FIRECRAWL_API_KEY}"
  firecrawlOptions:
    formats: ["markdown", "rawHtml"]
    includeTags: ["main", "article", ".content"]
    excludeTags: ["nav", "footer", ".ads"]
    waitFor: 2000
    timeout: 10000
    mobile: false
    blockAds: true
    onlyMainContent: true
    location:
      country: "US"
      languages: ["en"]

Nota: Per informazioni dettagliate sulle opzioni e sui valori predefiniti dello scraper Firecrawl, consulta la Firecrawl API Documentation.

tavilyScraperOptions

KeyTypeDescriptionExample
tavilyScraperOptionsObjectOpzioni di configurazione per Tavily Extract (scraper).

Sottochiavi:

KeyTypeDescriptionExample
extractDepthStringLa profondità del processo di estrazione. "advanced" recupera più dati, incluse tabelle e contenuti incorporati, con un tasso di successo maggiore, ma può aumentare la latenza. "basic" costa 1 credito ogni 5 URL riusciti, "advanced" costa 2 crediti ogni 5 URL riusciti.Options: "basic", "advanced". Default: "basic"
includeImagesBooleanIncludi un elenco di immagini estratte dagli URL nella risposta.Default: false
includeFaviconBooleanIncludi l'URL della favicon per ogni risultato estratto.Default: false
formatStringIl formato del contenuto della pagina web estratto. "markdown" restituisce il contenuto in formato markdown. "text" restituisce testo semplice e potrebbe aumentare la latenza.Options: "markdown", "text". Default: "markdown"
timeoutNumberTimeout in millisecondi. Controlla il timeout HTTP lato client. Quando impostato, invia anche a Tavily un timeout di estrazione lato server convertito in secondi e limitato a 1-60s.Default: 15000 for basic, 30000 for advanced

Esempio:

webSearch:
  searchProvider: tavily
  scraperProvider: tavily
  tavilyApiKey: "${TAVILY_API_KEY}"
  # Optional: custom Tavily-compatible endpoints
  # tavilySearchUrl: "${TAVILY_SEARCH_URL}"
  # tavilyExtractUrl: "${TAVILY_EXTRACT_URL}"
  tavilySearchOptions:
    searchDepth: basic
    maxResults: 5
    topic: general
  tavilyScraperOptions:
    extractDepth: basic

Nota: Per informazioni dettagliate sulle opzioni dell'API Tavily, consulta la Tavily API Documentation.

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringNome della variabile d'ambiente per la chiave API di Jina. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.${JINA_API_KEY}

Nota: Ottieni la tua chiave API da Jina.ai

jinaApiUrl

KeyTypeDescriptionExample
jinaApiUrlStringNome della variabile d'ambiente per l'URL dell'API Jina. Se non impostato nel file .env, agli utenti verrà richiesto di fornirlo tramite l'interfaccia utente.${JINA_API_URL}

Nota: Questo è facoltativo e necessario solo se si utilizza un'istanza Jina personalizzata.

cohereApiKey

KeyTypeDescriptionExample
cohereApiKeyStringNome della variabile d'ambiente per la chiave API di Cohere. Se non impostata nel file .env, agli utenti verrà richiesto di fornirla tramite l'interfaccia utente.${COHERE_API_KEY}

Nota: Ottieni la tua chiave API dalla Dashboard di Cohere

rerankerType

KeyTypeDescriptionExample
rerankerTypeStringSpecifica quale servizio di reranker utilizzare. Impostare su "none" per saltare il reranking.Options: "jina", "cohere", "none"

Impostazioni generali

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerTimeout in millisecondi per le richieste dello scraper. Deve essere un numero intero non negativo.Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberLivello di filtro della ricerca sicura. 0 = OFF (nessun filtro), 1 = MODERATE (predefinito), 2 = STRICT (filtro massimo).Default: 1 (MODERATE)

Nota: I livelli di ricerca sicura (safe search) si allineano alle convenzioni standard delle API di ricerca. Il filtro MODERATE è abilitato per impostazione predefinita per fornire un filtraggio dei contenuti ragionevole mantenendo al contempo l'efficacia della ricerca. Tavily non eredita questa impostazione globale per impostazione predefinita; utilizzare tavilySearchOptions.safeSearch solo se il proprio account Tavily supporta safe_search.

Note

  • Le API keys possono essere configurate in due modi:
    1. Imposta le variabili d'ambiente specificate nella configurazione YAML
    2. Se le variabili d'ambiente non sono impostate, agli utenti verrà richiesto di fornire le API key tramite l'interfaccia utente.
  • La configurazione supporta molteplici servizi per ogni componente (providers, scrapers, rerankers)
  • Se non viene specificato un tipo di servizio particolare, il sistema proverà tutti i servizi disponibili in quella categoria
  • Safe search fornisce tre livelli di filtro dei contenuti: OFF (0), MODERATE (1) e STRICT (2)
  • Tavily non eredita l'impostazione globale di ricerca sicura per impostazione predefinita; imposta tavilySearchOptions.safeSearch esplicitamente solo quando il tuo account Tavily supporta safe_search
  • Non inserire mai chiavi API reali nella configurazione YAML: utilizza solo i nomi delle variabili d'ambiente

Configurazione di SearXNG

SearXNG è un meta-motore di ricerca incentrato sulla privacy che puoi ospitare autonomamente. Per ulteriori informazioni, consulta la documentazione ufficiale di SearXNG.

Ecco i passaggi per configurare la tua istanza SearXNG da utilizzare con LibreChat:

Utilizzo di Docker Desktop

  1. Cerca l'immagine ufficiale di SearXNG

    • Apri Docker Desktop
    • Cerca searxng/searxng nella scheda Images
    • Fai clic su Run sull'immagine ufficiale per scaricare ed eseguire automaticamente un container dell'immagine
  2. Esecuzione del container

    • Espandi il menu a tendina Optional Settings nel pannello successivo che appare una volta completato il download.
    • Imposta i dettagli di configurazione desiderati (numero di porta, nome del container, ecc.)
    • Fai clic su Run per avviare il container
  3. Configurare SearXNG per LibreChat

    • Vai alla scheda Files in Docker Desktop
    • Vai a /etc/searxng/settings.yaml
    • Apri l'editor di file
    • Passa alla sezione formats
    • Aggiungi json come formato accettabile in modo che LibreChat possa comunicare con la tua istanza
    • Salva il file
  4. Riavvia il container

    • Riavvia il container affinché le modifiche abbiano effetto

Guida video:

Ecco un video per guidarti attraverso il processo dall'inizio alla fine in circa un minuto:

Guida alla configurazione di SearXNG con Docker

Nota: In questo esempio, l'URL dell'istanza è http://localhost:55011 (il numero di porta si trova sotto il nome del container in alto a sinistra alla fine del video)

Configurazione di LibreChat per utilizzare SearXNG

Puoi configurare SearXNG in LibreChat dall'interfaccia utente o tramite librechat.yaml.

Configurazione dell'interfaccia utente

  1. Apri il menu a discesa degli strumenti nella barra di input della chat Pulsante di configurazione degli strumenti

  2. Fai clic sull'icona dell'ingranaggio accanto a Web Search Sezione di configurazione degli strumenti

  3. Seleziona SearXNG dal menu a tendina Search Provider SearXNG dropdown selection

  4. Inserisci i dettagli della tua configurazione (ad es. URL dell'istanza, tipo di scraper, ecc.) e fai clic su salva Salva configurazione ricerca web

  5. Fai clic sull'opzione Web Search nel menu a discesa degli strumenti Badge di Web search nell'interfaccia di chat

  6. Il badge di Web Search dovrebbe ora essere abilitato, il che significa che le tue query possono ora utilizzare la funzionalità di ricerca web Web search badge confirmation

Com’è questa guida?