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:
- Arama Sağlayıcıları: İlk web aramasını gerçekleştiren hizmetler
- Scrapers: Web sayfalarından içerik çıkaran servisler
- 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
| Key | Type | Description | Example |
|---|---|---|---|
| searchProvider | String | Hangi arama sağlayıcısının kullanılacağını belirtir. | Options: "serper", "searxng", "tavily" |
serperApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| serperApiKey | String | Serper 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
| Key | Type | Description | Example |
|---|---|---|---|
| searxngInstanceUrl | String | SearXNG ö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
| Key | Type | Description | Example |
|---|---|---|---|
| searxngApiKey | String | SearXNG 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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyApiKey | String | Tavily 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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchUrl | String | Ö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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyExtractUrl | String | Ö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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilySearchOptions | Object | Tavily arama için yapılandırma seçenekleri. |
Alt anahtarlar:
| Key | Type | Description | Example |
|---|---|---|---|
| searchDepth | String | Alaka 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" |
| maxResults | Number | Döndürülecek maksimum arama sonucu sayısı. | Range: 1-20. Default: 5 |
| topic | String | Aramanı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" |
| includeImages | Boolean | Yanı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 |
| includeAnswer | Boolean or String | LLM 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 |
| includeRawContent | Boolean or String | Temizlenmiş 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 |
| includeDomains | Array of Strings | Aramayı belirli alan adlarıyla sınırlandırın. Maksimum 300 alan adı. | |
| excludeDomains | Array of Strings | Sonuçlardan belirli alan adlarını hariç tutun. Maksimum 150 alan adı. | |
| timeRange | String | Yayınlanma veya son güncelleme tarihine dayalı zaman aralığı filtresi. | Options: "day", "week", "month", "year" |
| includeImageDescriptions | Boolean | includeImages true olduğunda, her görsel için açıklayıcı bir metin de ekleyin. | Default: false |
| includeFavicon | Boolean | Her arama sonucu için favicon URL'sini dahil et. | Default: false |
| chunksPerSource | Number | Kaynak başına maksimum ilgili içerik parçası sayısı. Yalnızca searchDepth "advanced" olarak ayarlandığında kullanılabilir. | Range: 1-3. Default: 3 |
| safeSearch | Boolean | Tavily 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 |
| timeout | Number | Milisaniye 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
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiKey | String | Firecrawl 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
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlApiUrl | String | Firecrawl 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
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlVersion | String | Firecrawl API sürümü (v0 veya v1) için ortam değişkeni adı. | ${FIRECRAWL_VERSION} |
scraperProvider
| Key | Type | Description | Example |
|---|---|---|---|
| scraperProvider | String | Hangi scraper servisinin kullanılacağını belirtir. | Options: "firecrawl", "serper", "tavily" |
firecrawlOptions
| Key | Type | Description | Example |
|---|---|---|---|
| firecrawlOptions | Object | Firecrawl kazıyıcı için gelişmiş yapılandırma seçenekleri. |
Alt anahtarlar:
formats
| Key | Type | Description | Example |
|---|---|---|---|
| formats | Array of Strings | Çıktıya dahil edilecek formatlar. |
includeTags
| Key | Type | Description | Example |
|---|---|---|---|
| includeTags | Array of Strings | Çıktıya dahil edilecek etiketler. |
excludeTags
| Key | Type | Description | Example |
|---|---|---|---|
| excludeTags | Array of Strings | Çıktıdan hariç tutulacak etiketler. |
headers
| Key | Type | Description | Example |
|---|---|---|---|
| headers | Object | İstekle birlikte gönderilecek başlıklar. Çerezleri, user-agent bilgisini vb. göndermek için kullanılabilir. |
waitFor
| Key | Type | Description | Example |
|---|---|---|---|
| waitFor | Number | İçeriği getirmeden önce milisaniye cinsinden bir gecikme belirterek sayfanın yüklenmesi için yeterli zaman tanıyın. |
timeout
| Key | Type | Description | Example |
|---|---|---|---|
| timeout | Integer | Kazıma isteği için milisaniye cinsinden zaman aşımı süresi. Negatif olmayan bir tam sayı olmalıdır. | Default: 7500 |
maxAge
| Key | Type | Description | Example |
|---|---|---|---|
| maxAge | Number | Sayfa 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
| Key | Type | Description | Example |
|---|---|---|---|
| mobile | Boolean | Mobil cihazdan kazıma işlemini taklit et. |
skipTlsVerification
| Key | Type | Description | Example |
|---|---|---|---|
| skipTlsVerification | Boolean | İstekleri yaparken TLS sertifika doğrulamasını atla. |
blockAds
| Key | Type | Description | Example |
|---|---|---|---|
| blockAds | Boolean | Reklam engellemeyi ve çerez açılır pencere engellemeyi etkinleştirir. |
removeBase64Images
| Key | Type | Description | Example |
|---|---|---|---|
| removeBase64Images | Boolean | Çı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
| Key | Type | Description | Example |
|---|---|---|---|
| parsePDF | Boolean | PDF dosyalarının tarama sırasında nasıl işleneceğini kontrol eder. |
storeInCache
| Key | Type | Description | Example |
|---|---|---|---|
| storeInCache | Boolean | True 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
| Key | Type | Description | Example |
|---|---|---|---|
| zeroDataRetention | Boolean | Eğer true olarak ayarlanırsa, bu tarama için sıfır veri saklama etkinleştirilecektir (Firecrawl üzerinde önceden kurulum gerektirir). |
location
| Key | Type | Description | Example |
|---|---|---|---|
| location | Object | Kazıma işlemleri için coğrafi konum ve dil ayarları. |
onlyMainContent
| Key | Type | Description | Example |
|---|---|---|---|
| onlyMainContent | Boolean | Sayfanın yalnızca ana içeriğini döndürün; üstbilgiler, gezinme çubukları, altbilgiler vb. hariç tutulacaktır. |
changeTrackingOptions
| Key | Type | Description | Example |
|---|---|---|---|
| changeTrackingOptions | Object | Kazı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
| Key | Type | Description | Example |
|---|---|---|---|
| tavilyScraperOptions | Object | Tavily Extract (kazıyıcı) için yapılandırma seçenekleri. |
Alt anahtarlar:
| Key | Type | Description | Example |
|---|---|---|---|
| extractDepth | String | Çı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" |
| includeImages | Boolean | Yanıta URL'lerden çıkarılan görsellerin bir listesini dahil edin. | Default: false |
| includeFavicon | Boolean | Çıkarılan her sonuç için favicon URL'sini dahil et. | Default: false |
| format | String | Ayı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" |
| timeout | Number | Milisaniye 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: basicNot: Tavily API seçenekleri hakkında ayrıntılı bilgi için Tavily API Documentation sayfasına bakın.
Rerankers
jinaApiKey
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiKey | String | Jina 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
| Key | Type | Description | Example |
|---|---|---|---|
| jinaApiUrl | String | Jina 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
| Key | Type | Description | Example |
|---|---|---|---|
| cohereApiKey | String | Cohere 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
| Key | Type | Description | Example |
|---|---|---|---|
| rerankerType | String | Hangi reranker servisinin kullanılacağını belirtir. Yeniden sıralamayı (reranking) atlamak için "none" olarak ayarlayın. | Options: "jina", "cohere", "none" |
Genel Ayarlar
scraperTimeout
| Key | Type | Description | Example |
|---|---|---|---|
| scraperTimeout | Integer | Kazıyıcı istekleri için milisaniye cinsinden zaman aşımı süresi. Negatif olmayan bir tam sayı olmalıdır. | Default: 7500 |
safeSearch
| Key | Type | Description | Example |
|---|---|---|---|
| safeSearch | Number | Gü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:
- YAML yapılandırmasında belirtilen ortam değişkenlerini ayarlayın
- 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.safeSearchdeğerini yalnızca Tavily hesabınızsafe_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ı
-
Resmi SearXNG imajını arayın
- Docker Desktop'ı açın
- Görseller (Images) sekmesinde
searxng/searxngiç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
-
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
-
LibreChat için SearXNG yapılandırması
- Docker Desktop'ta
Filessekmesine gidin /etc/searxng/settings.yamldosyasına gidin- Dosya düzenleyiciyi aç
formatsbölümüne gidin- LibreChat'in örneğinizle iletişim kurabilmesi için kabul edilebilir bir format olarak
jsonekleyin - Dosyayı kaydet
- Docker Desktop'ta
-
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:
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ı
-
Sohbet giriş çubuğundaki araçlar açılır menüsünü açın

-
Web Search yanındaki dişli simgesine tıklayın

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

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

-
Araçlar açılır menüsündeki Web Search seçeneğine tıklayın

-
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

Bu rehber nasıl?