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

Meilisearch

Configurer Meilisearch pour activer la recherche de conversations dans LibreChat

Meilisearch est un moteur de recherche open-source qui alimente la recherche de conversations de LibreChat, ajoutant une recherche en texte intégral, une tolérance aux fautes de frappe et des résultats instantanés dans les conversations passées. Pour un aperçu des fonctionnalités, consultez Recherche dans LibreChat.

Comment cela se connecte

LibreChat communique avec Meilisearch via HTTP en utilisant quelques variables d'environnement. La configuration Docker fournit Meilisearch en tant que service pour vous. Une installation Ă  partir de la source pointe LibreChat vers un processus Meilisearch que vous exĂ©cutez vous-mĂȘme.

Configurer Meilisearch

Le docker-compose.yml par défaut inclut déjà un service meilisearch, vous n'avez donc qu'à activer la recherche et définir une clé maßtresse dans votre fichier .env.

Générez une clé maßtresse. Utilisez n'importe quelle chaßne aléatoire suffisamment longue (16 octets ou plus). Par exemple :

openssl rand -base64 32

Ajoutez les variables de recherche à .env. Le fichier Compose définit MEILI_HOST sur l'adresse de service interne pour le conteneur api, vous n'avez donc pas besoin de définir l'hÎte ici. Gardez la clé maßtresse identique à celle utilisée par le service meilisearch.

SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_MASTER_KEY=<your_master_key>

Transmettez la clĂ© maĂźtresse au service Meilisearch. Le service meilisearch intĂ©grĂ© ne lit pas le fichier .env, vous devez donc l'ajouter via docker-compose.override.yml. Cela permet Ă  LibreChat et Ă  Meilisearch d'utiliser la mĂȘme clĂ©.

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

Consultez Docker Override pour savoir comment les fichiers de remplacement sont fusionnés.

Démarrez la stack. Compose fusionne automatiquement la surcharge et démarre Meilisearch aux cÎtés de LibreChat.

docker compose up -d

Garder le port interne

Les conteneurs accÚdent à Meilisearch via le réseau Docker interne, il n'est donc pas nécessaire de publier le port 7700 sur l'hÎte. L'exposer publiquement peut rendre vos données de recherche vulnérables.

Une fois configuré, LibreChat indexe les conversations et les messages dans Meilisearch, et la barre de recherche renvoie des résultats en texte intégral avec une tolérance aux fautes de frappe.

Variables d'environnement

VariableDescription
SEARCHActive la fonctionnalité de recherche de conversations. Définir sur true.
MEILI_HOSTURL oĂč LibreChat accĂšde Ă  Meilisearch. Dans Docker, il s'agit de http://meilisearch:7700 (dĂ©fini par Compose) ; depuis la source, il s'agit gĂ©nĂ©ralement de http://localhost:7700.
MEILI_MASTER_KEYSecret partagé utilisé pour l'authentification auprÚs de Meilisearch. Doit correspondre à la clé avec laquelle Meilisearch démarre.
MEILI_NO_ANALYTICSDésactive la télémétrie anonyme de Meilisearch. Définir sur true.
MEILI_NO_SYNCVoir configurations multi-nƓuds.

DĂ©sactiver la synchronisation dans une configuration multi-nƓuds

Si vous exĂ©cutez LibreChat en tant que cluster de nƓuds ou dĂ©ploiement multi-nƓuds, dĂ©finissez MEILI_NO_SYNC sur true afin qu'une seule instance gĂšre l'indexation. Cela Ă©vite la synchronisation redondante des documents de la base de donnĂ©es entre les instances et l'utilisation inutile des ressources qui en dĂ©coule.

MEILI_NO_SYNC=true

Réinitialiser la synchronisation

Si les données de Meilisearch sont supprimées ou corrompues, ou si LibreChat considÚre que tout est synchronisé alors que ce n'est pas le cas (par exemple aprÚs une mise à jour de Meilisearch ou la suppression de ses fichiers de données), utilisez le script de réinitialisation pour forcer une resynchronisation complÚte. Il réinitialise les indicateurs de synchronisation dans MongoDB, ce qui déclenche la réindexation par LibreChat de toutes les conversations et de tous les messages lors du prochain démarrage ou de la prochaine vérification de synchronisation.

Exécutez le script de réinitialisation. Utilisez la commande qui correspond à votre configuration.

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

Redémarrez LibreChat. La resynchronisation commence une fois que l'application a redémarré.

Le script réinitialise l'indicateur _meiliIndex à false pour tous les messages et conversations dans MongoDB, puis rapporte combien de documents ont été réinitialisés et combien il en reste à synchroniser.

Quand l'utiliser :

  • AprĂšs avoir supprimĂ© les fichiers de donnĂ©es Meilisearch
  • Lors de la mise Ă  niveau de Meilisearch vers une version nĂ©cessitant une rĂ©indexation
  • Lorsque LibreChat indique que les conversations sont entiĂšrement synchronisĂ©es mais que des donnĂ©es manquent dans Meilisearch
  • AprĂšs avoir restaurĂ© une sauvegarde MongoDB sans faire correspondre les donnĂ©es Meilisearch

Options de synchronisation avancées. AprÚs la réinitialisation, contrÎlez le comportement de synchronisation avec ces variables d'environnement :

VariableDefaultDescription
MEILI_SYNC_BATCH_SIZE100Nombre de documents synchronisés par lot.
MEILI_SYNC_DELAY_MS100Délai entre les lots de synchronisation, en millisecondes.
MEILI_SYNC_THRESHOLD1000Nombre minimum de documents non synchronisés avant qu'une synchronisation ne soit déclenchée.

Que pensez-vous de ce guide ?