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

Configuration de la recherche Web

La configuration webSearch vous permet de personnaliser la fonctionnalité de recherche web au sein de LibreChat, y compris les fournisseurs de recherche, les scrapers de contenu et les rerankers de résultats.

Aperçu

La fonctionnalité de recherche web se compose de trois éléments principaux :

  1. Fournisseurs de recherche : Services qui effectuent la recherche web initiale
  2. Scrapers : Services qui extraient du contenu Ă  partir de pages web
  3. Rerankers : Services qui réordonnent les résultats de recherche pour une meilleure pertinence

Exemple

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)

Fournisseurs de recherche

searchProvider

KeyTypeDescriptionExample
searchProviderStringSpécifie quel fournisseur de recherche utiliser.Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringNom de la variable d'environnement pour la clé API Serper. Si elle n'est pas définie dans .env, les utilisateurs seront invités à la fournir via l'interface utilisateur.${SERPER_API_KEY}

Note : Obtenez votre clé API sur Serper.dev

searxngInstanceUrl

KeyTypeDescriptionExample
searxngInstanceUrlStringNom de la variable d'environnement pour l'URL de l'instance SearXNG. S'il n'est pas défini dans .env, les utilisateurs seront invités à le fournir via l'interface utilisateur.${SEARXNG_INSTANCE_URL}

searxngApiKey

KeyTypeDescriptionExample
searxngApiKeyStringNom de la variable d'environnement pour la clé API SearXNG. Si elle n'est pas définie dans .env, les utilisateurs seront invités à la fournir via l'interface utilisateur.${SEARXNG_API_KEY}

Note : Ceci est facultatif et n'est nécessaire que si votre instance SearXNG nécessite une authentification.

tavilyApiKey

KeyTypeDescriptionExample
tavilyApiKeyStringNom de la variable d'environnement pour la clé API Tavily. Utilisée à la fois pour la recherche et le scraper. Si elle n'est pas définie dans .env, les utilisateurs seront invités à la fournir via l'interface utilisateur.${TAVILY_API_KEY}

Remarque : Obtenez votre clé API auprÚs de Tavily

tavilySearchUrl

KeyTypeDescriptionExample
tavilySearchUrlStringNom de la variable d'environnement pour une URL d'API Tavily Search personnalisée. Optionnel ; utilise la recherche hébergée par Tavily par défaut si non défini.${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringNom de la variable d'environnement pour une URL d'API Tavily Extract personnalisée. Optionnel ; utilise l'extracteur hébergé par Tavily par défaut si non défini.${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectOptions de configuration pour la recherche Tavily.

Sous-clés :

KeyTypeDescriptionExample
searchDepthStringContrÎle le compromis entre pertinence et latence. "basic" renvoie un résumé NLP par URL. "advanced" renvoie plusieurs extraits sémantiquement pertinents par URL (2 crédits API). "fast" équilibre vitesse et pertinence avec des extraits. "ultra-fast" minimise la latence avec un seul résumé NLP.Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic"
maxResultsNumberLe nombre maximal de résultats de recherche à retourner.Range: 1-20. Default: 5
topicStringLa catégorie de la recherche. "news" est utile pour les mises à jour en temps réel. "finance" pour les données financiÚres.Options: "general", "news", "finance". Default: "general"
includeImagesBooleanInclure des images dans la rĂ©ponse. Renvoie Ă  la fois les images de la requĂȘte de premier niveau et les images par rĂ©sultat.Default: false
includeAnswerBoolean or StringInclure une réponse générée par LLM. "basic" ou true pour une réponse rapide, "advanced" pour une réponse détaillée.Default: false
includeRawContentBoolean or StringInclure le contenu HTML nettoyé et analysé. "markdown" ou true pour le format markdown, "text" pour le texte brut.Default: false
includeDomainsArray of StringsRestreindre la recherche à des domaines spécifiques. Maximum 300 domaines.
excludeDomainsArray of StringsExclure des domaines spécifiques des résultats. Maximum 150 domaines.
timeRangeStringFiltre de plage temporelle basé sur la date de publication ou de derniÚre mise à jour.Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanLorsque includeImages est défini sur true, ajoutez également un texte descriptif pour chaque image.Default: false
includeFaviconBooleanInclure l'URL du favicon pour chaque résultat de recherche.Default: false
chunksPerSourceNumberNombre maximal de segments de contenu pertinents par source. Uniquement disponible lorsque searchDepth est défini sur "advanced".Range: 1-3. Default: 3
safeSearchBooleanRemplacement optionnel de safe_search pour les requĂȘtes de recherche Tavily. Omis par dĂ©faut ; true peut nĂ©cessiter Tavily Enterprise.Default: omitted
timeoutNumberDĂ©lai d'expiration de la requĂȘte HTTP cĂŽtĂ© client en millisecondes. ContrĂŽle la durĂ©e d'attente de la rĂ©ponse de l'API Tavily avant d'abandonner.Default: 15000

Scrapers

firecrawlApiKey

KeyTypeDescriptionExample
firecrawlApiKeyStringNom de la variable d'environnement pour la clé API Firecrawl. Si elle n'est pas définie dans .env, les utilisateurs seront invités à la fournir via l'interface utilisateur.${FIRECRAWL_API_KEY}

Remarque : Obtenez votre clé API sur Firecrawl.dev

firecrawlApiUrl

KeyTypeDescriptionExample
firecrawlApiUrlStringNom de la variable d'environnement pour l'URL de l'API Firecrawl. S'il n'est pas défini dans .env, les utilisateurs seront invités à le fournir via l'interface utilisateur.${FIRECRAWL_API_URL}

Note : Ceci est facultatif et n'est nécessaire que si vous utilisez une instance Firecrawl personnalisée.

firecrawlVersion

KeyTypeDescriptionExample
firecrawlVersionStringNom de la variable d'environnement pour la version de l'API Firecrawl (v0 ou v1).${FIRECRAWL_VERSION}

scraperProviderider

KeyTypeDescriptionExample
scraperProviderStringSpécifie quel service de scraping utiliser.Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectOptions de configuration avancées pour le scraper Firecrawl.

Sous-clés :

formats

KeyTypeDescriptionExample
formatsArray of StringsFormats Ă  inclure dans la sortie.

includeTags

KeyTypeDescriptionExample
includeTagsArray of StringsTags Ă  inclure dans la sortie.

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of StringsBalises Ă  exclure de la sortie.

headers

KeyTypeDescriptionExample
headersObjectEn-tĂȘtes Ă  envoyer avec la requĂȘte. Peuvent ĂȘtre utilisĂ©s pour envoyer des cookies, un user-agent, etc.

waitFor

KeyTypeDescriptionExample
waitForNumberSpécifiez un délai en millisecondes avant de récupérer le contenu, permettant à la page suffisamment de temps pour se charger.

timeout

KeyTypeDescriptionExample
timeoutIntegerDĂ©lai d'attente en millisecondes pour la requĂȘte de scraping. Doit ĂȘtre un entier non nĂ©gatif.Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberRenvoie une version mise en cache de la page si elle est plus récente que cet ùge en millisecondes. Si une version mise en cache de la page est plus ancienne que cette valeur, la page sera extraite.

Remarque : Si vous n'avez pas besoin de donnĂ©es extrĂȘmement rĂ©centes, l'activation de cette option peut accĂ©lĂ©rer vos extractions de 500 %.

mobile

KeyTypeDescriptionExample
mobileBooleanÉmuler le scraping depuis un appareil mobile.

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanIgnorer la vĂ©rification du certificat TLS lors de l'envoi des requĂȘtes.

blockAds

KeyTypeDescriptionExample
blockAdsBooleanActive le blocage des publicitĂ©s et des fenĂȘtres contextuelles de cookies.

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBooleanSupprime toutes les images en base 64 de la sortie, ce qui peut ĂȘtre extrĂȘmement long. Le texte alternatif de l'image reste dans la sortie, mais l'URL est remplacĂ©e par un espace rĂ©servĂ©.

parsePDF

KeyTypeDescriptionExample
parsePDFBooleanContrÎle la maniÚre dont les fichiers PDF sont traités lors du scraping.

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleanSi défini sur true, la page sera stockée dans l'index et le cache de Firecrawl. Définir cette valeur sur false est utile si votre activité de scraping peut soulever des préoccupations en matiÚre de protection des données. L'utilisation de certains paramÚtres associés au scraping sensible (headers) forcera ce paramÚtre à false.

zeroDataRetention

KeyTypeDescriptionExample
zeroDataRetentionBooleanSi défini sur true, cela activera la rétention de données nulle pour ce scrape (nécessite une configuration préalable sur Firecrawl).

location

KeyTypeDescriptionExample
locationObjectParamÚtres de localisation géographique et de langue pour le scraping.

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanNe renvoyez que le contenu principal de la page, Ă  l'exclusion des en-tĂȘtes, des barres de navigation, des pieds de page, etc.

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectConfiguration pour le suivi des modifications dans le contenu récupéré.

Exemple :

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"]

Remarque : Pour des informations détaillées sur les options et les valeurs par défaut du scraper Firecrawl, consultez la Documentation de l'API Firecrawl.

tavilyScraperOptions

KeyTypeDescriptionExample
tavilyScraperOptionsObjectOptions de configuration pour Tavily Extract (scraper).

Sous-clés :

KeyTypeDescriptionExample
extractDepthStringLa profondeur du processus d'extraction. "advanced" récupÚre davantage de données, y compris les tableaux et le contenu intégré, avec un meilleur taux de réussite, mais peut augmenter la latence. "basic" coûte 1 crédit pour 5 URL réussies, "advanced" coûte 2 crédits pour 5 URL réussies.Options: "basic", "advanced". Default: "basic"
includeImagesBooleanInclure une liste d'images extraites des URLs dans la réponse.Default: false
includeFaviconBooleanInclure l'URL du favicon pour chaque résultat extrait.Default: false
formatStringLe format du contenu de la page web extrait. "markdown" renvoie le contenu au format markdown. "text" renvoie du texte brut et peut augmenter la latence.Options: "markdown", "text". Default: "markdown"
timeoutNumberDélai d'expiration en millisecondes. ContrÎle le délai d'expiration HTTP cÎté client. Lorsqu'il est défini, il envoie également à Tavily un délai d'expiration d'extraction cÎté serveur converti en secondes et limité entre 1 et 60 s.Default: 15000 for basic, 30000 for advanced

Exemple :

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

Remarque : Pour des informations détaillées sur les options de l'API Tavily, consultez la Tavily API Documentation.

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringNom de la variable d'environnement pour la clé API Jina. Si elle n'est pas définie dans .env, les utilisateurs seront invités à la fournir via l'interface utilisateur.${JINA_API_KEY}

Note : Obtenez votre clé API sur Jina.ai

jinaApiUrl

KeyTypeDescriptionExample
jinaApiUrlStringNom de la variable d'environnement pour l'URL de l'API Jina. S'il n'est pas défini dans .env, les utilisateurs seront invités à le fournir via l'interface utilisateur.${JINA_API_URL}

Note : Ceci est facultatif et n'est nécessaire que si vous utilisez une instance Jina personnalisée.

cohereApiKey

KeyTypeDescriptionExample
cohereApiKeyStringNom de la variable d'environnement pour la clé API Cohere. Si elle n'est pas définie dans .env, les utilisateurs seront invités à la fournir via l'interface utilisateur.${COHERE_API_KEY}

Remarque : Obtenez votre clé API depuis le Cohere Dashboard

rerankerType

KeyTypeDescriptionExample
rerankerTypeStringSpécifie quel service de reranker utiliser. Définissez sur "none" pour ignorer le reranking.Options: "jina", "cohere", "none"

ParamÚtres généraux

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerDĂ©lai d'attente en millisecondes pour les requĂȘtes du scraper. Doit ĂȘtre un entier non nĂ©gatif.Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberNiveau de filtrage de la recherche sĂ©curisĂ©e. 0 = DÉSACTIVÉ (aucun filtrage), 1 = MODÉRÉ (par dĂ©faut), 2 = STRICT (filtrage maximal).Default: 1 (MODERATE)

Note : Les niveaux de recherche sécurisée (Safe search) s'alignent sur les conventions standard des API de recherche. Le filtrage MODERATE est activé par défaut pour fournir un filtrage de contenu raisonnable tout en maintenant l'efficacité de la recherche. Tavily n'hérite pas de ce paramÚtre global par défaut ; utilisez tavilySearchOptions.safeSearch uniquement si votre compte Tavily prend en charge safe_search.

Notes

  • Les clĂ©s API peuvent ĂȘtre configurĂ©es de deux maniĂšres :
    1. Définissez les variables d'environnement spécifiées dans la configuration YAML
    2. Si les variables d'environnement ne sont pas définies, les utilisateurs seront invités à fournir les clés API via l'interface utilisateur.
  • La configuration prend en charge plusieurs services pour chaque composant (providers, scrapers, rerankers)
  • Si aucun type de service spĂ©cifique n'est indiquĂ©, le systĂšme essaiera tous les services disponibles dans cette catĂ©gorie.
  • La recherche sĂ©curisĂ©e (Safe search) propose trois niveaux de filtrage de contenu : OFF (0), MODERATE (1) et STRICT (2)
  • Tavily n'hĂ©rite pas du paramĂštre global de recherche sĂ©curisĂ©e par dĂ©faut ; dĂ©finissez tavilySearchOptions.safeSearch explicitement uniquement lorsque votre compte Tavily prend en charge safe_search.
  • Ne mettez jamais de clĂ©s API rĂ©elles dans la configuration YAML - utilisez uniquement les noms des variables d'environnement

Configuration de SearXNG

SearXNG est un méta-moteur de recherche axé sur la confidentialité que vous pouvez auto-héberger. Pour plus d'informations, consultez la documentation officielle de SearXNG.

Voici les étapes pour configurer votre propre instance SearXNG à utiliser avec LibreChat :

Utilisation de Docker Desktop

  1. Rechercher l'image officielle de SearXNG

    • Ouvrez Docker Desktop
    • Recherchez searxng/searxng dans l'onglet Images
    • Cliquez sur Run sur l'image officielle pour automatiquement tĂ©lĂ©charger et exĂ©cuter un conteneur de l'image
  2. Exécution du conteneur

    • DĂ©veloppez le menu dĂ©roulant Optional Settings dans le panneau qui apparaĂźt une fois le tĂ©lĂ©chargement terminĂ©.
    • DĂ©finissez les dĂ©tails de configuration souhaitĂ©s (numĂ©ro de port, nom du conteneur, etc.)
    • Cliquez sur Run pour dĂ©marrer le conteneur
  3. Configurer SearXNG pour LibreChat

    • AccĂ©dez Ă  l'onglet Files dans Docker Desktop
    • Allez dans /etc/searxng/settings.yaml
    • Ouvrir l'Ă©diteur de fichiers
    • AccĂ©dez Ă  la section formats
    • Ajoutez json comme format acceptable afin que LibreChat puisse communiquer avec votre instance
    • Enregistrez le fichier
  4. Redémarrer le conteneur

    • RedĂ©marrez le conteneur pour que les modifications prennent effet

Guide vidéo :

Voici une vidéo pour vous guider tout au long du processus, du début à la fin, en environ une minute :

Guide de configuration de SearXNG avec Docker

Remarque : Dans cet exemple, l'URL de l'instance est http://localhost:55011 (le numéro de port se trouve sous le nom du conteneur en haut à gauche à la fin de la vidéo)

Configuration de LibreChat pour utiliser SearXNG

Vous pouvez configurer SearXNG dans LibreChat via l'interface utilisateur ou par le biais de librechat.yaml.

Configuration de l'UI

  1. Ouvrez le menu déroulant des outils dans la barre de saisie du chat Bouton de configuration des outils

  2. Cliquez sur l'icÎne d'engrenage à cÎté de Web Search Tools configuration section

  3. Sélectionnez SearXNG dans le menu déroulant Search Provider SearXNG dropdown selection

  4. Saisissez vos détails de configuration (par ex. URL de l'instance, type de scraper, etc.) et cliquez sur enregistrer Enregistrer la configuration de la recherche web

  5. Cliquez sur l'option Web Search dans le menu déroulant des outils Web search badge in chat interface

  6. Le badge Web Search devrait maintenant ĂȘtre activĂ©, ce qui signifie que vos requĂȘtes peuvent dĂ©sormais utiliser la fonctionnalitĂ© de recherche sur le Web Web search badge confirmation

Que pensez-vous de ce guide ?