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 :
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.
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Ă©.
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.
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
| Variable | Description |
|---|---|
SEARCH | Active la fonctionnalité de recherche de conversations. Définir sur true. |
MEILI_HOST | URL 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_KEY | Secret partagé utilisé pour l'authentification auprÚs de Meilisearch. Doit correspondre à la clé avec laquelle Meilisearch démarre. |
MEILI_NO_ANALYTICS | Désactive la télémétrie anonyme de Meilisearch. Définir sur true. |
MEILI_NO_SYNC | Voir 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.
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.
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 :
| Variable | Default | Description |
|---|---|---|
MEILI_SYNC_BATCH_SIZE | 100 | Nombre de documents synchronisés par lot. |
MEILI_SYNC_DELAY_MS | 100 | Délai entre les lots de synchronisation, en millisecondes. |
MEILI_SYNC_THRESHOLD | 1000 | Nombre minimum de documents non synchronisés avant qu'une synchronisation ne soit déclenchée. |
Que pensez-vous de ce guide ?