Meilisearch
Siapkan Meilisearch untuk mengaktifkan pencarian percakapan di LibreChat
Meilisearch adalah mesin pencari sumber terbuka yang mendukung fitur pencarian percakapan di LibreChat, menambahkan pencarian teks lengkap, toleransi kesalahan ketik, dan hasil instan di seluruh percakapan sebelumnya. Untuk gambaran umum fitur, lihat Search in LibreChat.
Cara menghubungkannya
LibreChat berkomunikasi dengan Meilisearch melalui HTTP menggunakan beberapa environment variables. Pengaturan Docker menyertakan Meilisearch sebagai layanan untuk Anda. Instalasi dari sumber (source install) mengarahkan LibreChat ke proses Meilisearch yang Anda jalankan sendiri.
Konfigurasi Meilisearch
docker-compose.yml default sudah menyertakan layanan meilisearch, jadi Anda hanya perlu mengaktifkan pencarian dan mengatur master key di file .env Anda.
Buat master key. Gunakan string acak apa pun yang cukup panjang (16 byte atau lebih). Sebagai contoh:
openssl rand -base64 32Tambahkan variabel pencarian ke .env. File Compose mengatur MEILI_HOST ke alamat layanan internal untuk kontainer api, jadi Anda tidak perlu mengatur host di sini. Pastikan master key sama dengan yang digunakan oleh layanan meilisearch.
SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_MASTER_KEY=<your_master_key>Teruskan master key ke layanan Meilisearch. Layanan meilisearch yang dibundel tidak membaca .env, jadi tambahkan melalui docker-compose.override.yml. Hal ini menjaga agar LibreChat dan Meilisearch tetap menggunakan kunci yang sama.
services:
meilisearch:
environment:
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}Lihat Docker Override untuk mengetahui bagaimana file override digabungkan.
Jalankan stack. Compose menggabungkan override secara otomatis dan menjalankan Meilisearch bersamaan dengan LibreChat.
docker compose up -dJaga port tetap internal
Kontainer menjangkau Meilisearch melalui jaringan internal Docker, jadi tidak perlu memublikasikan port 7700 ke host. Mengeksposnya secara publik dapat membuat data pencarian Anda rentan.
Saat Anda menjalankan LibreChat dari sumber, jalankan biner Meilisearch sebagai proses terpisah dan arahkan LibreChat ke sana.
Unduh Meilisearch. Dapatkan rilis terbaru untuk sistem operasi Anda dari halaman rilis Meilisearch, contohnya meilisearch-linux-amd64.tar.gz (Linux), meilisearch-macos-amd64 (macOS), atau meilisearch-windows-amd64.zip (Windows). Ekstrak ke direktori pilihan Anda. Untuk instalasi melalui manajer paket, lihat panduan instalasi Meilisearch.
Jadikan biner tersebut dapat dieksekusi (Linux/macOS). Dari direktori tempat Anda mengekstraknya:
chmod +x meilisearchHasilkan master key. Meilisearch dapat menghasilkannya untuk Anda:
./meilisearch --generate-master-keySalin kunci yang telah dibuat; Anda akan menggunakannya kembali pada langkah-langkah berikutnya.
Jalankan Meilisearch. Jalankan dengan master key Anda. Secara default, layanan ini berjalan pada port 7700.
./meilisearch --master-key=<your_master_key>Tambahkan variabel pencarian ke .env. Arahkan MEILI_HOST ke proses Meilisearch dan gunakan master key yang sama dengan yang Anda tetapkan di atas.
SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_HOST=http://localhost:7700
MEILI_MASTER_KEY=<your_master_key>Mulai LibreChat. Mulai atau mulai ulang aplikasi agar konfigurasi baru dapat dimuat.
npm run backendJaga agar Meilisearch tetap berjalan
Pencarian percakapan hanya berfungsi saat Meilisearch berjalan. Jalankan sebagai layanan terkelola atau kontainer agar tetap aktif setelah dimulai ulang.
Setelah dikonfigurasi, LibreChat mengindeks percakapan dan pesan ke dalam Meilisearch, dan bilah pencarian akan menampilkan hasil teks lengkap dengan toleransi kesalahan ketik.
Environment Variables
| Variabel | Deskripsi |
|---|---|
SEARCH | Mengaktifkan fitur pencarian percakapan. Atur ke true. |
MEILI_HOST | URL tempat LibreChat mengakses Meilisearch. Di Docker, ini adalah http://meilisearch:7700 (diatur oleh Compose); dari sumber, biasanya http://localhost:7700. |
MEILI_MASTER_KEY | Kunci rahasia bersama yang digunakan untuk autentikasi dengan Meilisearch. Harus sama dengan kunci yang digunakan saat Meilisearch dimulai. |
MEILI_NO_ANALYTICS | Menonaktifkan telemetri anonim Meilisearch. Atur ke true. |
MEILI_NO_SYNC | Lihat pengaturan multi-node. |
Nonaktifkan Sinkronisasi dalam Pengaturan Multi-node
Jika Anda menjalankan LibreChat sebagai klaster node atau penyebaran multi-node, atur MEILI_NO_SYNC ke true agar hanya satu instans yang menangani pengindeksan. Hal ini mencegah sinkronisasi dokumen basis data yang berlebihan di seluruh instans dan penggunaan sumber daya yang tidak perlu akibat hal tersebut.
MEILI_NO_SYNC=trueAtur Ulang Sinkronisasi
Jika data Meilisearch terhapus atau rusak, atau jika LibreChat menganggap semuanya telah tersinkronisasi padahal belum (misalnya setelah meningkatkan versi Meilisearch atau menghapus file datanya), gunakan skrip reset untuk memaksa sinkronisasi ulang penuh. Skrip ini akan mereset flag sinkronisasi di MongoDB, yang memicu LibreChat untuk mengindeks ulang semua percakapan dan pesan pada saat startup berikutnya atau pemeriksaan sinkronisasi.
Jalankan skrip reset. Gunakan perintah yang sesuai dengan pengaturan Anda.
# 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"Restart LibreChat. Sinkronisasi ulang dimulai setelah aplikasi dimulai ulang.
Skrip ini mengatur ulang flag _meiliIndex menjadi false untuk semua pesan dan percakapan di MongoDB, kemudian melaporkan berapa banyak dokumen yang telah diatur ulang dan berapa banyak yang masih perlu disinkronkan.
Kapan menggunakannya:
- Setelah menghapus file data Meilisearch
- Saat meningkatkan versi Meilisearch ke versi yang memerlukan pengindeksan ulang
- Saat LibreChat menampilkan percakapan sebagai tersinkronisasi penuh tetapi Meilisearch kehilangan data
- Setelah memulihkan cadangan MongoDB tanpa data Meilisearch yang cocok
Opsi sinkronisasi tingkat lanjut. Setelah mengatur ulang, kendalikan perilaku sinkronisasi dengan variabel lingkungan berikut:
| Variabel | Default | Deskripsi |
|---|---|---|
MEILI_SYNC_BATCH_SIZE | 100 | Jumlah dokumen yang disinkronkan per batch. |
MEILI_SYNC_DELAY_MS | 100 | Jeda antar batch sinkronisasi, dalam milidetik. |
MEILI_SYNC_THRESHOLD | 1000 | Jumlah minimum dokumen yang belum disinkronkan sebelum sinkronisasi dipicu. |
Bagaimana panduan ini?