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

Recherche Web

La fonctionnalité de recherche web de LibreChat vous permet d'effectuer des recherches sur Internet et de récupérer des informations pertinentes pour enrichir vos conversations. Cette fonctionnalité se compose de trois éléments principaux qui fonctionnent ensemble pour fournir des résultats de recherche complets.

Démarrage rapide

Pour commencer avec la recherche web, vous devrez configurer des clĂ©s API pour un fournisseur de recherche et un scraper. Le reranking peut utiliser Jina ou Cohere, ou ĂȘtre dĂ©sactivĂ© avec rerankerType: "none". Vous pouvez le faire de deux maniĂšres :

  1. Variables d'environnement (Recommandé pour les administrateurs) :

    # 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. Interface utilisateur (Si les variables d'environnement ne sont pas définies) :

    • Les utilisateurs seront invitĂ©s Ă  saisir les clĂ©s API requises lors de leur premiĂšre utilisation de la fonctionnalitĂ© de recherche web.
    • Ils peuvent choisir quel fournisseur de recherche (Serper, SearXNG ou Tavily) et quel service de reranking utiliser (Jina, Cohere ou aucun).

Obtention des clés API

Chaque service externe activé nécessite sa propre clé API. Voici comment les obtenir :

Fournisseurs de recherche

Serper

  1. Visitez Serper.dev
  2. Créer un compte
  3. Accédez à la section API Key
  4. Copiez votre clé API
  5. Définissez-le dans vos variables d'environnement ou fournissez-le via l'interface utilisateur

SearXNG

  1. Suivez les instructions de configuration dans la documentation Web Search Configuration
  2. Définissez SEARXNG_INSTANCE_URL sur l'URL de votre instance
  3. Définissez éventuellement SEARXNG_API_KEY si votre instance nécessite une authentification

Tavily

  1. Visitez Tavily
  2. Créer un compte
  3. Copiez votre clé API
  4. Définissez TAVILY_API_KEY dans vos variables d'environnement ou fournissez-la via l'interface utilisateur
  5. Tavily peut ĂȘtre utilisĂ© Ă  la fois comme fournisseur de recherche et comme fournisseur de scraping.

Scraper : Firecrawl

  1. Visitez Firecrawl.dev
  2. Créer un compte
  3. Accédez à la section API Key
  4. Copiez votre clé API
  5. Définissez-le dans vos variables d'environnement ou fournissez-le via l'interface utilisateur
  6. (Facultatif) Si vous utilisez une instance Firecrawl personnalisée, vous devrez également définir l'URL de l'API

Rerankers

Jina

  1. Visitez Jina.ai
  2. Créer un compte
  3. Accédez au tableau de bord de l'API
  4. Copiez votre clé API
  5. Définissez-le dans vos variables d'environnement ou fournissez-le via l'interface utilisateur

Cohere

  1. Visitez le Cohere Dashboard
  2. Créer un compte
  3. Accédez à la section API Keys
  4. Copiez votre clé API
  5. Définissez-le dans vos variables d'environnement ou fournissez-le via l'interface utilisateur

Composants

1. Fournisseurs de recherche

Les fournisseurs de recherche sont responsables d'effectuer la recherche web initiale et de renvoyer les résultats pertinents.

Fournisseurs disponibles :

  • Serper : Une API de recherche Google qui fournit des rĂ©sultats de recherche de haute qualitĂ©
  • SearXNG : MĂ©ta-moteur de recherche open-source et auto-hĂ©bergĂ©
    • Auto-hĂ©bergez votre propre instance
    • RĂ©sultats de recherche axĂ©s sur la confidentialitĂ©
  • Tavily : API de recherche optimisĂ©e pour l'IA
    • Obtenez votre clĂ© API depuis Tavily
    • Prend en charge une profondeur de recherche configurable, le filtrage par sujet, le filtrage par domaine, et plus encore.
    • Peut Ă©galement servir de fournisseur de scraper

2. Scrapers

Les scrapers extraient le contenu réel des pages web renvoyées par le fournisseur de recherche.

Scrapers disponibles :

  • Firecrawl : Un service de web scraping puissant qui extrait le contenu des pages web

    • Obtenez votre clĂ© API sur Firecrawl.dev
    • L'URL de l'API est facultative (par dĂ©faut, il s'agit du service hĂ©bergĂ© de Firecrawl)
  • Tavily : Extraction d'URL par lots via l'API Tavily Extract

    • Utilise la mĂȘme TAVILY_API_KEY que le fournisseur de recherche
    • Prend en charge la profondeur d'extraction configurable, l'extraction d'images et l'extraction de favicon

Scrapers prévus :

  • Local Firecrawl : Version auto-hĂ©bergĂ©e de Firecrawl
  • Services de scraping tiers supplĂ©mentaires

3. Rerankers

Les Rerankers analysent le contenu extrait pour déterminer les parties les plus pertinentes et les réorganiser afin d'obtenir de meilleurs résultats.

Rerankers disponibles :

  • Jina : service de reranking alimentĂ© par l'IA
    • Obtenez votre clĂ© API sur Jina.ai
    • L'URL de l'API est facultative (par dĂ©faut, il s'agit du service hĂ©bergĂ© de Jina)
  • Cohere : Service de reranking avancĂ©
  • None : Ignore le reranking lorsque rerankerType est dĂ©fini sur "none"

Rerankers prévus :

  • RAG API : Reranking open-source utilisant RAG (Retrieval-Augmented Generation)
  • Services de reranking tiers supplĂ©mentaires

Configuration

Configuration administrateur

Les administrateurs peuvent configurer la fonctionnalité de recherche web à l'aide de variables d'environnement. La configuration YAML vous permet de spécifier des noms de variables d'environnement personnalisés pour chaque composant.

⚠ Important : Ne mettez jamais de clĂ©s API ou de valeurs rĂ©elles dans le fichier YAML (elles ne fonctionneront pas) - utilisez uniquement les noms des variables d'environnement.

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)

Note : La configuration YAML ne doit contenir que des noms de variables d'environnement (au format ${VARIABLE_NAME}). Cette flexibilité permet :

  • Utilisation de noms de variables diffĂ©rents dans des environnements diffĂ©rents
  • Prise en charge de plusieurs configurations pour diffĂ©rents groupes d'utilisateurs
  • IntĂ©gration future avec des configurations basĂ©es sur les rĂŽles

Si vous souhaitez restreindre le systÚme à l'utilisation de services spécifiques uniquement, vous pouvez spécifier les types de services :

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"

Configuration utilisateur

Si l'administrateur n'a pas configuré toutes les clés API nécessaires, les utilisateurs seront invités à les fournir via l'interface utilisateur. L'interface permet aux utilisateurs de :

  1. Choisissez leur reranker préféré (Jina, Cohere, ou aucun)
  2. Saisissez les clés API pour les services requis
  3. Configurez l'URL de l'API Firecrawl si nécessaire (optionnel)
  4. Configurez l'URL de l'API Jina si nécessaire (optionnel)
  5. Configurez les URLs de l'API Tavily Search ou Extract si nécessaire (optionnel)

Utilisation

Une fois configuré, vous pouvez utiliser la recherche web de deux maniÚres :

  1. Interface de chat : Cliquez sur le bouton de recherche web dans l'interface de chat pour activer la recherche web pour votre conversation
  2. Agents : Utilisez la fonctionnalité web_search dans les agents pour leur permettre d'effectuer des recherches sur le web

Notes

  • La configuration du fournisseur de recherche et du scraper est requise ; le reranking peut ĂȘtre dĂ©sactivĂ© avec rerankerType: "none"
  • L'URL de l'API Firecrawl est facultative et utilise par dĂ©faut leur service hĂ©bergĂ©.
  • L'URL de l'API Jina est facultative et utilise par dĂ©faut leur service hĂ©bergĂ©.
  • Les URLs de l'API Tavily Search and Extract sont facultatives et utilisent par dĂ©faut les services hĂ©bergĂ©s de Tavily.
  • La recherche sĂ©curisĂ©e (Safe search) propose trois niveaux de filtrage de contenu : OFF (0), MODERATE (1 - par dĂ©faut) et STRICT (2)
  • Tavily n'hĂ©rite pas du paramĂštre global safeSearch par dĂ©faut ; utilisez tavilySearchOptions.safeSearch uniquement si votre compte Tavily prend en charge safe_search.
  • Le dĂ©lai d'expiration du scraper est dĂ©fini par dĂ©faut sur 7,5 secondes (7500ms).
  • Les clĂ©s API peuvent ĂȘtre rĂ©voquĂ©es Ă  tout moment via l'interface utilisateur.
  • Les futures mises Ă  jour incluront davantage d'options open-source et auto-hĂ©bergĂ©es pour tous les composants
  • D'autres options de personnalisation sont prĂ©vues, notamment :
    • ContrĂŽle sur le nombre de liens Ă  scraper
    • Liste blanche/liste noire de domaines pour le scraping
    • RĂšgles de scraping et filtres personnalisĂ©s
    • Options avancĂ©es de filtrage et de classement des rĂ©sultats
    • ContrĂŽles de limitation de dĂ©bit et de rĂ©gulation des requĂȘtes

Que pensez-vous de ce guide ?