Meilisearch
Configurar Meilisearch para habilitar la búsqueda de conversaciones en LibreChat
Meilisearch es un motor de búsqueda de código abierto que potencia la búsqueda de conversaciones de LibreChat, añadiendo búsqueda de texto completo, tolerancia a errores tipográficos y resultados instantáneos en todas las conversaciones pasadas. Para obtener una descripción general de la función, consulta Search in LibreChat.
Cómo se conecta
LibreChat se comunica con Meilisearch a través de HTTP utilizando algunas variables de entorno. La configuración de Docker incluye Meilisearch como un servicio para usted. Una instalación desde el código fuente apunta LibreChat a un proceso de Meilisearch que usted mismo ejecuta.
Configurar Meilisearch
El docker-compose.yml predeterminado ya incluye un servicio de meilisearch, por lo que solo necesitas habilitar la búsqueda y establecer una clave maestra en tu archivo .env.
Genera una master key. Utiliza cualquier cadena aleatoria lo suficientemente larga (16 bytes o más). Por ejemplo:
openssl rand -base64 32Agregue las variables de búsqueda a .env. El archivo Compose establece MEILI_HOST en la dirección del servicio interno para el contenedor api, por lo que no debe configurar el host aquí. Mantenga la clave maestra idéntica a la que utiliza el servicio meilisearch.
SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_MASTER_KEY=<your_master_key>Pasa la clave maestra al servicio de Meilisearch. El servicio meilisearch incluido no lee el archivo .env, así que añádela a través de docker-compose.override.yml. Esto mantiene tanto a LibreChat como a Meilisearch utilizando la misma clave.
services:
meilisearch:
environment:
- MEILI_MASTER_KEY=${MEILI_MASTER_KEY}Consulta Docker Override para saber cómo se combinan los archivos de anulación.
Inicie la pila. Compose combina la anulación automáticamente e inicia Meilisearch junto con LibreChat.
docker compose up -dMantener el puerto interno
Los contenedores acceden a Meilisearch a través de la red interna de Docker, por lo que no es necesario publicar el puerto 7700 en el host. Exponerlo públicamente puede dejar sus datos de búsqueda vulnerables.
Cuando ejecutes LibreChat desde el código fuente, ejecuta el binario de Meilisearch como un proceso independiente y apunta LibreChat hacia él.
Descarga Meilisearch. Obtén la versión más reciente para tu sistema operativo desde la página de lanzamientos de Meilisearch, por ejemplo meilisearch-linux-amd64.tar.gz (Linux), meilisearch-macos-amd64 (macOS) o meilisearch-windows-amd64.zip (Windows). Extráelo en el directorio de tu elección. Para instalaciones mediante gestores de paquetes, consulta la guía de instalación de Meilisearch.
Haz que el binario sea ejecutable (Linux/macOS). Desde el directorio donde lo extrajiste:
chmod +x meilisearchGenera una master key. Meilisearch puede generar una por ti:
./meilisearch --generate-master-keyCopia la clave generada; la reutilizarás en los siguientes pasos.
Inicia Meilisearch. Ejecútalo con tu master key. Escucha en el puerto 7700 de forma predeterminada.
./meilisearch --master-key=<your_master_key>Agregue las variables de búsqueda a .env. Apunte MEILI_HOST al proceso de Meilisearch y utilice la misma clave maestra que configuró anteriormente.
SEARCH=true
MEILI_NO_ANALYTICS=true
MEILI_HOST=http://localhost:7700
MEILI_MASTER_KEY=<your_master_key>Inicia LibreChat. Inicia o reinicia la aplicación para que detecte la nueva configuración.
npm run backendMantener Meilisearch en ejecución
La búsqueda de conversaciones solo funciona mientras Meilisearch está en ejecución. Ejecútelo como un servicio administrado o contenedor para que permanezca activo tras los reinicios.
Una vez configurado, LibreChat indexa las conversaciones y los mensajes en Meilisearch, y la barra de búsqueda devuelve resultados de texto completo con tolerancia a errores tipográficos.
Variables de entorno
| Variable | Description |
|---|---|
SEARCH | Habilita la función de búsqueda de conversaciones. Establézcalo en true. |
MEILI_HOST | URL donde LibreChat accede a Meilisearch. En Docker es http://meilisearch:7700 (configurado por Compose); desde el código fuente suele ser http://localhost:7700. |
MEILI_MASTER_KEY | Secreto compartido utilizado para autenticarse con Meilisearch. Debe coincidir con la clave con la que se inicia Meilisearch. |
MEILI_NO_ANALYTICS | Deshabilita la telemetría anónima de Meilisearch. Establézcalo en true. |
MEILI_NO_SYNC | Ver configuraciones de múltiples nodos. |
Deshabilitar la sincronización en una configuración de múltiples nodos
Si ejecutas LibreChat como un clúster de nodos o una implementación de múltiples nodos, establece MEILI_NO_SYNC en true para que solo una instancia gestione la indexación. Esto evita la sincronización redundante de documentos de la base de datos entre instancias y el uso innecesario de recursos que esto conlleva.
MEILI_NO_SYNC=trueRestablecer sincronización
Si los datos de Meilisearch se eliminan o se corrompen, o si LibreChat trata todo como sincronizado cuando no lo está (por ejemplo, después de actualizar Meilisearch o eliminar sus archivos de datos), utilice el script de restablecimiento para forzar una resincronización completa. Esto restablece las banderas de sincronización en MongoDB, lo que hace que LibreChat vuelva a indexar todas las conversaciones y mensajes en el siguiente inicio o verificación de sincronización.
Ejecuta el script de reinicio. Usa el comando que corresponda a tu configuració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"Reinicia LibreChat. La resincronización comienza una vez que la aplicación se reinicia.
El script restablece la bandera _meiliIndex a false para todos los mensajes y conversaciones en MongoDB, luego informa cuántos documentos fueron restablecidos y cuántos quedan por sincronizar.
Cuándo usarlo:
- Después de eliminar los archivos de datos de Meilisearch
- Al actualizar Meilisearch a una versión que requiere reindexación
- Cuando LibreChat muestra las conversaciones como totalmente sincronizadas pero a Meilisearch le faltan datos
- Después de restaurar una copia de seguridad de MongoDB sin los datos correspondientes de Meilisearch
Opciones de sincronización avanzadas. Después de restablecer, controle el comportamiento de sincronización con estas variables de entorno:
| Variable | Default | Description |
|---|---|---|
MEILI_SYNC_BATCH_SIZE | 100 | Número de documentos sincronizados por lote. |
MEILI_SYNC_DELAY_MS | 100 | Retraso entre lotes de sincronización, en milisegundos. |
MEILI_SYNC_THRESHOLD | 1000 | Número mínimo de documentos no sincronizados antes de que se active una sincronización. |
¿Qué te parece esta guía?