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

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 clave maestra. Utiliza cualquier cadena aleatoria lo suficientemente larga (16 bytes o más). Por ejemplo:

openssl rand -base64 32

Agregue 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, por lo que debes añadirla 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 -d

Mantener 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.

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

VariableDescription
SEARCHHabilita la función de búsqueda de conversaciones. Establézcalo en true.
MEILI_HOSTURL 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_KEYSecreto compartido utilizado para autenticarse con Meilisearch. Debe coincidir con la clave con la que se inicia Meilisearch.
MEILI_NO_ANALYTICSDeshabilita la telemetría anónima de Meilisearch. Establézcalo en true.
MEILI_NO_SYNCVer configuraciones de múltiples nodos.

Deshabilitar la sincronización en una configuración de múltiples nodos

Si ejecuta LibreChat como un clúster de nodos o una implementación de múltiples nodos, establezca MEILI_NO_SYNC en true para que solo una instancia maneje 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=true

Restablecer sincronización

Si los datos de Meilisearch se eliminan o 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:

VariableDefaultDescription
MEILI_SYNC_BATCH_SIZE100Número de documentos sincronizados por lote.
MEILI_SYNC_DELAY_MS100Retraso entre lotes de sincronización, en milisegundos.
MEILI_SYNC_THRESHOLD1000Número mínimo de documentos no sincronizados antes de que se active una sincronización.

¿Qué te parece esta guía?