Configuratie van webzoekopdrachten
De webSearch configuratie stelt je in staat om de webzoekfunctionaliteit binnen LibreChat aan te passen, inclusief zoekproviders, content scrapers en resultaat-rerankers.
Overzicht
De webzoekfunctie bestaat uit drie hoofdcomponenten:
- Zoekproviders: Services die de initiële zoekopdracht op het web uitvoeren
- Scrapers: Services die inhoud van webpagina's extraheren
- Rerankers: Services die zoekresultaten opnieuw rangschikken voor een betere relevantie
Voorbeeld
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)Zoekproviders
searchProvider
| Key | Type | Description | Example |
|---|---|---|---|
| searchProvider | String | Specificeert welke zoekprovider moet worden gebruikt. | Options: "serper", "searxng", "tavily" |
serperApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Omgevingsvariabele voor de Serper API-sleutel. Indien niet ingesteld in .env, wordt gebruikers gevraagd deze via de UI in te voeren. | ${SERPER_API_KEY} |
Let op: Haal je API-sleutel op via Serper.dev
searxngInstanceUrl
| Key | Type | Description | Example |
|---|---|---|---|
| searxngInstanceUrl | String | Omgevingsvariabele voor de URL van de SearXNG-instantie. Indien niet ingesteld in .env, worden gebruikers via de UI gevraagd deze op te geven. | ${SEARXNG_INSTANCE_URL} |
searxngApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| searxngApiKey | String | Omgevingsvariabele voor de SearXNG API-sleutel. Indien niet ingesteld in .env, zullen gebruikers via de UI worden gevraagd deze op te geven. | ${SEARXNG_API_KEY} |
Let op: Dit is optioneel en alleen nodig als jouw SearXNG-instantie authenticatie vereist.
tavilyApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyApiKey | String | Omgevingsvariabele voor de Tavily API-sleutel. Wordt gebruikt voor zowel zoeken als scrapen. Indien niet ingesteld in .env, wordt gebruikers gevraagd deze via de UI op te geven. | ${TAVILY_API_KEY} |
Let op: Haal je API-sleutel op bij Tavily
tavilySearchUrl
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchUrl | String | Omgevingsvariabele voor een aangepaste Tavily Search API URL. Optioneel; standaard ingesteld op de door Tavily gehoste zoekfunctie indien niet opgegeven. | ${TAVILY_SEARCH_URL} |
tavilyExtractUrl
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyExtractUrl | String | Omgevingsvariabele voor een aangepaste Tavily Extract API URL. Optioneel; standaard ingesteld op de door Tavily gehoste extractie indien niet opgegeven. | ${TAVILY_EXTRACT_URL} |
tavilySearchOptions
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchOptions | Object | Configuratieopties voor Tavily search. |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| searchDepth | String | Regelt de afweging tussen relevantie en latentie. "basic" geeft één NLP-samenvatting per URL terug. "advanced" geeft meerdere semantisch relevante fragmenten per URL terug (2 API-credits). "fast" balanceert snelheid en relevantie met fragmenten. "ultra-fast" minimaliseert latentie met één NLP-samenvatting. | Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic" |
| maxResults | Number | Het maximale aantal zoekresultaten dat moet worden geretourneerd. | Range: 1-20. Default: 5 |
| topic | String | De categorie van de zoekopdracht. "news" is nuttig voor real-time updates. "finance" voor financiële gegevens. | Options: "general", "news", "finance". Default: "general" |
| includeImages | Boolean | Voeg afbeeldingen toe aan het antwoord. Retourneert zowel afbeeldingen van de zoekopdracht op het hoogste niveau als afbeeldingen per resultaat. | Default: false |
| includeAnswer | Boolean or String | Voeg een door een LLM gegenereerd antwoord toe. "basic" of true voor een snel antwoord, "advanced" voor een gedetailleerd antwoord. | Default: false |
| includeRawContent | Boolean or String | Inclusief opgeschoonde en geparseerde HTML-inhoud. "markdown" of true voor markdown-indeling, "text" voor platte tekst. | Default: false |
| includeDomains | Array of Strings | Beperk de zoekopdracht tot specifieke domeinen. Maximaal 300 domeinen. | |
| excludeDomains | Array of Strings | Sluit specifieke domeinen uit van resultaten. Maximaal 150 domeinen. | |
| timeRange | String | Tijdsbereikfilter op basis van publicatie- of laatst bijgewerkte datum. | Options: "day", "week", "month", "year" |
| includeImageDescriptions | Boolean | Wanneer includeImages true is, voeg dan ook een beschrijvende tekst toe voor elke afbeelding. | Default: false |
| includeFavicon | Boolean | Voeg de favicon-URL toe voor elk zoekresultaat. | Default: false |
| chunksPerSource | Number | Maximaal aantal relevante inhoudsfragmenten per bron. Alleen beschikbaar wanneer searchDepth op "advanced" is ingesteld. | Range: 1-3. Default: 3 |
| safeSearch | Boolean | Optionele Tavily safe_search override voor Tavily Search-verzoeken. Standaard weggelaten; true kan Tavily Enterprise vereisen. | Default: omitted |
| timeout | Number | Client-side HTTP-verzoek-timeout in milliseconden. Bepaalt hoe lang er op een reactie van de Tavily API wordt gewacht voordat het wordt opgegeven. | Default: 15000 |
Scrapers
firecrawlApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiKey | String | Omgevingsvariabele voor de Firecrawl API-sleutel. Indien niet ingesteld in .env, wordt gebruikers gevraagd deze via de UI op te geven. | ${FIRECRAWL_API_KEY} |
Let op: Haal je API-sleutel op bij Firecrawl.dev
firecrawlApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiUrl | String | Omgevingsvariabele voor de Firecrawl API URL. Indien niet ingesteld in .env, wordt gebruikers gevraagd deze via de UI op te geven. | ${FIRECRAWL_API_URL} |
Let op: Dit is optioneel en alleen nodig als je een aangepaste Firecrawl-instantie gebruikt.
firecrawlVersion
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlVersion | String | Omgevingsvariabele voor de Firecrawl API-versie (v0 of v1). | ${FIRECRAWL_VERSION} |
scraperProvider
| Key | Type | Description | Example |
|---|---|---|---|
| scraperProvider | String | Geeft aan welke scraper-service moet worden gebruikt. | Options: "firecrawl", "serper", "tavily" |
firecrawlOptions
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlOptions | Object | Geavanceerde configuratieopties voor de Firecrawl scraper. |
Subkeys:
formats
| Key | Type | Description | Example |
|---|---|---|---|
| formats | Array of Strings | Formaten om op te nemen in de uitvoer. |
includeTags
| Key | Type | Description | Example |
|---|---|---|---|
| includeTags | Array of Strings | Tags om op te nemen in de uitvoer. |
excludeTags
| Key | Type | Description | Example |
|---|---|---|---|
| excludeTags | Array of Strings | Tags om uit te sluiten van de output. |
headers
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object | Headers die met het verzoek moeten worden meegestuurd. Kunnen worden gebruikt voor het versturen van cookies, user-agent, enz. |
waitFor
| Key | Type | Description | Example |
|---|---|---|---|
| waitFor | Number | Specificeer een vertraging in milliseconden voordat de inhoud wordt opgehaald, zodat de pagina voldoende tijd heeft om te laden. |
timeout
| Key | Type | Description | Example |
|---|---|---|---|
| timeout | Integer | Time-out in milliseconden voor het scraping-verzoek. Moet een niet-negatief geheel getal zijn. | Default: 7500 |
maxAge
| Key | Type | Description | Example |
|---|---|---|---|
| maxAge | Number | Geeft een gecachte versie van de pagina terug als deze jonger is dan deze leeftijd in milliseconden. Als een gecachte versie van de pagina ouder is dan deze waarde, wordt de pagina opnieuw gescraped. |
Let op: Als je geen extreem actuele gegevens nodig hebt, kan het inschakelen hiervan je scrapes met 500% versnellen.
mobile
| Key | Type | Description | Example |
|---|---|---|---|
| mobile | Boolean | Emuleer scraping vanaf een mobiel apparaat. |
skipTlsVerification
| Key | Type | Description | Example |
|---|---|---|---|
| skipTlsVerification | Boolean | Sla TLS-certificaatverificatie over bij het maken van verzoeken. |
blockAds
| Key | Type | Description | Example |
|---|---|---|---|
| blockAds | Boolean | Schakelt advertentieblokkering en het blokkeren van cookie-pop-ups in. |
removeBase64Images
| Key | Type | Description | Example |
|---|---|---|---|
| removeBase64Images | Boolean | Verwijdert alle base 64-afbeeldingen uit de output, die anders extreem lang kunnen zijn. De alt-tekst van de afbeelding blijft in de output staan, maar de URL wordt vervangen door een tijdelijke aanduiding. |
parsePDF
| Key | Type | Description | Example |
|---|---|---|---|
| parsePDF | Boolean | Bepaalt hoe PDF-bestanden worden verwerkt tijdens het scrapen. |
storeInCache
| Key | Type | Description | Example |
|---|---|---|---|
| storeInCache | Boolean | Indien true, wordt de pagina opgeslagen in de Firecrawl-index en cache. Dit op false zetten is nuttig als uw scraping-activiteit zorgen over gegevensbescherming met zich mee kan brengen. Het gebruik van bepaalde parameters die geassocieerd worden met gevoelige scraping (headers) zal deze parameter dwingen op false te staan. |
zeroDataRetention
| Key | Type | Description | Example |
|---|---|---|---|
| zeroDataRetention | Boolean | Indien true, zal dit zero data retention inschakelen voor deze scrape (vereist voorafgaande configuratie in Firecrawl). |
location
| Key | Type | Description | Example |
|---|---|---|---|
| location | Object | Geografische locatie en taalinstellingen voor scraping. |
onlyMainContent
| Key | Type | Description | Example |
|---|---|---|---|
| onlyMainContent | Boolean | Geef alleen de hoofdinhoud van de pagina terug, exclusief headers, navigatie, footers, enz. |
changeTrackingOptions
| Key | Type | Description | Example |
|---|---|---|---|
| changeTrackingOptions | Object | Configuratie voor het bijhouden van wijzigingen in gescrapte inhoud. |
Voorbeeld:
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"]Let op: Voor gedetailleerde informatie over de opties en standaardinstellingen van de Firecrawl-scraper, zie de Firecrawl API Documentation.
tavilyScraperOptions
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyScraperOptions | Object | Configuratieopties voor Tavily Extract (scraper). |
Subkeys:
| Key | Type | Description | Example |
|---|---|---|---|
| extractDepth | String | De diepte van het extractieproces. "advanced" haalt meer gegevens op, inclusief tabellen en ingesloten inhoud met een hoger slagingspercentage, maar kan de latentie verhogen. "basic" kost 1 credit per 5 succesvolle URL's, "advanced" kost 2 credits per 5 succesvolle URL's. | Options: "basic", "advanced". Default: "basic" |
| includeImages | Boolean | Voeg een lijst met afbeeldingen toe die uit de URL's in het antwoord zijn geëxtraheerd. | Default: false |
| includeFavicon | Boolean | Voeg de favicon-URL toe voor elk geëxtraheerd resultaat. | Default: false |
| format | String | Het formaat van de geëxtraheerde webpagina-inhoud. "markdown" retourneert inhoud in markdown-formaat. "text" retourneert platte tekst en kan de latentie verhogen. | Options: "markdown", "text". Default: "markdown" |
| timeout | Number | Time-out in milliseconden. Beheert de HTTP-time-out aan de clientzijde. Indien ingesteld, stuurt het ook een server-side extractie-time-out naar Tavily, geconverteerd naar seconden en begrensd tussen 1-60s. | Default: 15000 for basic, 30000 for advanced |
Voorbeeld:
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: basicLet op: Voor gedetailleerde informatie over Tavily API-opties, zie de Tavily API Documentation.
Rerankers
jinaApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiKey | String | Omgevingsvariabele voor de Jina API-sleutel. Indien niet ingesteld in .env, zullen gebruikers via de UI worden gevraagd deze op te geven. | ${JINA_API_KEY} |
Let op: Haal je API-sleutel op via Jina.ai
jinaApiUrl
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiUrl | String | Omgevingsvariabele voor de Jina API URL. Indien niet ingesteld in .env, wordt gebruikers gevraagd deze via de UI op te geven. | ${JINA_API_URL} |
Let op: Dit is optioneel en alleen nodig als je een aangepaste Jina-instantie gebruikt.
cohereApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| cohereApiKey | String | Omgevingsvariabele voor de Cohere API-sleutel. Indien niet ingesteld in .env, wordt gebruikers gevraagd deze via de UI in te voeren. | ${COHERE_API_KEY} |
Let op: Haal je API-sleutel op via het Cohere Dashboard
rerankerType
| Key | Type | Description | Example |
|---|---|---|---|
| rerankerType | String | Specificeert welke reranker-service moet worden gebruikt. Stel in op "none" om reranking over te slaan. | Options: "jina", "cohere", "none" |
Algemene instellingen
scraperTimeout
| Key | Type | Description | Example |
|---|---|---|---|
| scraperTimeout | Integer | Time-out in milliseconden voor scraper-verzoeken. Moet een niet-negatief geheel getal zijn. | Default: 7500 |
safeSearch
| Key | Type | Description | Example |
|---|---|---|---|
| safeSearch | Number | Veiligheidsfilteringsniveau voor zoeken. 0 = UIT (geen filtering), 1 = GEMATIGD (standaard), 2 = STRIKT (maximale filtering). | Default: 1 (MODERATE) |
Let op: Safe search-niveaus komen overeen met de standaard conventies van de search API. MODERATE filtering is standaard ingeschakeld om redelijke inhoudsfiltering te bieden met behoud van zoekeffectiviteit. Tavily neemt deze globale instelling standaard niet over; gebruik tavilySearchOptions.safeSearch alleen als uw Tavily-account safe_search ondersteunt.
Opmerkingen
- API keys kunnen op twee manieren worden geconfigureerd:
- Stel de omgevingsvariabelen in die zijn opgegeven in de YAML-configuratie
- Als omgevingsvariabelen niet zijn ingesteld, worden gebruikers gevraagd om de API-sleutels via de UI op te geven.
- De configuratie ondersteunt meerdere services voor elk onderdeel (providers, scrapers, rerankers)
- Als er geen specifiek servicetype is opgegeven, zal het systeem alle beschikbare services in die categorie proberen.
- Safe search biedt drie niveaus van inhoudsfiltering: OFF (0), MODERATE (1) en STRICT (2)
- Tavily neemt de globale instelling voor veilig zoeken niet standaard over; stel
tavilySearchOptions.safeSearchalleen expliciet in wanneer uw Tavily-accountsafe_searchondersteunt. - Plaats nooit echte API-sleutels in de YAML-configuratie - gebruik alleen omgevingsvariabelenamen
SearXNG instellen
SearXNG is een privacygerichte metazoekmachine die je zelf kunt hosten. Voor meer informatie, zie de officiële SearXNG-documentatie.
Hier zijn de stappen om je eigen SearXNG-instantie in te stellen voor gebruik met LibreChat:
Docker Desktop gebruiken
-
Zoek naar de officiële SearXNG-image
- Open Docker Desktop
- Zoek naar
searxng/searxngin het tabblad Images - Klik op Run bij de officiële image om automatisch een container van de image op te halen en uit te voeren.
-
De container uitvoeren
- Vouw het Optional Settings-keuzemenu uit in het volgende paneel dat verschijnt zodra de download is voltooid.
- Stel de gewenste configuratiegegevens in (poortnummer, containernaam, enz.)
- Klik op Run om de container te starten
-
Configureer SearXNG voor LibreChat
- Navigeer naar het
Filestabblad in Docker Desktop - Ga naar
/etc/searxng/settings.yaml - Open de bestandseditor
- Navigeer naar de
formatssectie - Voeg
jsontoe als een acceptabel formaat zodat LibreChat kan communiceren met jouw instance - Sla het bestand op
- Navigeer naar het
-
Herstart de container
- Start de container opnieuw op om de wijzigingen door te voeren
Videogids:
Hier is een video die je in ongeveer een minuut door het hele proces leidt:
Let op: In dit voorbeeld is de instance URL http://localhost:55011 (het poortnummer is te vinden onder de containernaam linksboven aan het einde van de video)
LibreChat configureren om SearXNG te gebruiken
Je kunt SearXNG in LibreChat configureren via de UI of via librechat.yaml.
UI-configuratie
-
Open het tools-dropdownmenu in de chat-invoerbalk

-
Klik op het tandwielpictogram naast Web Search

-
Selecteer SearXNG in het vervolgkeuzemenu voor zoekproviders

-
Voer uw configuratiegegevens in (bijv. instance URL, scraper type, enz.) en klik op opslaan

-
Klik op de Web Search optie in het dropdownmenu voor tools

-
De Web Search badge zou nu ingeschakeld moeten zijn, wat betekent dat je zoekopdrachten nu gebruik kunnen maken van de webzoekfunctionaliteit

Hoe is deze gids?