Meilisearch
Configura Meilisearch per abilitare la ricerca nelle conversazioni in LibreChat
Meilisearch è un motore di ricerca open-source che alimenta la ricerca delle conversazioni di LibreChat, aggiungendo la ricerca full-text, la tolleranza agli errori di battitura e risultati istantanei tra le conversazioni passate. Per una panoramica delle funzionalità, consulta Search in LibreChat.
Come si connette
LibreChat comunica con Meilisearch tramite HTTP utilizzando alcune variabili d'ambiente. La configurazione Docker fornisce Meilisearch come servizio per te. Un'installazione da sorgente punta LibreChat a un processo Meilisearch eseguito autonomamente.
Configurare Meilisearch
Il docker-compose.yml predefinito include già un servizio meilisearch, quindi devi solo abilitare la ricerca e impostare una master key nel tuo file .env.
Genera una master key. Utilizza una stringa casuale sufficientemente lunga (16 byte o più). Ad esempio:
openssl rand -base64 32Aggiungi le variabili di ricerca a .env. Il file Compose imposta MEILI_HOST sull'indirizzo del servizio interno per il container api, quindi non è necessario impostare l'host qui. Mantieni la master key identica a quella utilizzata dal servizio meilisearch.
SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_MASTER_KEY=<your_master_key>Passa la master key al servizio Meilisearch. Il servizio meilisearch incluso non legge il file .env, quindi aggiungila tramite docker-compose.override.yml. Questo mantiene sia LibreChat che Meilisearch sincronizzati sull'utilizzo della stessa chiave.
services:
meilisearch:
environment:
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}Vedi Docker Override per sapere come vengono uniti i file di override.
Avvia lo stack. Compose unisce automaticamente l'override e avvia Meilisearch insieme a LibreChat.
docker compose up -dMantieni la porta interna
I container raggiungono Meilisearch tramite la rete interna Docker, quindi non è necessario pubblicare la porta 7700 sull'host. Esporla pubblicamente può rendere vulnerabili i tuoi dati di ricerca.
Quando esegui LibreChat dal codice sorgente, avvia il binario di Meilisearch come processo separato e punta LibreChat verso di esso.
Scarica Meilisearch. Ottieni l'ultima versione per il tuo sistema operativo dalla pagina delle release di Meilisearch, ad esempio meilisearch-linux-amd64.tar.gz (Linux), meilisearch-macos-amd64 (macOS) o meilisearch-windows-amd64.zip (Windows). Estrailo in una directory a tua scelta. Per le installazioni tramite gestore di pacchetti, consulta la guida all'installazione di Meilisearch.
Rendi il binario eseguibile (Linux/macOS). Dalla directory in cui lo hai estratto:
chmod +x meilisearchGenera una master key. Meilisearch può generarne una per te:
./meilisearch --generate-master-keyCopia la chiave generata; la riutilizzerai nei passaggi successivi.
Avvia Meilisearch. Eseguilo con la tua master key. È in ascolto sulla porta 7700 per impostazione predefinita.
./meilisearch --master-key=<your_master_key>Aggiungi le variabili di ricerca a .env. Punta MEILI_HOST al processo Meilisearch e utilizza la stessa master key impostata in precedenza.
SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_HOST=http://localhost:7700
MEILI_MASTER_KEY=<your_master_key>Avvia LibreChat. Avvia o riavvia l'app affinché rilevi la nuova configurazione.
npm run backendMantieni Meilisearch in esecuzione
La ricerca nelle conversazioni funziona solo mentre Meilisearch è in esecuzione. Eseguilo come servizio gestito o container in modo che rimanga attivo dopo i riavvii.
Una volta configurato, LibreChat indicizza le conversazioni e i messaggi in Meilisearch e la barra di ricerca restituisce risultati full-text con tolleranza agli errori di battitura.
Variabili d'ambiente
| Variabile | Descrizione |
|---|---|
SEARCH | Abilita la funzionalità di ricerca delle conversazioni. Impostare su true. |
MEILI_HOST | URL tramite cui LibreChat raggiunge Meilisearch. In Docker è http://meilisearch:7700 (impostato da Compose); da sorgente è solitamente http://localhost:7700. |
MEILI_MASTER_KEY | Segreto condiviso utilizzato per l'autenticazione con Meilisearch. Deve corrispondere alla chiave con cui viene avviato Meilisearch. |
MEILI_NO_ANALYTICS | Disabilita la telemetria anonima di Meilisearch. Impostare su true. |
MEILI_NO_SYNC | Vedi configurazioni multi-nodo. |
Disabilitare la sincronizzazione in una configurazione multi-nodo
Se esegui LibreChat come cluster di nodi o distribuzione multi-nodo, imposta MEILI_NO_SYNC su true in modo che solo un'istanza gestisca l'indicizzazione. Ciò previene la sincronizzazione ridondante dei documenti del database tra le istanze e l'inutile utilizzo di risorse che ne deriva.
MEILI_NO_SYNC=trueRipristino Sincronizzazione
Se i dati di Meilisearch vengono eliminati o danneggiati, o se LibreChat considera tutto sincronizzato quando non lo è (ad esempio dopo l'aggiornamento di Meilisearch o l'eliminazione dei suoi file di dati), utilizza lo script di ripristino per forzare una risincronizzazione completa. Questo reimposta i flag di sincronizzazione in MongoDB, il che spinge LibreChat a reindicizzare tutte le conversazioni e i messaggi al successivo avvio o controllo di sincronizzazione.
Esegui lo script di reset. Utilizza il comando corrispondente alla tua configurazione.
# 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"Riavvia LibreChat. La risincronizzazione inizia una volta riavviata l'app.
Lo script reimposta il flag _meiliIndex su false per tutti i messaggi e le conversazioni in MongoDB, quindi riporta quanti documenti sono stati reimpostati e quanti rimangono da sincronizzare.
Quando utilizzarlo:
- Dopo aver eliminato i file di dati di Meilisearch
- Quando si aggiorna Meilisearch a una versione che richiede la reindicizzazione
- Quando LibreChat mostra le conversazioni come completamente sincronizzate ma mancano dati in Meilisearch
- Dopo aver ripristinato un backup di MongoDB senza i dati Meilisearch corrispondenti
Opzioni di sincronizzazione avanzate. Dopo il ripristino, controlla il comportamento della sincronizzazione con queste variabili d'ambiente:
| Variabile | Predefinito | Descrizione |
|---|---|---|
MEILI_SYNC_BATCH_SIZE | 100 | Numero di documenti sincronizzati per batch. |
MEILI_SYNC_DELAY_MS | 100 | Ritardo tra i batch di sincronizzazione, in millisecondi. |
MEILI_SYNC_THRESHOLD | 1000 | Numero minimo di documenti non sincronizzati prima che venga attivata una sincronizzazione. |
Com’è questa guida?