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

Konfigurasi Pencarian Web

Konfigurasi webSearch memungkinkan Anda untuk menyesuaikan fungsionalitas pencarian web di dalam LibreChat, termasuk penyedia pencarian, pengikis konten (content scrapers), dan pemeringkat ulang hasil (result rerankers).

Ikhtisar

Fitur pencarian web terdiri dari tiga komponen utama:

  1. Penyedia Pencarian: Layanan yang melakukan pencarian web awal
  2. Scrapers: Layanan yang mengekstrak konten dari halaman web
  3. Rerankers: Layanan yang menyusun ulang hasil pencarian untuk relevansi yang lebih baik

Contoh

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)

Penyedia Pencarian

searchProvider

KeyTypeDescriptionExample
searchProviderStringMenentukan penyedia pencarian mana yang akan digunakan.Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringNama variabel lingkungan untuk kunci API Serper. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${SERPER_API_KEY}

Catatan: Dapatkan kunci API Anda dari Serper.dev

searxngInstanceUrl

KeyTypeDescriptionExample
searxngInstanceUrlStringNama variabel lingkungan untuk URL instans SearXNG. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${SEARXNG_INSTANCE_URL}

searxngApiKey

KeyTypeDescriptionExample
searxngApiKeyStringNama variabel lingkungan untuk kunci API SearXNG. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${SEARXNG_API_KEY}

Catatan: Ini bersifat opsional dan hanya diperlukan jika instans SearXNG Anda memerlukan autentikasi.

tavilyApiKey

KeyTypeDescriptionExample
tavilyApiKeyStringNama variabel lingkungan untuk kunci API Tavily. Digunakan untuk pencarian dan scraper. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${TAVILY_API_KEY}

Catatan: Dapatkan API key Anda dari Tavily

tavilySearchUrl

KeyTypeDescriptionExample
tavilySearchUrlStringNama variabel lingkungan untuk URL API Tavily Search kustom. Opsional; secara default menggunakan pencarian yang di-host oleh Tavily jika tidak diatur.${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringNama variabel lingkungan untuk URL API Tavily Extract kustom. Opsional; secara default menggunakan extract yang dihosting oleh Tavily jika tidak diatur.${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectOpsi konfigurasi untuk pencarian Tavily.

Subkey:

KeyTypeDescriptionExample
searchDepthStringMengontrol pertukaran antara relevansi dan latensi. "basic" mengembalikan satu ringkasan NLP per URL. "advanced" mengembalikan beberapa cuplikan yang relevan secara semantik per URL (2 kredit API). "fast" menyeimbangkan kecepatan dan relevansi dengan cuplikan. "ultra-fast" meminimalkan latensi dengan satu ringkasan NLP.Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic"
maxResultsNumberJumlah maksimum hasil pencarian yang akan dikembalikan.Range: 1-20. Default: 5
topicStringKategori pencarian. "news" berguna untuk pembaruan waktu nyata. "finance" untuk data keuangan.Options: "general", "news", "finance". Default: "general"
includeImagesBooleanSertakan gambar dalam respons. Mengembalikan gambar kueri tingkat atas dan gambar per hasil.Default: false
includeAnswerBoolean or StringSertakan jawaban yang dihasilkan LLM. "basic" atau true untuk jawaban singkat, "advanced" untuk jawaban mendetail.Default: false
includeRawContentBoolean or StringSertakan konten HTML yang telah dibersihkan dan diurai. "markdown" atau true untuk format markdown, "text" untuk teks biasa.Default: false
includeDomainsArray of StringsBatasi pencarian ke domain tertentu. Maksimum 300 domain.
excludeDomainsArray of StringsKecualikan domain tertentu dari hasil. Maksimum 150 domain.
timeRangeStringFilter rentang waktu berdasarkan tanggal publikasi atau pembaruan terakhir.Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanSaat includeImages bernilai true, tambahkan juga teks deskriptif untuk setiap gambar.Default: false
includeFaviconBooleanSertakan URL favicon untuk setiap hasil pencarian.Default: false
chunksPerSourceNumberJumlah maksimum potongan konten yang relevan per sumber. Hanya tersedia jika searchDepth diatur ke "advanced".Range: 1-3. Default: 3
safeSearchBooleanPenggantian safe_search Tavily opsional untuk permintaan Pencarian Tavily. Dihilangkan secara default; true mungkin memerlukan Tavily Enterprise.Default: omitted
timeoutNumberBatas waktu permintaan HTTP sisi klien dalam milidetik. Mengontrol berapa lama waktu tunggu untuk respons API Tavily sebelum menyerah.Default: 15000

Scrapers

firecrawlApiKey

KeyTypeDescriptionExample
firecrawlApiKeyStringNama variabel lingkungan untuk kunci API Firecrawl. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${FIRECRAWL_API_KEY}

Catatan: Dapatkan API key Anda dari Firecrawl.dev

firecrawlApiUrl

KeyTypeDescriptionExample
firecrawlApiUrlStringNama variabel lingkungan untuk URL API Firecrawl. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${FIRECRAWL_API_URL}

Catatan: Ini bersifat opsional dan hanya diperlukan jika Anda menggunakan instance Firecrawl kustom.

firecrawlVersion

KeyTypeDescriptionExample
firecrawlVersionStringNama variabel lingkungan untuk versi API Firecrawl (v0 atau v1).${FIRECRAWL_VERSION}

scraperProvider

KeyTypeDescriptionExample
scraperProviderStringMenentukan layanan scraper mana yang akan digunakan.Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectOpsi konfigurasi tingkat lanjut untuk scraper Firecrawl.

Subkey:

formats

KeyTypeDescriptionExample
formatsArray of StringsFormat yang disertakan dalam output.

includeTags

KeyTypeDescriptionExample
includeTagsArray of StringsTag yang disertakan dalam output.

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of StringsTag untuk dikecualikan dari output.

headers

KeyTypeDescriptionExample
headersObjectHeader yang akan dikirim bersama permintaan. Dapat digunakan untuk mengirim cookie, user-agent, dll.

waitFor

KeyTypeDescriptionExample
waitForNumberTentukan jeda dalam milidetik sebelum mengambil konten, agar halaman memiliki waktu yang cukup untuk dimuat.

timeout

KeyTypeDescriptionExample
timeoutIntegerBatas waktu dalam milidetik untuk permintaan scraping. Harus berupa bilangan bulat non-negatif.Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberMengembalikan versi halaman yang di-cache jika usianya lebih muda dari durasi ini dalam milidetik. Jika versi halaman yang di-cache lebih lama dari nilai ini, halaman tersebut akan di-scrape.

Catatan: Jika Anda tidak memerlukan data yang sangat baru, mengaktifkan fitur ini dapat mempercepat proses scraping Anda hingga 500%.

mobile

KeyTypeDescriptionExample
mobileBooleanEmulasi scraping dari perangkat seluler.

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanLewati verifikasi sertifikat TLS saat membuat permintaan.

blockAds

KeyTypeDescriptionExample
blockAdsBooleanMengaktifkan pemblokiran iklan dan pemblokiran popup cookie.

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBooleanMenghapus semua gambar base 64 dari output, yang mungkin sangat panjang. Teks alt gambar tetap ada di output, tetapi URL diganti dengan placeholder.

parsePDF

KeyTypeDescriptionExample
parsePDFBooleanMengontrol bagaimana file PDF diproses selama scraping.

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleanJika true, halaman akan disimpan di indeks dan cache Firecrawl. Mengaturnya ke false berguna jika aktivitas scraping Anda mungkin memiliki masalah perlindungan data. Menggunakan beberapa parameter yang terkait dengan scraping sensitif (headers) akan memaksa parameter ini menjadi false.

zeroDataRetention

KeyTypeDescriptionExample
zeroDataRetentionBooleanJika benar, ini akan mengaktifkan retensi data nol untuk scraping ini (memerlukan pengaturan sebelumnya di Firecrawl).

location

KeyTypeDescriptionExample
locationObjectLokasi geografis dan pengaturan bahasa untuk scraping.

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanHanya kembalikan konten utama halaman, tidak termasuk header, nav, footer, dll.

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectKonfigurasi untuk melacak perubahan pada konten yang di-scrape.

Contoh:

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

Catatan: Untuk informasi mendetail mengenai opsi dan pengaturan default scraper Firecrawl, lihat Dokumentasi API Firecrawl.

tavilyScraperOptions

KeyTypeDescriptionExample
tavilyScraperOptionsObjectOpsi konfigurasi untuk Tavily Extract (scraper).

Subkey:

KeyTypeDescriptionExample
extractDepthStringKedalaman proses ekstraksi. "advanced" mengambil lebih banyak data termasuk tabel dan konten tersemat dengan tingkat keberhasilan lebih tinggi namun dapat meningkatkan latensi. "basic" memakan 1 kredit per 5 URL yang berhasil, "advanced" memakan 2 kredit per 5 URL yang berhasil.Options: "basic", "advanced". Default: "basic"
includeImagesBooleanSertakan daftar gambar yang diekstrak dari URL dalam respons.Default: false
includeFaviconBooleanSertakan URL favicon untuk setiap hasil yang diekstrak.Default: false
formatStringFormat konten halaman web yang diekstrak. "markdown" mengembalikan konten dalam format markdown. "text" mengembalikan teks biasa dan dapat meningkatkan latensi.Options: "markdown", "text". Default: "markdown"
timeoutNumberBatas waktu dalam milidetik. Mengontrol batas waktu HTTP sisi klien. Jika diatur, ini juga mengirimkan batas waktu ekstraksi sisi server ke Tavily yang dikonversi ke detik dan dibatasi antara 1-60 detik.Default: 15000 for basic, 30000 for advanced

Contoh:

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

Catatan: Untuk informasi mendetail mengenai opsi Tavily API, lihat Tavily API Documentation.

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringNama variabel lingkungan untuk kunci API Jina. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${JINA_API_KEY}

Catatan: Dapatkan kunci API Anda dari Jina.ai

jinaApiUrl

KeyTypeDescriptionExample
jinaApiUrlStringNama variabel lingkungan untuk URL API Jina. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${JINA_API_URL}

Catatan: Ini bersifat opsional dan hanya diperlukan jika Anda menggunakan instans Jina kustom.

cohereApiKey

KeyTypeDescriptionExample
cohereApiKeyStringNama variabel lingkungan untuk kunci API Cohere. Jika tidak diatur di .env, pengguna akan diminta untuk menyediakannya melalui UI.${COHERE_API_KEY}

Catatan: Dapatkan kunci API Anda dari Cohere Dashboard

rerankerType

KeyTypeDescriptionExample
rerankerTypeStringMenentukan layanan reranker mana yang akan digunakan. Atur ke "none" untuk melewati reranking.Options: "jina", "cohere", "none"

Pengaturan Umum

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerBatas waktu dalam milidetik untuk permintaan scraper. Harus berupa bilangan bulat non-negatif.Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberTingkat penyaringan pencarian aman. 0 = OFF (tanpa penyaringan), 1 = MODERATE (default), 2 = STRICT (penyaringan maksimum).Default: 1 (MODERATE)

Catatan: Tingkat pencarian aman (safe search) diselaraskan dengan konvensi API pencarian standar. Pemfilteran MODERATE diaktifkan secara default untuk memberikan pemfilteran konten yang wajar sambil tetap menjaga efektivitas pencarian. Tavily tidak mewarisi pengaturan global ini secara default; gunakan tavilySearchOptions.safeSearch hanya jika akun Tavily Anda mendukung safe_search.

Catatan

  • API keys dapat dikonfigurasi dengan dua cara:
    1. Atur variabel lingkungan yang ditentukan dalam konfigurasi YAML
    2. Jika variabel lingkungan tidak diatur, pengguna akan diminta untuk memberikan kunci API melalui UI
  • Konfigurasi ini mendukung beberapa layanan untuk setiap komponen (providers, scrapers, rerankers)
  • Jika jenis layanan tertentu tidak ditentukan, sistem akan mencoba semua layanan yang tersedia dalam kategori tersebut
  • Safe search menyediakan tiga tingkat penyaringan konten: OFF (0), MODERATE (1), dan STRICT (2)
  • Tavily tidak mewarisi pengaturan pencarian aman (safe search) global secara default; atur tavilySearchOptions.safeSearch secara eksplisit hanya jika akun Tavily Anda mendukung safe_search
  • Jangan pernah memasukkan API key yang sebenarnya ke dalam konfigurasi YAML - gunakan hanya nama variabel lingkungan

Menyiapkan SearXNG

SearXNG adalah mesin pencari meta yang berfokus pada privasi yang dapat Anda host sendiri. Untuk informasi lebih lanjut, lihat dokumentasi resmi SearXNG.

Berikut adalah langkah-langkah untuk menyiapkan instans SearXNG Anda sendiri untuk digunakan dengan LibreChat:

Menggunakan Docker Desktop

  1. Cari image resmi SearXNG

    • Buka Docker Desktop
    • Cari searxng/searxng di tab Images
    • Klik Run pada image resmi untuk menarik (pull) dan menjalankan container dari image tersebut secara otomatis
  2. Menjalankan container

    • Perluas menu tarik-turun Optional Settings di panel selanjutnya yang muncul setelah pengunduhan selesai.
    • Atur detail konfigurasi yang Anda inginkan (nomor port, nama kontainer, dll.)
    • Klik Run untuk memulai container
  3. Konfigurasi SearXNG untuk LibreChat

    • Buka tab Files di Docker Desktop
    • Buka /etc/searxng/settings.yaml
    • Buka editor file
    • Navigasikan ke bagian formats
    • Tambahkan json sebagai format yang dapat diterima agar LibreChat dapat berkomunikasi dengan instans Anda
    • Simpan file tersebut
  4. Mulai ulang container

    • Mulai ulang container agar perubahan diterapkan

Panduan Video:

Berikut adalah video untuk memandu Anda melalui proses ini dari awal hingga akhir dalam waktu sekitar satu menit:

Panduan pengaturan Docker SearXNG

Catatan: Dalam contoh ini, URL instance adalah http://localhost:55011 (nomor port ditemukan di bawah nama container di kiri atas pada akhir video)

Mengonfigurasi LibreChat untuk menggunakan SearXNG

Anda dapat mengonfigurasi SearXNG di LibreChat melalui UI atau melalui librechat.yaml.

Konfigurasi UI

  1. Buka menu dropdown alat di bilah input obrolan Tombol konfigurasi alat

  2. Klik ikon gerigi di sebelah Web Search Tools configuration section

  3. Pilih SearXNG dari menu dropdown Penyedia Pencarian SearXNG dropdown selection

  4. Masukkan detail konfigurasi Anda (misalnya URL instance, tipe scraper, dll.) dan klik simpan Save web search configuration

  5. Klik opsi Web Search di menu dropdown alat Web search badge in chat interface

  6. Lencana Pencarian Web sekarang seharusnya sudah aktif, yang berarti kueri Anda sekarang dapat menggunakan fungsi pencarian web Konfirmasi lencana pencarian web

Bagaimana panduan ini?