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

Konfiguration der Websuche

Die webSearch-Konfiguration ermöglicht es Ihnen, die Websuchfunktion innerhalb von LibreChat anzupassen, einschließlich Suchanbietern, Content-Scrapern und Ergebnis-Rerankern.

Übersicht

Die Websuchfunktion besteht aus drei Hauptkomponenten:

  1. Suchanbieter: Dienste, die die anfängliche Websuche durchführen
  2. Scrapers: Dienste, die Inhalte von Webseiten extrahieren
  3. Rerankers: Dienste, die Suchergebnisse für eine bessere Relevanz neu sortieren

Beispiel

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)

Suchanbieter

searchProvider

KeyTypeDescriptionExample
searchProviderStringGibt an, welcher Suchanbieter verwendet werden soll.Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringUmgebungsvariablenname für den Serper API-Schlüssel. Falls dieser nicht in der .env gesetzt ist, werden Benutzer aufgefordert, ihn über die UI einzugeben.${SERPER_API_KEY}

Hinweis: Holen Sie sich Ihren API-Schlüssel von Serper.dev

searxngInstanceUrl

KeyTypeDescriptionExample
searxngInstanceUrlStringUmgebungsvariablenname für die SearXNG-Instanz-URL. Wenn dieser nicht in der .env gesetzt ist, werden Benutzer aufgefordert, ihn über die UI anzugeben.${SEARXNG_INSTANCE_URL}

searxngApiKey

KeyTypeDescriptionExample
searxngApiKeyStringUmgebungsvariablenname für den SearXNG API-Schlüssel. Falls nicht in der .env gesetzt, werden Benutzer aufgefordert, diesen über die UI einzugeben.${SEARXNG_API_KEY}

Hinweis: Dies ist optional und nur erforderlich, wenn Ihre SearXNG-Instanz eine Authentifizierung erfordert.

tavilyApiKey

KeyTypeDescriptionExample
tavilyApiKeyStringUmgebungsvariablenname für den Tavily API-Schlüssel. Wird sowohl für die Suche als auch für den Scraper verwendet. Falls nicht in der .env gesetzt, werden Benutzer aufgefordert, diesen über die UI einzugeben.${TAVILY_API_KEY}

Hinweis: Holen Sie sich Ihren API-Schlüssel von Tavily

tavilySearchUrl

KeyTypeDescriptionExample
tavilySearchUrlStringUmgebungsvariablenname für eine benutzerdefinierte Tavily Search API-URL. Optional; standardmäßig wird die von Tavily gehostete Suche verwendet, wenn keine Angabe erfolgt.${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringUmgebungsvariablenname für eine benutzerdefinierte Tavily Extract API-URL. Optional; standardmäßig wird das von Tavily gehostete Extract verwendet, wenn keine Angabe erfolgt.${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectKonfigurationsoptionen für die Tavily-Suche.

Untergeordnete Schlüssel:

KeyTypeDescriptionExample
searchDepthStringSteuert das Verhältnis zwischen Relevanz und Latenz. "basic" gibt eine NLP-Zusammenfassung pro URL zurück. "advanced" gibt mehrere semantisch relevante Snippets pro URL zurück (2 API-Credits). "fast" gleicht Geschwindigkeit und Relevanz mit Snippets aus. "ultra-fast" minimiert die Latenz mit einer NLP-Zusammenfassung.Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic"
maxResultsNumberDie maximale Anzahl der zurückzugebenden Suchergebnisse.Range: 1-20. Default: 5
topicStringDie Kategorie der Suche. "news" ist nützlich für Echtzeit-Updates. "finance" für Finanzdaten.Options: "general", "news", "finance". Default: "general"
includeImagesBooleanBilder in die Antwort einbeziehen. Gibt sowohl Bilder der obersten Abfrage als auch Bilder pro Ergebnis zurück.Default: false
includeAnswerBoolean or StringFüge eine LLM-generierte Antwort hinzu. "basic" oder true für eine schnelle Antwort, "advanced" für eine detaillierte Antwort.Default: false
includeRawContentBoolean or StringInklusive bereinigtem und geparstem HTML-Inhalt. „markdown“ oder true für das Markdown-Format, „text“ für reinen Text.Default: false
includeDomainsArray of StringsSuche auf bestimmte Domains beschränken. Maximal 300 Domains.
excludeDomainsArray of StringsBestimmte Domains von den Ergebnissen ausschließen. Maximal 150 Domains.
timeRangeStringZeitbereichsfilter basierend auf dem Veröffentlichungs- oder letzten Aktualisierungsdatum.Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanWenn includeImages auf true gesetzt ist, fügen Sie zusätzlich einen beschreibenden Text für jedes Bild hinzu.Default: false
includeFaviconBooleanFüge die Favicon-URL für jedes Suchergebnis hinzu.Default: false
chunksPerSourceNumberMaximale Anzahl relevanter Inhaltsabschnitte pro Quelle. Nur verfügbar, wenn searchDepth auf "advanced" gesetzt ist.Range: 1-3. Default: 3
safeSearchBooleanOptionale Tavily safe_search-Überschreibung für Tavily Search-Anfragen. Standardmäßig weggelassen; true erfordert möglicherweise Tavily Enterprise.Default: omitted
timeoutNumberClientseitiges HTTP-Anfrage-Timeout in Millisekunden. Steuert, wie lange auf eine Antwort der Tavily API gewartet wird, bevor der Vorgang abgebrochen wird.Default: 15000

Scraper

firecrawlApiKey

KeyTypeDescriptionExample
firecrawlApiKeyStringUmgebungsvariablenname für den Firecrawl API-Schlüssel. Wenn dieser nicht in der .env gesetzt ist, werden Benutzer aufgefordert, ihn über die UI einzugeben.${FIRECRAWL_API_KEY}

Hinweis: Holen Sie sich Ihren API-Schlüssel von Firecrawl.dev

firecrawlApiUrl

KeyTypeDescriptionExample
firecrawlApiUrlStringUmgebungsvariablenname für die Firecrawl API-URL. Wenn dieser nicht in der .env gesetzt ist, werden Benutzer aufgefordert, ihn über die UI anzugeben.${FIRECRAWL_API_URL}

Hinweis: Dies ist optional und nur erforderlich, wenn Sie eine benutzerdefinierte Firecrawl-Instanz verwenden.

firecrawlVersion

KeyTypeDescriptionExample
firecrawlVersionStringUmgebungsvariablenname für die Firecrawl API-Version (v0 oder v1).${FIRECRAWL_VERSION}

scraperProvider

KeyTypeDescriptionExample
scraperProviderStringGibt an, welcher Scraper-Dienst verwendet werden soll.Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectErweiterte Konfigurationsoptionen für den Firecrawl-Scraper.

Untergeordnete Schlüssel:

formats

KeyTypeDescriptionExample
formatsArray of StringsFormate, die in die Ausgabe aufgenommen werden sollen.

includeTags

KeyTypeDescriptionExample
includeTagsArray of StringsTags, die in die Ausgabe aufgenommen werden sollen.

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of StringsTags, die von der Ausgabe ausgeschlossen werden sollen.

headers

KeyTypeDescriptionExample
headersObjectHeader, die mit der Anfrage gesendet werden sollen. Können verwendet werden, um Cookies, User-Agent usw. zu senden.

waitFor

KeyTypeDescriptionExample
waitForNumberGeben Sie eine Verzögerung in Millisekunden an, bevor der Inhalt abgerufen wird, damit die Seite ausreichend Zeit zum Laden hat.

timeout

KeyTypeDescriptionExample
timeoutIntegerTimeout in Millisekunden für die Scraping-Anfrage. Muss eine nicht-negative Ganzzahl sein.Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberGibt eine zwischengespeicherte Version der Seite zurück, wenn diese jünger als dieser Wert in Millisekunden ist. Wenn eine zwischengespeicherte Version der Seite älter als dieser Wert ist, wird die Seite neu abgerufen.

Hinweis: Wenn Sie keine extrem aktuellen Daten benötigen, kann die Aktivierung dieser Option Ihre Scrapes um 500 % beschleunigen.

mobile

KeyTypeDescriptionExample
mobileBooleanEmulieren des Scrapings von einem Mobilgerät.

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanÜberspringen der TLS-Zertifikatsüberprüfung bei Anfragen.

blockAds

KeyTypeDescriptionExample
blockAdsBooleanAktiviert Werbeblocker und das Blockieren von Cookie-Popups.

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBooleanEntfernt alle Base64-Bilder aus der Ausgabe, die extrem lang sein können. Der Alt-Text des Bildes bleibt in der Ausgabe erhalten, aber die URL wird durch einen Platzhalter ersetzt.

parsePDF

KeyTypeDescriptionExample
parsePDFBooleanSteuert, wie PDF-Dateien während des Scrapings verarbeitet werden.

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleanWenn auf true gesetzt, wird die Seite im Firecrawl-Index und Cache gespeichert. Dies auf false zu setzen ist nützlich, wenn Ihre Scraping-Aktivitäten Datenschutzbedenken aufwerfen könnten. Die Verwendung einiger Parameter, die mit sensiblem Scraping verbunden sind (Header), erzwingt, dass dieser Parameter auf false gesetzt wird.

zeroDataRetention

KeyTypeDescriptionExample
zeroDataRetentionBooleanWenn auf true gesetzt, wird die Null-Datenaufbewahrung für diesen Scrape aktiviert (erfordert eine vorherige Einrichtung bei Firecrawl).

location

KeyTypeDescriptionExample
locationObjectGeografischer Standort und Spracheinstellungen für das Scraping.

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanGeben Sie nur den Hauptinhalt der Seite zurück, ohne Header, Navigation, Footer usw.

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectKonfiguration zur Nachverfolgung von Änderungen in gescrapten Inhalten.

Beispiel:

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

Hinweis: Detaillierte Informationen zu den Optionen und Standardeinstellungen des Firecrawl-Scrapers finden Sie in der Firecrawl API Documentation.

tavilyScraperOptions

KeyTypeDescriptionExample
tavilyScraperOptionsObjectKonfigurationsoptionen für Tavily Extract (Scraper).

Untergeordnete Schlüssel:

KeyTypeDescriptionExample
extractDepthStringDie Tiefe des Extraktionsprozesses. "advanced" ruft mehr Daten ab, einschließlich Tabellen und eingebetteter Inhalte mit höherer Erfolgsquote, kann jedoch die Latenz erhöhen. "basic" kostet 1 Credit pro 5 erfolgreiche URLs, "advanced" kostet 2 Credits pro 5 erfolgreiche URLs.Options: "basic", "advanced". Default: "basic"
includeImagesBooleanFügen Sie eine Liste der aus den URLs extrahierten Bilder in die Antwort ein.Default: false
includeFaviconBooleanFüge die Favicon-URL für jedes extrahierte Ergebnis hinzu.Default: false
formatStringDas Format des extrahierten Webseiteninhalts. "markdown" gibt den Inhalt im Markdown-Format zurück. "text" gibt reinen Text zurück und kann die Latenz erhöhen.Options: "markdown", "text". Default: "markdown"
timeoutNumberTimeout in Millisekunden. Steuert das clientseitige HTTP-Timeout. Wenn festgelegt, wird zudem ein serverseitiges Extraktions-Timeout an Tavily gesendet, das in Sekunden umgerechnet und auf einen Bereich von 1-60s begrenzt wird.Default: 15000 for basic, 30000 for advanced

Beispiel:

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

Hinweis: Detaillierte Informationen zu den Optionen der Tavily API finden Sie in der Tavily API Documentation.

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringUmgebungsvariablenname für den Jina API-Schlüssel. Falls dieser nicht in der .env gesetzt ist, werden Benutzer aufgefordert, ihn über die UI einzugeben.${JINA_API_KEY}

Hinweis: Holen Sie sich Ihren API-Schlüssel von Jina.ai

jinaApiUrl

KeyTypeDescriptionExample
jinaApiUrlStringUmgebungsvariablenname für die Jina API-URL. Falls nicht in der .env gesetzt, werden Benutzer aufgefordert, diese über die UI anzugeben.${JINA_API_URL}

Hinweis: Dies ist optional und nur erforderlich, wenn Sie eine benutzerdefinierte Jina-Instanz verwenden.

cohereApiKey

KeyTypeDescriptionExample
cohereApiKeyStringUmgebungsvariablenname für den Cohere API-Schlüssel. Wenn dieser nicht in der .env gesetzt ist, werden Benutzer aufgefordert, ihn über die UI einzugeben.${COHERE_API_KEY}

Hinweis: Holen Sie sich Ihren API-Schlüssel vom Cohere Dashboard

rerankerType

KeyTypeDescriptionExample
rerankerTypeStringGibt an, welcher Reranker-Dienst verwendet werden soll. Auf "none" setzen, um das Reranking zu überspringen.Options: "jina", "cohere", "none"

Allgemeine Einstellungen

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerTimeout in Millisekunden für Scraper-Anfragen. Muss eine nicht-negative Ganzzahl sein.Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberSicherheitsfilter-Stufe für die Suche. 0 = AUS (keine Filterung), 1 = MODERAT (Standard), 2 = STRENG (maximale Filterung).Default: 1 (MODERATE)

Hinweis: Die Stufen der sicheren Suche (Safe Search) entsprechen den gängigen Konventionen der Such-API. Die Filterung MODERATE ist standardmäßig aktiviert, um eine angemessene Inhaltsfilterung bei gleichzeitiger Aufrechterhaltung der Sucheffektivität zu gewährleisten. Tavily übernimmt diese globale Einstellung standardmäßig nicht; verwenden Sie tavilySearchOptions.safeSearch nur, wenn Ihr Tavily-Konto safe_search unterstützt.

Hinweise

  • API-Schlüssel können auf zwei Arten konfiguriert werden:
    1. Legen Sie die in der YAML-Konfiguration angegebenen Umgebungsvariablen fest
    2. Wenn Umgebungsvariablen nicht gesetzt sind, werden Benutzer dazu aufgefordert, die API-Schlüssel über die UI einzugeben.
  • Die Konfiguration unterstützt mehrere Dienste für jede Komponente (Anbieter, Scraper, Reranker)
  • Wenn kein spezifischer Diensttyp angegeben ist, versucht das System, alle verfügbaren Dienste in dieser Kategorie zu verwenden.
  • Safe Search bietet drei Stufen der Inhaltsfilterung: OFF (0), MODERATE (1) und STRICT (2)
  • Tavily übernimmt standardmäßig nicht die globale Einstellung für die sichere Suche (Safe Search); setzen Sie tavilySearchOptions.safeSearch nur dann explizit, wenn Ihr Tavily-Konto safe_search unterstützt.
  • Geben Sie niemals echte API-Schlüssel in die YAML-Konfiguration ein – verwenden Sie nur die Namen der Umgebungsvariablen.

Einrichten von SearXNG

SearXNG ist eine datenschutzorientierte Metasuchmaschine, die Sie selbst hosten können. Weitere Informationen finden Sie in der offiziellen SearXNG-Dokumentation.

Hier sind die Schritte zur Einrichtung Ihrer eigenen SearXNG-Instanz zur Verwendung mit LibreChat:

Verwendung von Docker Desktop

  1. Suche nach dem offiziellen SearXNG-Image

    • Öffnen Sie Docker Desktop
    • Suchen Sie nach searxng/searxng im Tab Images
    • Klicken Sie auf Run beim offiziellen Image, um automatisch einen Container des Images herunterzuladen und auszuführen.
  2. Ausführen des Containers

    • Erweitern Sie das Dropdown-Menü Optional Settings im darauf folgenden Bereich, der erscheint, sobald der Download abgeschlossen ist.
    • Legen Sie Ihre gewünschten Konfigurationsdetails fest (Portnummer, Container-Name usw.)
    • Klicken Sie auf Run, um den Container zu starten
  3. Konfiguration von SearXNG für LibreChat

    • Navigieren Sie zum Tab Files in Docker Desktop
    • Gehe zu /etc/searxng/settings.yaml
    • Öffnen Sie den Datei-Editor
    • Navigieren Sie zum Abschnitt formats
    • Fügen Sie json als akzeptables Format hinzu, damit LibreChat mit Ihrer Instanz kommunizieren kann.
    • Speichere die Datei
  4. Starten Sie den Container neu

    • Starten Sie den Container neu, damit die Änderungen wirksam werden.

Video-Anleitung:

Hier ist ein Video, das Sie in etwa einer Minute von Anfang bis Ende durch den Prozess führt:

Anleitung zur SearXNG Docker-Einrichtung

Hinweis: In diesem Beispiel lautet die Instanz-URL http://localhost:55011 (die Portnummer befindet sich oben links unter dem Containernamen am Ende des Videos)

Konfiguration von LibreChat zur Verwendung von SearXNG

Sie können SearXNG in LibreChat innerhalb der Benutzeroberfläche oder über librechat.yaml konfigurieren.

UI-Konfiguration

  1. Öffnen Sie das Tools-Dropdown-Menü in der Chat-Eingabeleiste Tools configuration button

  2. Klicken Sie auf das Zahnradsymbol neben Web Search Tools configuration section

  3. Wählen Sie SearXNG aus dem Dropdown-Menü für Suchanbieter SearXNG Dropdown-Auswahl

  4. Geben Sie Ihre Konfigurationsdetails ein (z. B. Instanz-URL, Scraper-Typ usw.) und klicken Sie auf Speichern Websuche-Konfiguration speichern

  5. Klicken Sie auf die Option Web Search im Dropdown-Menü für Tools Web-Search-Badge in der Chat-Oberfläche

  6. Das Web-Search-Badge sollte nun aktiviert sein, was bedeutet, dass Ihre Anfragen jetzt die Websuchfunktion nutzen können. Bestätigung des Web-Search-Badges

Wie finden Sie diese Anleitung?