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

Meilisearch

LibreChat'te sohbet aramasını etkinleştirmek için Meilisearch'ü kurun

Meilisearch, LibreChat'in konuşma arama özelliğini destekleyen, geçmiş konuşmalar genelinde tam metin arama, yazım hatası toleransı ve anlık sonuçlar ekleyen açık kaynaklı bir arama motorudur. Özelliklere genel bir bakış için Search in LibreChat bölümüne bakın.

Nasıl bağlanır

LibreChat, birkaç ortam değişkeni kullanarak HTTP üzerinden Meilisearch ile iletişim kurar. Docker kurulumu, Meilisearch'ü sizin için bir servis olarak sunar. Kaynaktan kurulum ise LibreChat'i kendi çalıştırdığınız bir Meilisearch sürecine yönlendirir.

Meilisearch'ü Yapılandırın

Varsayılan docker-compose.yml zaten bir meilisearch servisi içerir, bu nedenle yalnızca aramayı etkinleştirmeniz ve .env dosyanızda bir ana anahtar (master key) ayarlamanız yeterlidir.

Bir ana anahtar (master key) oluşturun. Yeterince uzun, rastgele bir dize (16 bayt veya daha fazla) kullanın. Örneğin:

openssl rand -base64 32

Arama değişkenlerini .env dosyasına ekleyin. Compose dosyası, MEILI_HOST değerini api kapsayıcısı için dahili hizmet adresine ayarladığından, ana bilgisayarı (host) burada ayarlamanıza gerek yoktur. Ana anahtarı (master key), meilisearch hizmetinin kullandığıyla aynı tutun.

SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_MASTER_KEY=<your_master_key>

Ana anahtarı (master key) Meilisearch hizmetine iletin. Paketlenmiş meilisearch hizmeti .env dosyasını okumaz, bu yüzden bunu docker-compose.override.yml aracılığıyla ekleyin. Bu, hem LibreChat hem de Meilisearch'ün aynı anahtarı kullanmasını sağlar.

services:
  meilisearch:
    environment:
      - MEILI_MASTER_KEY=${MEILI_MASTER_KEY}

Dosyaların nasıl birleştirildiğini öğrenmek için Docker Override bölümüne bakın.

Yığını başlatın. Compose, geçersiz kılmayı (override) otomatik olarak birleştirir ve Meilisearch'ü LibreChat ile birlikte başlatır.

docker compose up -d

Bağlantı noktasını dahili tutun

Kapsayıcılar, Meilisearch'e dahili Docker ağı üzerinden ulaşır, bu nedenle 7700 numaralı bağlantı noktasını ana makineye açmanıza gerek yoktur. Bunu herkese açık hale getirmek, arama verilerinizi savunmasız bırakabilir.

LibreChat'i kaynaktan çalıştırdığınızda, Meilisearch ikili dosyasını ayrı bir işlem olarak çalıştırın ve LibreChat'i ona yönlendirin.

Meilisearch'i indirin. İşletim sisteminiz için en son sürümü Meilisearch releases page sayfasından edinin; örneğin meilisearch-linux-amd64.tar.gz (Linux), meilisearch-macos-amd64 (macOS) veya meilisearch-windows-amd64.zip (Windows). Dosyayı seçtiğiniz bir dizine çıkartın. Paket yöneticisi ile kurulumlar için Meilisearch installation guide sayfasına bakın.

İkili dosyayı çalıştırılabilir yapın (Linux/macOS). Çıkardığınız dizinden:

chmod +x meilisearch

Bir ana anahtar oluşturun. Meilisearch sizin için bir tane oluşturabilir:

./meilisearch --generate-master-key

Oluşturulan anahtarı kopyalayın; sonraki adımlarda tekrar kullanacaksınız.

Meilisearch'ü başlatın. Ana anahtarınızla (master key) çalıştırın. Varsayılan olarak 7700 numaralı portu dinler.

./meilisearch --master-key=<your_master_key>

Arama değişkenlerini .env dosyasına ekleyin. MEILI_HOST değerini Meilisearch sürecine yönlendirin ve yukarıda belirlediğiniz ana anahtarı (master key) kullanın.

SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_HOST=http://localhost:7700
MEILI_MASTER_KEY=<your_master_key>

LibreChat'i başlatın. Yeni yapılandırmayı algılaması için uygulamayı başlatın veya yeniden başlatın.

npm run backend

Meilisearch'ü çalışır durumda tut

Sohbet arama özelliği yalnızca Meilisearch çalışırken işlevseldir. Yeniden başlatmalar sonrasında da aktif kalması için onu yönetilen bir hizmet veya konteyner olarak çalıştırın.

Yapılandırıldıktan sonra LibreChat, konuşmaları ve mesajları Meilisearch içinde indeksler ve arama çubuğu, yazım hatası toleransı ile tam metin sonuçları döndürür.

Ortam Değişkenleri

DeğişkenAçıklama
SEARCHSohbet arama özelliğini etkinleştirir. true olarak ayarlayın.
MEILI_HOSTLibreChat'in Meilisearch'e eriştiği URL. Docker içinde bu http://meilisearch:7700 şeklindedir (Compose tarafından ayarlanır); kaynaktan kurulumda genellikle http://localhost:7700 şeklindedir.
MEILI_MASTER_KEYMeilisearch ile kimlik doğrulaması yapmak için kullanılan paylaşılan gizli anahtar. Meilisearch'in başlatıldığı anahtarla eşleşmelidir.
MEILI_NO_ANALYTICSMeilisearch'in anonim telemetrisini devre dışı bırakır. true olarak ayarlayın.
MEILI_NO_SYNCBkz. çoklu düğüm kurulumları.

Çok düğümlü (Multi-node) Kurulumda Senkronizasyonu Devre Dışı Bırakma

LibreChat'i bir node kümesi veya çoklu node dağıtımı olarak çalıştırıyorsanız, indekslemeyi yalnızca bir örneğin yönetmesi için MEILI_NO_SYNC değerini true olarak ayarlayın. Bu, veritabanı belgelerinin örnekler arasında gereksiz yere senkronize edilmesini ve bunun getirdiği gereksiz kaynak kullanımını önler.

MEILI_NO_SYNC=true

Senkronizasyonu Sıfırla

Meilisearch verileri silinirse veya bozulursa ya da LibreChat her şeyi senkronize edilmiş gibi algılarsa (örneğin Meilisearch yükseltildikten veya veri dosyaları silindikten sonra), tam bir yeniden senkronizasyonu zorlamak için sıfırlama betiğini kullanın. Bu betik, MongoDB'deki senkronizasyon bayraklarını sıfırlar ve bu da LibreChat'in bir sonraki başlatmada veya senkronizasyon kontrolünde tüm konuşmaları ve mesajları yeniden indekslemesini tetikler.

Sıfırlama betiğini çalıştırın. Kurulumunuzla eşleşen komutu kullanın.

# Local development
npm run reset-meili-sync

# Docker (default setup)
docker compose exec api npm run reset-meili-sync

# Docker (deployment setup)
docker exec -it LibreChat-API /bin/sh -c "cd .. && npm run reset-meili-sync"

LibreChat'i yeniden başlatın. Uygulama yeniden başladığında yeniden senkronizasyon başlar.

Betik, MongoDB'deki tüm mesajlar ve konuşmalar için _meiliIndex bayrağını false değerine sıfırlar, ardından kaç belgenin sıfırlandığını ve kaçının senkronize edilmeyi beklediğini raporlar.

Ne zaman kullanılır:

  • Meilisearch veri dosyalarını sildikten sonra
  • Meilisearch'i yeniden indeksleme gerektiren bir sürüme yükseltirken
  • LibreChat konuşmaları tamamen eşitlenmiş olarak gösterdiğinde ancak Meilisearch'te veri eksik olduğunda
  • Eşleşen Meilisearch verileri olmadan bir MongoDB yedeğini geri yükledikten sonra

Gelişmiş senkronizasyon seçenekleri. Sıfırlama işleminden sonra, senkronizasyon davranışını şu ortam değişkenleriyle kontrol edebilirsiniz:

DeğişkenVarsayılanAçıklama
MEILI_SYNC_BATCH_SIZE100Toplu iş başına senkronize edilen belge sayısı.
MEILI_SYNC_DELAY_MS100Toplu senkronizasyon işlemleri arasındaki gecikme (milisaniye cinsinden).
MEILI_SYNC_THRESHOLD1000Senkronizasyonun tetiklenmesi için gereken minimum senkronize edilmemiş belge sayısı.

Bu rehber nasıl?