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

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:

  1. Zoekproviders: Services die de initiële zoekopdracht op het web uitvoeren
  2. Scrapers: Services die inhoud van webpagina's extraheren
  3. 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

KeyTypeDescriptionExample
searchProviderStringSpecificeert welke zoekprovider moet worden gebruikt.Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringOmgevingsvariabele 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

KeyTypeDescriptionExample
searxngInstanceUrlStringOmgevingsvariabele 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

KeyTypeDescriptionExample
searxngApiKeyStringOmgevingsvariabele 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

KeyTypeDescriptionExample
tavilyApiKeyStringOmgevingsvariabele 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

KeyTypeDescriptionExample
tavilySearchUrlStringOmgevingsvariabele voor een aangepaste Tavily Search API URL. Optioneel; standaard ingesteld op de door Tavily gehoste zoekfunctie indien niet opgegeven.${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringOmgevingsvariabele voor een aangepaste Tavily Extract API URL. Optioneel; standaard ingesteld op de door Tavily gehoste extractie indien niet opgegeven.${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectConfiguratieopties voor Tavily search.

Subkeys:

KeyTypeDescriptionExample
searchDepthStringRegelt 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"
maxResultsNumberHet maximale aantal zoekresultaten dat moet worden geretourneerd.Range: 1-20. Default: 5
topicStringDe categorie van de zoekopdracht. "news" is nuttig voor real-time updates. "finance" voor financiële gegevens.Options: "general", "news", "finance". Default: "general"
includeImagesBooleanVoeg afbeeldingen toe aan het antwoord. Retourneert zowel afbeeldingen van de zoekopdracht op het hoogste niveau als afbeeldingen per resultaat.Default: false
includeAnswerBoolean or StringVoeg een door een LLM gegenereerd antwoord toe. "basic" of true voor een snel antwoord, "advanced" voor een gedetailleerd antwoord.Default: false
includeRawContentBoolean or StringInclusief opgeschoonde en geparseerde HTML-inhoud. "markdown" of true voor markdown-indeling, "text" voor platte tekst.Default: false
includeDomainsArray of StringsBeperk de zoekopdracht tot specifieke domeinen. Maximaal 300 domeinen.
excludeDomainsArray of StringsSluit specifieke domeinen uit van resultaten. Maximaal 150 domeinen.
timeRangeStringTijdsbereikfilter op basis van publicatie- of laatst bijgewerkte datum.Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanWanneer includeImages true is, voeg dan ook een beschrijvende tekst toe voor elke afbeelding.Default: false
includeFaviconBooleanVoeg de favicon-URL toe voor elk zoekresultaat.Default: false
chunksPerSourceNumberMaximaal aantal relevante inhoudsfragmenten per bron. Alleen beschikbaar wanneer searchDepth op "advanced" is ingesteld.Range: 1-3. Default: 3
safeSearchBooleanOptionele Tavily safe_search override voor Tavily Search-verzoeken. Standaard weggelaten; true kan Tavily Enterprise vereisen.Default: omitted
timeoutNumberClient-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

KeyTypeDescriptionExample
firecrawlApiKeyStringOmgevingsvariabele 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

KeyTypeDescriptionExample
firecrawlApiUrlStringOmgevingsvariabele 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

KeyTypeDescriptionExample
firecrawlVersionStringOmgevingsvariabele voor de Firecrawl API-versie (v0 of v1).${FIRECRAWL_VERSION}

scraperProvider

KeyTypeDescriptionExample
scraperProviderStringGeeft aan welke scraper-service moet worden gebruikt.Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectGeavanceerde configuratieopties voor de Firecrawl scraper.

Subkeys:

formats

KeyTypeDescriptionExample
formatsArray of StringsFormaten om op te nemen in de uitvoer.

includeTags

KeyTypeDescriptionExample
includeTagsArray of StringsTags om op te nemen in de uitvoer.

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of StringsTags om uit te sluiten van de output.

headers

KeyTypeDescriptionExample
headersObjectHeaders die met het verzoek moeten worden meegestuurd. Kunnen worden gebruikt voor het versturen van cookies, user-agent, enz.

waitFor

KeyTypeDescriptionExample
waitForNumberSpecificeer een vertraging in milliseconden voordat de inhoud wordt opgehaald, zodat de pagina voldoende tijd heeft om te laden.

timeout

KeyTypeDescriptionExample
timeoutIntegerTime-out in milliseconden voor het scraping-verzoek. Moet een niet-negatief geheel getal zijn.Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberGeeft 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

KeyTypeDescriptionExample
mobileBooleanEmuleer scraping vanaf een mobiel apparaat.

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanSla TLS-certificaatverificatie over bij het maken van verzoeken.

blockAds

KeyTypeDescriptionExample
blockAdsBooleanSchakelt advertentieblokkering en het blokkeren van cookie-pop-ups in.

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBooleanVerwijdert 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

KeyTypeDescriptionExample
parsePDFBooleanBepaalt hoe PDF-bestanden worden verwerkt tijdens het scrapen.

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleanIndien 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

KeyTypeDescriptionExample
zeroDataRetentionBooleanIndien true, zal dit zero data retention inschakelen voor deze scrape (vereist voorafgaande configuratie in Firecrawl).

location

KeyTypeDescriptionExample
locationObjectGeografische locatie en taalinstellingen voor scraping.

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanGeef alleen de hoofdinhoud van de pagina terug, exclusief headers, navigatie, footers, enz.

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectConfiguratie 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

KeyTypeDescriptionExample
tavilyScraperOptionsObjectConfiguratieopties voor Tavily Extract (scraper).

Subkeys:

KeyTypeDescriptionExample
extractDepthStringDe 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"
includeImagesBooleanVoeg een lijst met afbeeldingen toe die uit de URL's in het antwoord zijn geëxtraheerd.Default: false
includeFaviconBooleanVoeg de favicon-URL toe voor elk geëxtraheerd resultaat.Default: false
formatStringHet 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"
timeoutNumberTime-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: basic

Let op: Voor gedetailleerde informatie over Tavily API-opties, zie de Tavily API Documentation.

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringOmgevingsvariabele 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

KeyTypeDescriptionExample
jinaApiUrlStringOmgevingsvariabele 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

KeyTypeDescriptionExample
cohereApiKeyStringOmgevingsvariabele 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

KeyTypeDescriptionExample
rerankerTypeStringSpecificeert welke reranker-service moet worden gebruikt. Stel in op "none" om reranking over te slaan.Options: "jina", "cohere", "none"

Algemene instellingen

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerTime-out in milliseconden voor scraper-verzoeken. Moet een niet-negatief geheel getal zijn.Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberVeiligheidsfilteringsniveau 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:
    1. Stel de omgevingsvariabelen in die zijn opgegeven in de YAML-configuratie
    2. 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.safeSearch alleen expliciet in wanneer uw Tavily-account safe_search ondersteunt.
  • 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

  1. Zoek naar de officiële SearXNG-image

    • Open Docker Desktop
    • Zoek naar searxng/searxng in 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.
  2. 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
  3. Configureer SearXNG voor LibreChat

    • Navigeer naar het Files tabblad in Docker Desktop
    • Ga naar /etc/searxng/settings.yaml
    • Open de bestandseditor
    • Navigeer naar de formats sectie
    • Voeg json toe als een acceptabel formaat zodat LibreChat kan communiceren met jouw instance
    • Sla het bestand op
  4. 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:

Stapsgewijze handleiding voor SearXNG Docker-installatie

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

  1. Open het tools-dropdownmenu in de chat-invoerbalk Tools configuration button

  2. Klik op het tandwielpictogram naast Web Search Tools configuration section

  3. Selecteer SearXNG in het vervolgkeuzemenu voor zoekproviders SearXNG vervolgkeuzemenu selectie

  4. Voer uw configuratiegegevens in (bijv. instance URL, scraper type, enz.) en klik op opslaan Save web search configuration

  5. Klik op de Web Search optie in het dropdownmenu voor tools Web search badge in chat interface

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

Hoe is deze gids?