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

Wyszukiwanie w sieci

Funkcja wyszukiwania w internecie w LibreChat umożliwia przeszukiwanie sieci i pobieranie istotnych informacji w celu wzbogacenia Twoich konwersacji. Funkcja ta składa się z trzech głównych komponentów, które współpracują ze sobą, aby zapewnić kompleksowe wyniki wyszukiwania.

Szybki start

Aby rozpocząć korzystanie z wyszukiwania w sieci, musisz skonfigurować klucze API dla dostawcy wyszukiwania oraz narzędzia do scrapowania. Przeranking (reranking) może korzystać z Jina lub Cohere, albo zostać wyłączony za pomocą rerankerType: "none". Możesz to zrobić na dwa sposoby:

  1. Zmienne środowiskowe (Zalecane dla administratorów):

    # 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. Interfejs użytkownika (jeśli zmienne środowiskowe nie są ustawione):

    • Użytkownicy zostaną poproszeni o wprowadzenie wymaganych kluczy API przy pierwszym użyciu funkcji wyszukiwania w sieci.
    • Mogą oni wybrać, którego dostawcę wyszukiwania (Serper, SearXNG lub Tavily) oraz której usługi rerankera (Jina, Cohere lub brak) użyć.

Uzyskiwanie kluczy API

Każda włączona usługa zewnętrzna wymaga własnego klucza API. Oto jak je uzyskać:

Dostawcy wyszukiwania

Serper

  1. Odwiedź Serper.dev
  2. Zarejestruj konto
  3. Przejdź do sekcji API Key
  4. Skopiuj swój klucz API
  5. Ustaw to w swoich zmiennych środowiskowych lub podaj przez UI

SearXNG

  1. Postępuj zgodnie z instrukcjami konfiguracji w dokumentacji Web Search Configuration
  2. Ustaw SEARXNG_INSTANCE_URL na adres URL swojej instancji
  3. Opcjonalnie ustaw SEARXNG_API_KEY, jeśli Twoja instancja wymaga uwierzytelnienia

Tavily

  1. Odwiedź Tavily
  2. Zarejestruj konto
  3. Skopiuj swój klucz API
  4. Ustaw TAVILY_API_KEY w swoich zmiennych środowiskowych lub podaj go za pośrednictwem interfejsu użytkownika (UI)
  5. Tavily może być używany zarówno jako dostawca wyszukiwania, jak i dostawca scrapingu.

Scraper: Firecrawl

  1. Odwiedź Firecrawl.dev
  2. Zarejestruj konto
  3. Przejdź do sekcji API Key
  4. Skopiuj swój klucz API
  5. Ustaw to w swoich zmiennych środowiskowych lub podaj przez UI
  6. (Opcjonalnie) Jeśli używasz własnej instancji Firecrawl, musisz również ustawić adres URL API

Rerankers

Jina

  1. Odwiedź Jina.ai
  2. Zarejestruj konto
  3. Przejdź do pulpitu nawigacyjnego API
  4. Skopiuj swój klucz API
  5. Ustaw to w swoich zmiennych środowiskowych lub podaj przez UI

Cohere

  1. Odwiedź Cohere Dashboard
  2. Zarejestruj konto
  3. Przejdź do sekcji API Keys
  4. Skopiuj swój klucz API
  5. Ustaw to w swoich zmiennych środowiskowych lub podaj przez UI

Komponenty

1. Dostawcy wyszukiwania

Dostawcy wyszukiwania odpowiadają za przeprowadzenie wstępnego wyszukiwania w sieci i zwrócenie odpowiednich wyników.

Dostępni dostawcy:

  • Serper: API wyszukiwarki Google, które zapewnia wysokiej jakości wyniki wyszukiwania
  • SearXNG: Otwartoźródłowa, hostowana samodzielnie metawyszukiwarka
    • Hostuj samodzielnie własną instancję
    • Wyniki wyszukiwania zorientowane na prywatność
  • Tavily: API wyszukiwania zoptymalizowane pod kątem AI
    • Pobierz swój klucz API z Tavily
    • Obsługuje konfigurowalną głębokość wyszukiwania, filtrowanie tematów, filtrowanie domen i wiele więcej
    • Może również służyć jako dostawca scrapingu

2. Scrapers

Scrapers wyodrębniają właściwą treść ze stron internetowych zwróconych przez dostawcę wyszukiwania.

Dostępne scrapery:

  • Firecrawl: Potężna usługa web scrapingu, która wyodrębnia zawartość ze stron internetowych

    • Pobierz swój klucz API z Firecrawl.dev
    • API URL jest opcjonalny (domyślnie używana jest usługa hostowana Firecrawl)
  • Tavily: Przetwarzanie wsadowe ekstrakcji adresów URL za pośrednictwem Tavily Extract API

    • Używa tego samego TAVILY_API_KEY co dostawca wyszukiwania
    • Obsługuje konfigurowalną głębokość ekstrakcji, ekstrakcję obrazów oraz ekstrakcję favicon.

Planowane scrapery:

  • Local Firecrawl: Własna instancja Firecrawl
  • Dodatkowe usługi scrapingu stron trzecich

3. Rerankers

Rerankery analizują pobraną zawartość, aby określić najbardziej istotne części i zmienić ich kolejność w celu uzyskania lepszych wyników.

Dostępne rerankery:

  • Jina: Usługa rerankingu oparta na AI
    • Pobierz swój klucz API z Jina.ai
    • URL API jest opcjonalny (domyślnie używana jest usługa hostowana przez Jina)
  • Cohere: Zaawansowana usługa rerankingu
  • None: Pomija reranking, gdy rerankerType jest ustawiony na "none"

Planowane Rerankery:

  • RAG API: Reranking typu open-source przy użyciu RAG (Retrieval-Augmented Generation)
  • Dodatkowe usługi rerankingu innych firm

Konfiguracja

Konfiguracja administratora

Administratorzy mogą skonfigurować funkcję wyszukiwania w sieci za pomocą zmiennych środowiskowych. Konfiguracja YAML pozwala na określenie niestandardowych nazw zmiennych środowiskowych dla każdego komponentu.

⚠️ Ważne: Nigdy nie umieszczaj rzeczywistych kluczy API ani wartości w pliku YAML (nie będą działać) – używaj wyłącznie nazw zmiennych środowiskowych.

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)

Uwaga: Konfiguracja YAML powinna zawierać wyłącznie nazwy zmiennych środowiskowych (w formacie ${VARIABLE_NAME}). Ta elastyczność umożliwia:

  • Używanie różnych nazw zmiennych w różnych środowiskach
  • Obsługa wielu konfiguracji dla różnych grup użytkowników
  • Przyszła integracja z konfiguracjami opartymi na rolach

Jeśli chcesz ograniczyć system tak, aby korzystał tylko z określonych usług, możesz wyszczególnić typy usług:

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"

Konfiguracja użytkownika

Jeśli administrator nie skonfigurował wszystkich niezbędnych kluczy API, użytkownicy zostaną poproszeni o ich podanie za pośrednictwem interfejsu użytkownika. Interfejs umożliwia użytkownikom:

  1. Wybierz preferowany reranker (Jina, Cohere lub brak)
  2. Wprowadź klucze API dla wymaganych usług
  3. Skonfiguruj adres URL API Firecrawl, jeśli to konieczne (opcjonalne)
  4. Skonfiguruj adres URL API Jina, jeśli to konieczne (opcjonalne)
  5. Skonfiguruj adresy URL API Tavily Search lub Extract, jeśli to konieczne (opcjonalne)

Użycie

Po skonfigurowaniu możesz korzystać z wyszukiwania w internecie na dwa sposoby:

  1. Interfejs czatu: Kliknij przycisk wyszukiwania w sieci w interfejsie czatu, aby włączyć wyszukiwanie w sieci dla swojej konwersacji
  2. Agenci: Użyj funkcji web_search w agentach, aby umożliwić im przeszukiwanie sieci

Uwagi

  • Wymagana jest konfiguracja dostawcy wyszukiwania i scrapera; reranking można wyłączyć za pomocą rerankerType: "none"
  • Adres URL API Firecrawl jest opcjonalny i domyślnie wskazuje na ich usługę hostowaną.
  • Adres URL Jina API jest opcjonalny i domyślnie wskazuje na ich hostowaną usługę
  • Adresy URL API Tavily Search and Extract są opcjonalne i domyślnie wskazują na usługi hostowane przez Tavily.
  • Safe search zapewnia trzy poziomy filtrowania treści: OFF (0), MODERATE (1 - domyślny) oraz STRICT (2)
  • Tavily domyślnie nie dziedziczy globalnego ustawienia safeSearch; używaj tavilySearchOptions.safeSearch tylko wtedy, gdy Twoje konto Tavily obsługuje safe_search
  • Limit czasu skanera (scraper timeout) jest domyślnie ustawiony na 7,5 sekundy (7500ms)
  • Klucze API można w każdej chwili unieważnić za pośrednictwem interfejsu użytkownika.
  • Przyszłe aktualizacje będą zawierać więcej opcji open-source i self-hosted dla wszystkich komponentów
  • Planowane są dodatkowe opcje dostosowywania, w tym:
    • Kontrola nad liczbą linków do pobrania
    • Lista dozwolonych/zablokowanych domen dla scrapingu
    • Niestandardowe reguły i filtry scrapowania
    • Zaawansowane opcje filtrowania i rankingu wyników
    • Kontrola limitów szybkości i ograniczania żądań

Jaka jest ta instrukcja?