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 :
- Fournisseurs de recherche : Services qui effectuent la recherche web initiale
- Scrapers : Services qui extraient du contenu Ă partir de pages web
- Rerankers : Services qui réordonnent les résultats de recherche pour une meilleure pertinence
Exemple
Fournisseurs de recherche
searchProvider
| Key | Type | Description | Example |
|---|---|---|---|
| searchProvider | String | Spécifie quel fournisseur de recherche utiliser. | Options: "serper", "searxng", "tavily" |
serperApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| searxngInstanceUrl | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| searxngApiKey | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyApiKey | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchUrl | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyExtractUrl | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchOptions | Object | Options de configuration pour la recherche Tavily. |
Sous-clés :
| Key | Type | Description | Example |
|---|---|---|---|
| searchDepth | String | ContrÎ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" |
| maxResults | Number | Le nombre maximal de résultats de recherche à retourner. | Range: 1-20. Default: 5 |
| topic | String | La 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" |
| includeImages | Boolean | Inclure 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 |
| includeAnswer | Boolean or String | Inclure 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 |
| includeRawContent | Boolean or String | Inclure le contenu HTML nettoyé et analysé. "markdown" ou true pour le format markdown, "text" pour le texte brut. | Default: false |
| includeDomains | Array of Strings | Restreindre la recherche à des domaines spécifiques. Maximum 300 domaines. | |
| excludeDomains | Array of Strings | Exclure des domaines spécifiques des résultats. Maximum 150 domaines. | |
| timeRange | String | Filtre de plage temporelle basé sur la date de publication ou de derniÚre mise à jour. | Options: "day", "week", "month", "year" |
| includeImageDescriptions | Boolean | Lorsque includeImages est défini sur true, ajoutez également un texte descriptif pour chaque image. | Default: false |
| includeFavicon | Boolean | Inclure l'URL du favicon pour chaque résultat de recherche. | Default: false |
| chunksPerSource | Number | Nombre maximal de segments de contenu pertinents par source. Uniquement disponible lorsque searchDepth est défini sur "advanced". | Range: 1-3. Default: 3 |
| safeSearch | Boolean | Remplacement optionnel de safe_search pour les requĂȘtes de recherche Tavily. Omis par dĂ©faut ; true peut nĂ©cessiter Tavily Enterprise. | Default: omitted |
| timeout | Number | DĂ©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
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiKey | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiUrl | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlVersion | String | Nom de la variable d'environnement pour la version de l'API Firecrawl (v0 ou v1). | ${FIRECRAWL_VERSION} |
scraperProviderider
| Key | Type | Description | Example |
|---|---|---|---|
| scraperProvider | String | Spécifie quel service de scraping utiliser. | Options: "firecrawl", "serper", "tavily" |
firecrawlOptions
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlOptions | Object | Options de configuration avancées pour le scraper Firecrawl. |
Sous-clés :
formats
| Key | Type | Description | Example |
|---|---|---|---|
| formats | Array of Strings | Formats Ă inclure dans la sortie. |
includeTags
| Key | Type | Description | Example |
|---|---|---|---|
| includeTags | Array of Strings | Tags Ă inclure dans la sortie. |
excludeTags
| Key | Type | Description | Example |
|---|---|---|---|
| excludeTags | Array of Strings | Balises Ă exclure de la sortie. |
headers
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object | En-tĂȘtes Ă envoyer avec la requĂȘte. Peuvent ĂȘtre utilisĂ©s pour envoyer des cookies, un user-agent, etc. |
waitFor
| Key | Type | Description | Example |
|---|---|---|---|
| waitFor | Number | Spécifiez un délai en millisecondes avant de récupérer le contenu, permettant à la page suffisamment de temps pour se charger. |
timeout
| Key | Type | Description | Example |
|---|---|---|---|
| timeout | Integer | DĂ©lai d'attente en millisecondes pour la requĂȘte de scraping. Doit ĂȘtre un entier non nĂ©gatif. | Default: 7500 |
maxAge
| Key | Type | Description | Example |
|---|---|---|---|
| maxAge | Number | Renvoie 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
| Key | Type | Description | Example |
|---|---|---|---|
| mobile | Boolean | Ămuler le scraping depuis un appareil mobile. |
skipTlsVerification
| Key | Type | Description | Example |
|---|---|---|---|
| skipTlsVerification | Boolean | Ignorer la vĂ©rification du certificat TLS lors de l'envoi des requĂȘtes. |
blockAds
| Key | Type | Description | Example |
|---|---|---|---|
| blockAds | Boolean | Active le blocage des publicitĂ©s et des fenĂȘtres contextuelles de cookies. |
removeBase64Images
| Key | Type | Description | Example |
|---|---|---|---|
| removeBase64Images | Boolean | Supprime 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
| Key | Type | Description | Example |
|---|---|---|---|
| parsePDF | Boolean | ContrÎle la maniÚre dont les fichiers PDF sont traités lors du scraping. |
storeInCache
| Key | Type | Description | Example |
|---|---|---|---|
| storeInCache | Boolean | Si 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
| Key | Type | Description | Example |
|---|---|---|---|
| zeroDataRetention | Boolean | Si 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
| Key | Type | Description | Example |
|---|---|---|---|
| location | Object | ParamÚtres de localisation géographique et de langue pour le scraping. |
onlyMainContent
| Key | Type | Description | Example |
|---|---|---|---|
| onlyMainContent | Boolean | Ne renvoyez que le contenu principal de la page, Ă l'exclusion des en-tĂȘtes, des barres de navigation, des pieds de page, etc. |
changeTrackingOptions
| Key | Type | Description | Example |
|---|---|---|---|
| changeTrackingOptions | Object | Configuration pour le suivi des modifications dans le contenu récupéré. |
Exemple :
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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyScraperOptions | Object | Options de configuration pour Tavily Extract (scraper). |
Sous-clés :
| Key | Type | Description | Example |
|---|---|---|---|
| extractDepth | String | La 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" |
| includeImages | Boolean | Inclure une liste d'images extraites des URLs dans la réponse. | Default: false |
| includeFavicon | Boolean | Inclure l'URL du favicon pour chaque résultat extrait. | Default: false |
| format | String | Le 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" |
| timeout | Number | Dé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 :
Remarque : Pour des informations détaillées sur les options de l'API Tavily, consultez la Tavily API Documentation.
Rerankers
jinaApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiKey | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiUrl | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| cohereApiKey | String | Nom 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
| Key | Type | Description | Example |
|---|---|---|---|
| rerankerType | String | Spécifie quel service de reranker utiliser. Définissez sur "none" pour ignorer le reranking. | Options: "jina", "cohere", "none" |
ParamÚtres généraux
scraperTimeout
| Key | Type | Description | Example |
|---|---|---|---|
| scraperTimeout | Integer | DĂ©lai d'attente en millisecondes pour les requĂȘtes du scraper. Doit ĂȘtre un entier non nĂ©gatif. | Default: 7500 |
safeSearch
| Key | Type | Description | Example |
|---|---|---|---|
| safeSearch | Number | Niveau 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 :
- Définissez les variables d'environnement spécifiées dans la configuration YAML
- 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.safeSearchexplicitement uniquement lorsque votre compte Tavily prend en chargesafe_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
-
Rechercher l'image officielle de SearXNG
- Ouvrez Docker Desktop
- Recherchez
searxng/searxngdans l'onglet Images - Cliquez sur Run sur l'image officielle pour automatiquement télécharger et exécuter un conteneur de l'image
-
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
-
Configurer SearXNG pour LibreChat
- Accédez à l'onglet
Filesdans Docker Desktop - Allez dans
/etc/searxng/settings.yaml - Ouvrir l'éditeur de fichiers
- Accédez à la section
formats - Ajoutez
jsoncomme format acceptable afin que LibreChat puisse communiquer avec votre instance - Enregistrez le fichier
- Accédez à l'onglet
-
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 :
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
-
Ouvrez le menu déroulant des outils dans la barre de saisie du chat

-
Cliquez sur l'icÎne d'engrenage à cÎté de Web Search

-
Sélectionnez SearXNG dans le menu déroulant Search Provider

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

-
Cliquez sur l'option Web Search dans le menu déroulant des outils

-
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

Que pensez-vous de ce guide ?