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

Web Arama Yapılandırması

webSearch yapılandırması, arama sağlayıcıları, içerik kazıyıcılar ve sonuç yeniden sıralayıcılar dahil olmak üzere LibreChat içindeki web arama işlevini özelleştirmenize olanak tanır.

Genel Bakış

Web arama özelliği üç ana bileşenden oluşur:

  1. Arama Sağlayıcıları: İlk web aramasını gerçekleştiren hizmetler
  2. Scrapers: Web sayfalarından içerik çıkaran servisler
  3. Rerankers: Arama sonuçlarını daha iyi alaka düzeyi için yeniden sıralayan hizmetler

Örnek

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)

Arama Sağlayıcıları

searchProvider

KeyTypeDescriptionExample
searchProviderStringHangi arama sağlayıcısının kullanılacağını belirtir.Options: "serper", "searxng", "tavily"

serperApiKey

KeyTypeDescriptionExample
serperApiKeyStringSerper API anahtarı için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${SERPER_API_KEY}

Not: API anahtarınızı Serper.dev adresinden alın.

searxngInstanceUrl

KeyTypeDescriptionExample
searxngInstanceUrlStringSearXNG örneği URL'si için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${SEARXNG_INSTANCE_URL}

searxngApiKey

KeyTypeDescriptionExample
searxngApiKeyStringSearXNG API anahtarı için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${SEARXNG_API_KEY}

Not: Bu isteğe bağlıdır ve yalnızca SearXNG örneğiniz kimlik doğrulaması gerektiriyorsa gereklidir.

tavilyApiKey

KeyTypeDescriptionExample
tavilyApiKeyStringTavily API anahtarı için ortam değişkeni adı. Hem arama hem de kazıyıcı için kullanılır. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${TAVILY_API_KEY}

Not: API anahtarınızı Tavily adresinden alın.

tavilySearchUrl

KeyTypeDescriptionExample
tavilySearchUrlStringÖzel bir Tavily Search API URL'si için ortam değişkeni adı. İsteğe bağlıdır; ayarlanmadığında varsayılan olarak Tavily barındırmalı arama kullanılır.${TAVILY_SEARCH_URL}

tavilyExtractUrl

KeyTypeDescriptionExample
tavilyExtractUrlStringÖzel bir Tavily Extract API URL'si için ortam değişkeni adı. İsteğe bağlıdır; ayarlanmadığında varsayılan olarak Tavily barındırmalı extract kullanılır.${TAVILY_EXTRACT_URL}

tavilySearchOptions

KeyTypeDescriptionExample
tavilySearchOptionsObjectTavily arama için yapılandırma seçenekleri.

Alt anahtarlar:

KeyTypeDescriptionExample
searchDepthStringAlaka düzeyi ile gecikme arasındaki dengeyi kontrol eder. "basic", URL başına bir NLP özeti döndürür. "advanced", URL başına anlamsal olarak ilgili birden fazla kesit döndürür (2 API kredisi). "fast", hız ve alaka düzeyini kesitlerle dengeler. "ultra-fast", tek bir NLP özeti ile gecikmeyi en aza indirir.Options: "basic", "advanced", "fast", "ultra-fast". Default: "basic"
maxResultsNumberDöndürülecek maksimum arama sonucu sayısı.Range: 1-20. Default: 5
topicStringAramanın kategorisi. "news" gerçek zamanlı güncellemeler için, "finance" ise finansal veriler için kullanışlıdır.Options: "general", "news", "finance". Default: "general"
includeImagesBooleanYanıta görselleri dahil eder. Hem üst düzey sorgu görsellerini hem de sonuç başına düşen görselleri döndürür.Default: false
includeAnswerBoolean or StringLLM tarafından oluşturulan bir yanıt ekleyin. Hızlı bir yanıt için "basic" veya true, ayrıntılı bir yanıt için "advanced" değerini kullanın.Default: false
includeRawContentBoolean or StringTemizlenmiş ve ayrıştırılmış HTML içeriğini dahil edin. Markdown formatı için "markdown" veya true, düz metin için "text" kullanın.Default: false
includeDomainsArray of StringsAramayı belirli alan adlarıyla sınırlandırın. Maksimum 300 alan adı.
excludeDomainsArray of StringsSonuçlardan belirli alan adlarını hariç tutun. Maksimum 150 alan adı.
timeRangeStringYayınlanma veya son güncelleme tarihine dayalı zaman aralığı filtresi.Options: "day", "week", "month", "year"
includeImageDescriptionsBooleanincludeImages true olduğunda, her görsel için açıklayıcı bir metin de ekleyin.Default: false
includeFaviconBooleanHer arama sonucu için favicon URL'sini dahil et.Default: false
chunksPerSourceNumberKaynak başına maksimum ilgili içerik parçası sayısı. Yalnızca searchDepth "advanced" olarak ayarlandığında kullanılabilir.Range: 1-3. Default: 3
safeSearchBooleanTavily Search istekleri için isteğe bağlı Tavily safe_search geçersiz kılma ayarı. Varsayılan olarak atlanmıştır; true değeri Tavily Enterprise gerektirebilir.Default: omitted
timeoutNumberMilisaniye cinsinden istemci tarafı HTTP istek zaman aşımı. Tavily API'sinin yanıt vermesi için vazgeçmeden önce ne kadar bekleneceğini kontrol eder.Default: 15000

Scrapers

firecrawlApiKey

KeyTypeDescriptionExample
firecrawlApiKeyStringFirecrawl API anahtarı için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${FIRECRAWL_API_KEY}

Not: API anahtarınızı Firecrawl.dev adresinden alın.

firecrawlApiUrl

KeyTypeDescriptionExample
firecrawlApiUrlStringFirecrawl API URL'si için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${FIRECRAWL_API_URL}

Not: Bu isteğe bağlıdır ve yalnızca özel bir Firecrawl örneği kullanıyorsanız gereklidir.

firecrawlVersion

KeyTypeDescriptionExample
firecrawlVersionStringFirecrawl API sürümü (v0 veya v1) için ortam değişkeni adı.${FIRECRAWL_VERSION}

scraperProvider

KeyTypeDescriptionExample
scraperProviderStringHangi scraper servisinin kullanılacağını belirtir.Options: "firecrawl", "serper", "tavily"

firecrawlOptions

KeyTypeDescriptionExample
firecrawlOptionsObjectFirecrawl kazıyıcı için gelişmiş yapılandırma seçenekleri.

Alt anahtarlar:

formats

KeyTypeDescriptionExample
formatsArray of StringsÇıktıya dahil edilecek formatlar.

includeTags

KeyTypeDescriptionExample
includeTagsArray of StringsÇıktıya dahil edilecek etiketler.

excludeTags

KeyTypeDescriptionExample
excludeTagsArray of StringsÇıktıdan hariç tutulacak etiketler.

headers

KeyTypeDescriptionExample
headersObjectİstekle birlikte gönderilecek başlıklar. Çerezleri, user-agent bilgisini vb. göndermek için kullanılabilir.

waitFor

KeyTypeDescriptionExample
waitForNumberİçeriği getirmeden önce milisaniye cinsinden bir gecikme belirterek sayfanın yüklenmesi için yeterli zaman tanıyın.

timeout

KeyTypeDescriptionExample
timeoutIntegerKazıma isteği için milisaniye cinsinden zaman aşımı süresi. Negatif olmayan bir tam sayı olmalıdır.Default: 7500

maxAge

KeyTypeDescriptionExample
maxAgeNumberSayfa bu yaştan (milisaniye cinsinden) daha yeniyse sayfanın önbelleğe alınmış bir sürümünü döndürür. Sayfanın önbelleğe alınmış sürümü bu değerden daha eskiyse sayfa yeniden taranacaktır.

Not: Çok güncel verilere ihtiyacınız yoksa, bunu etkinleştirmek tarama işlemlerinizi %500 oranında hızlandırabilir.

mobile

KeyTypeDescriptionExample
mobileBooleanMobil cihazdan kazıma işlemini taklit et.

skipTlsVerification

KeyTypeDescriptionExample
skipTlsVerificationBooleanİstekleri yaparken TLS sertifika doğrulamasını atla.

blockAds

KeyTypeDescriptionExample
blockAdsBooleanReklam engellemeyi ve çerez açılır pencere engellemeyi etkinleştirir.

removeBase64Images

KeyTypeDescriptionExample
removeBase64ImagesBooleanÇıktıdan, aşırı uzun olabilen tüm base 64 görselleri kaldırır. Görselin alt metni çıktıda kalır, ancak URL bir yer tutucu ile değiştirilir.

parsePDF

KeyTypeDescriptionExample
parsePDFBooleanPDF dosyalarının tarama sırasında nasıl işleneceğini kontrol eder.

storeInCache

KeyTypeDescriptionExample
storeInCacheBooleanTrue olarak ayarlanırsa, sayfa Firecrawl dizininde ve önbelleğinde saklanır. Bunu false olarak ayarlamak, tarama etkinliğinizin veri koruma endişeleri taşıyabileceği durumlarda yararlıdır. Hassas tarama ile ilişkili bazı parametrelerin (başlıklar) kullanılması, bu parametreyi zorunlu olarak false yapacaktır.

zeroDataRetention

KeyTypeDescriptionExample
zeroDataRetentionBooleanEğer true olarak ayarlanırsa, bu tarama için sıfır veri saklama etkinleştirilecektir (Firecrawl üzerinde önceden kurulum gerektirir).

location

KeyTypeDescriptionExample
locationObjectKazıma işlemleri için coğrafi konum ve dil ayarları.

onlyMainContent

KeyTypeDescriptionExample
onlyMainContentBooleanSayfanın yalnızca ana içeriğini döndürün; üstbilgiler, gezinme çubukları, altbilgiler vb. hariç tutulacaktır.

changeTrackingOptions

KeyTypeDescriptionExample
changeTrackingOptionsObjectKazınmış içerikteki değişiklikleri izlemek için yapılandırma.

Örnek:

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

Not: Firecrawl kazıyıcı seçenekleri ve varsayılanları hakkında ayrıntılı bilgi için Firecrawl API Documentation sayfasına bakın.

tavilyScraperOptions

KeyTypeDescriptionExample
tavilyScraperOptionsObjectTavily Extract (kazıyıcı) için yapılandırma seçenekleri.

Alt anahtarlar:

KeyTypeDescriptionExample
extractDepthStringÇıkarma işleminin derinliği. "advanced", tablolar ve gömülü içerikler dahil olmak üzere daha fazla veriyi daha yüksek başarı oranıyla alır ancak gecikmeyi artırabilir. "basic" 5 başarılı URL için 1 kredi, "advanced" ise 5 başarılı URL için 2 kredi tüketir.Options: "basic", "advanced". Default: "basic"
includeImagesBooleanYanıta URL'lerden çıkarılan görsellerin bir listesini dahil edin.Default: false
includeFaviconBooleanÇıkarılan her sonuç için favicon URL'sini dahil et.Default: false
formatStringAyıklanan web sayfası içeriğinin formatı. "markdown", içeriği markdown formatında döndürür. "text", düz metin döndürür ve gecikmeyi artırabilir.Options: "markdown", "text". Default: "markdown"
timeoutNumberMilisaniye cinsinden zaman aşımı. İstemci tarafındaki HTTP zaman aşımını kontrol eder. Ayarlandığında, ayrıca Tavily'ye saniyeye dönüştürülmüş ve 1-60 saniye aralığına sabitlenmiş bir sunucu tarafı çıkarma zaman aşımı gönderir.Default: 15000 for basic, 30000 for advanced

Örnek:

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

Not: Tavily API seçenekleri hakkında ayrıntılı bilgi için Tavily API Documentation sayfasına bakın.

Rerankers

jinaApiKey

KeyTypeDescriptionExample
jinaApiKeyStringJina API anahtarı için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${JINA_API_KEY}

Not: API anahtarınızı Jina.ai adresinden alın.

jinaApiUrl

KeyTypeDescriptionExample
jinaApiUrlStringJina API URL'si için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${JINA_API_URL}

Not: Bu isteğe bağlıdır ve yalnızca özel bir Jina örneği kullanıyorsanız gereklidir.

cohereApiKey

KeyTypeDescriptionExample
cohereApiKeyStringCohere API anahtarı için ortam değişkeni adı. .env dosyasında ayarlanmazsa, kullanıcılardan bunu arayüz üzerinden sağlamaları istenecektir.${COHERE_API_KEY}

Not: API anahtarınızı Cohere Dashboard adresinden alın.

rerankerType

KeyTypeDescriptionExample
rerankerTypeStringHangi reranker servisinin kullanılacağını belirtir. Yeniden sıralamayı (reranking) atlamak için "none" olarak ayarlayın.Options: "jina", "cohere", "none"

Genel Ayarlar

scraperTimeout

KeyTypeDescriptionExample
scraperTimeoutIntegerKazıyıcı istekleri için milisaniye cinsinden zaman aşımı süresi. Negatif olmayan bir tam sayı olmalıdır.Default: 7500

safeSearch

KeyTypeDescriptionExample
safeSearchNumberGüvenli arama filtreleme seviyesi. 0 = KAPALI (filtreleme yok), 1 = ORTA (varsayılan), 2 = SIKI (maksimum filtreleme).Default: 1 (MODERATE)

Not: Güvenli arama seviyeleri, standart arama API'si kurallarıyla uyumludur. Makul bir içerik filtrelemesi sağlarken arama etkinliğini korumak için MODERATE filtreleme varsayılan olarak etkindir. Tavily, bu genel ayarı varsayılan olarak devralmaz; tavilySearchOptions.safeSearch öğesini yalnızca Tavily hesabınız safe_search özelliğini destekliyorsa kullanın.

Notlar

  • API anahtarları iki şekilde yapılandırılabilir:
    1. YAML yapılandırmasında belirtilen ortam değişkenlerini ayarlayın
    2. Ortam değişkenleri ayarlanmadıysa, kullanıcılardan API anahtarlarını arayüz (UI) aracılığıyla sağlamaları istenecektir.
  • Yapılandırma, her bileşen (providers, scrapers, rerankers) için birden fazla hizmeti destekler.
  • Belirli bir hizmet türü belirtilmemişse, sistem o kategorideki tüm mevcut hizmetleri deneyecektir.
  • Güvenli arama, üç seviyeli içerik filtreleme sağlar: OFF (0), MODERATE (1) ve STRICT (2)
  • Tavily, varsayılan olarak genel güvenli arama ayarını devralmaz; tavilySearchOptions.safeSearch değerini yalnızca Tavily hesabınız safe_search özelliğini desteklediğinde açıkça ayarlayın.
  • Asla gerçek API anahtarlarını YAML yapılandırmasına koymayın - yalnızca ortam değişkeni adlarını kullanın

SearXNG Kurulumu

SearXNG, kendi sunucunuzda barındırabileceğiniz, gizlilik odaklı bir meta arama motorudur. Daha fazla bilgi için resmi SearXNG belgelerine bakabilirsiniz.

LibreChat ile kullanmak üzere kendi SearXNG örneğinizi kurmanız için gereken adımlar şunlardır:

Docker Desktop Kullanımı

  1. Resmi SearXNG imajını arayın

    • Docker Desktop'ı açın
    • Görseller (Images) sekmesinde searxng/searxng için arama yapın
    • Resmi görüntünün üzerinde Run düğmesine tıklayarak görüntünün bir konteynerini otomatik olarak çekin ve çalıştırın
  2. Kapsayıcıyı çalıştırma

    • İndirme işlemi tamamlandığında açılan paneldeki Optional Settings açılır menüsünü genişletin
    • İstediğiniz yapılandırma ayrıntılarını (bağlantı noktası numarası, kapsayıcı adı vb.) ayarlayın
    • Konteyneri başlatmak için Run düğmesine tıklayın
  3. LibreChat için SearXNG yapılandırması

    • Docker Desktop'ta Files sekmesine gidin
    • /etc/searxng/settings.yaml dosyasına gidin
    • Dosya düzenleyiciyi aç
    • formats bölümüne gidin
    • LibreChat'in örneğinizle iletişim kurabilmesi için kabul edilebilir bir format olarak json ekleyin
    • Dosyayı kaydet
  4. Kapsayıcıyı yeniden başlatın

    • Değişikliklerin geçerli olması için konteyneri yeniden başlatın

Video Rehberi:

Süreci baştan sona yaklaşık bir dakika içinde anlatan rehber videoyu aşağıda bulabilirsiniz:

SearXNG Docker kurulum kılavuzu

Not: Bu örnekte, örnek URL'si http://localhost:55011 şeklindedir (bağlantı noktası numarası, videonun sol üst köşesindeki konteyner adının sonunda bulunabilir)

LibreChat'i SearXNG kullanacak şekilde yapılandırma

SearXNG'yi LibreChat içinde arayüz üzerinden veya librechat.yaml aracılığıyla yapılandırabilirsiniz.

UI Yapılandırması

  1. Sohbet giriş çubuğundaki araçlar açılır menüsünü açın Araçlar yapılandırma düğmesi

  2. Web Search yanındaki dişli simgesine tıklayın Tools configuration section

  3. Arama Sağlayıcısı açılır menüsünden SearXNG'yi seçin SearXNG açılır menü seçimi

  4. Yapılandırma ayrıntılarınızı (örneğin instance URL, scraper türü vb.) girin ve kaydet'e tıklayın Web araması yapılandırmasını kaydet

  5. Araçlar açılır menüsündeki Web Search seçeneğine tıklayın Sohbet arayüzündeki Web search rozeti

  6. Web Arama rozeti artık etkinleştirilmiş olmalıdır, bu da sorgularınızın artık web arama işlevini kullanabileceği anlamına gelir Web arama rozeti onayı

Bu rehber nasıl?