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

Moderación automatizada

Configuración del Sistema de Moderación Automatizado. Este utiliza un mecanismo de puntuación para rastrear las infracciones de los usuarios. A medida que los usuarios realizan acciones como inicios de sesión, registros o envío de mensajes excesivos, acumulan puntuaciones de infracción. Al alcanzar un umbral establecido, el usuario y su IP son bloqueados temporalmente. Este sistema garantiza la seguridad de la plataforma mediante la supervisión y penalización de actividades rápidas o sospechosas.

El Sistema de Moderación Automatizado utiliza un mecanismo de puntuación para realizar un seguimiento de las infracciones de los usuarios. A medida que los usuarios realizan acciones como inicios de sesión, registros o envío de mensajes excesivos, acumulan puntuaciones de infracción. Al alcanzar un umbral establecido, el usuario y su IP son bloqueados temporalmente. Este sistema garantiza la seguridad de la plataforma al monitorear y penalizar actividades rápidas o sospechosas.

En producción, debería contar con Cloudflare u otra protección DDoS implementada para proteger realmente el servidor contra solicitudes excesivas, pero estos cambios le protegerán en gran medida de uno o varios actores malintencionados que intenten utilizar su instancia desplegada como proxy.

Para más detalles, consulte la guía del usuario proporcionada aquí: Moderación automatizada

Configuración

Las siguientes son todas las variables de entorno relacionadas para utilizar y configurar el sistema de mods. Ten en cuenta que esto también se encuentra en el archivo /.env.example, para ser configurado en tu propio archivo .env.

Nota: actualmente, la mayoría de estos valores se configuran a través del archivo .env, pero pronto podrían migrar para configurarse exclusivamente desde el archivo de configuración librechat.yaml.

Infracción, Intervalo, Duración

KeyTypeDescriptionExample
BAN_VIOLATIONSbooleanSi se debe habilitar o no la prohibición de usuarios por infracciones (seguirán siendo registrados).BAN_VIOLATIONS=true
BAN_DURATIONintegerCuánto tiempo se bloquea al usuario y a la IP asociada (en milisegundos).BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerEl usuario será baneado cada vez que su puntuación alcance o supere el umbral del intervalo.BAN_INTERVAL=20

La puntuación para cada infracción

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerPuntuación para infracciones de inicio de sesión.LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREintegerPuntuación por infracciones de registro.REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREintegerPuntuación para infracciones simultáneas.CONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerPuntuación para infracciones de mensajes.MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerPuntuación para infracciones que no son del navegador.NON_BROWSER_VIOLATION_SCORE=20
IMPORT_VIOLATION_SCOREintegerPuntuación para infracciones de importación de conversaciones.IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREintegerPuntuación para infracciones de bifurcación de conversación.FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerPuntuación para infracciones de texto a voz.TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREintegerPuntuación para infracciones de conversión de voz a texto.STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerPuntuación para violaciones de carga de archivos.FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerPuntuación para infracciones de restablecimiento de contraseña.RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerPuntuación para infracciones de verificación de correo electrónico.VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerPuntuación para infracciones de llamadas a herramientas.TOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREintegerPuntuación para violaciones de acceso a la conversación.CONVO_ACCESS_VIOLATION_SCORE=0

Limitación de tasa de inicio de sesión y registro.

KeyTypeDescriptionExample
LOGIN_MAXnumberLa cantidad máxima de inicios de sesión permitidos por IP por LOGIN_WINDOW. El valor predeterminado es `7`.
LOGIN_WINDOWnumberEn minutos, determina la ventana de tiempo para LOGIN_MAX inicios de sesión. El valor predeterminado es `5`.
REGISTER_MAXnumberLa cantidad máxima de registros permitidos por IP por REGISTER_WINDOW. El valor predeterminado es `5`.
REGISTER_WINDOWnumberEn minutos, determina la ventana de tiempo para los registros de REGISTER_MAX. El valor predeterminado es `60`.

Limitación de tasa de mensajes

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESbooleanSi se debe limitar la cantidad de mensajes que un usuario puede enviar por solicitud.LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerLa cantidad máxima de mensajes que un usuario puede enviar por solicitud.CONCURRENT_MESSAGE_MAX=2

Nota: Puede utilizar ambos limitadores, pero el valor predeterminado es limitar solo por IP.

Limitación de tasa de mensajes (por IP)

KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanSi se debe limitar la cantidad de mensajes que una IP puede enviar por `MESSAGE_IP_WINDOW`.LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXintegerLa cantidad máxima de mensajes que una IP puede enviar por `MESSAGE_IP_WINDOW`.MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWintegerEn minutos, determina la ventana de tiempo para `MESSAGE_IP_MAX` mensajes.MESSAGE_IP_WINDOW=1

Limitación de tasa de mensajes (por Usuario)

KeyTypeDescriptionExample
LIMIT_MESSAGE_USERbooleanSi se debe limitar la cantidad de mensajes que un usuario puede enviar por `MESSAGE_USER_WINDOW`.LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXintegerLa cantidad máxima de mensajes que un usuario puede enviar por `MESSAGE_USER_WINDOW`.MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWintegerEn minutos, determina la ventana de tiempo para `MESSAGE_USER_MAX` mensajes.MESSAGE_USER_WINDOW=1

Límite de tasa de importación de conversaciones

Limita la frecuencia con la que los usuarios pueden importar conversaciones para prevenir abusos.

Nota: Puede utilizar ambos limitadores, pero el valor predeterminado es limitar solo por IP.

Límite de tasa de importación de conversaciones (por IP)

KeyTypeDescriptionExample
LIMIT_IMPORT_IPbooleanSi se debe limitar la cantidad de importaciones de conversaciones que una IP puede realizar por `IMPORT_IP_WINDOW`.LIMIT_IMPORT_IP=true
IMPORT_IP_MAXintegerLa cantidad máxima de importaciones de conversación que una IP puede realizar por `IMPORT_IP_WINDOW`.IMPORT_IP_MAX=100
IMPORT_IP_WINDOWintegerEn minutos, determina la ventana de tiempo para las importaciones de `IMPORT_IP_MAX`.IMPORT_IP_WINDOW=1

Límite de tasa de importación de conversaciones (por Usuario)

KeyTypeDescriptionExample
LIMIT_IMPORT_USERbooleanDetermina si se debe limitar la cantidad de importaciones de conversaciones que un usuario puede realizar por `IMPORT_USER_WINDOW`.LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerLa cantidad máxima de importaciones de conversaciones que un usuario puede realizar por `IMPORT_USER_WINDOW`.IMPORT_USER_MAX=50
IMPORT_USER_WINDOWintegerEn minutos, determina la ventana de tiempo para las importaciones de `IMPORT_USER_MAX`.IMPORT_USER_WINDOW=1

Limitación de tasa de bifurcación de conversaciones

Limita la frecuencia con la que los usuarios pueden bifurcar (fork) conversaciones para prevenir abusos.

Nota: Puede utilizar ambos limitadores, pero el valor predeterminado es limitar solo por IP.

Limitación de tasa de bifurcación de conversaciones (por IP)

KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanSi se debe limitar la cantidad de bifurcaciones de conversación que una IP puede crear por `FORK_IP_WINDOW`.LIMIT_FORK_IP=true
FORK_IP_MAXintegerLa cantidad máxima de bifurcaciones de conversación que una IP puede crear por `FORK_IP_WINDOW`.FORK_IP_MAX=30
FORK_IP_WINDOWintegerEn minutos, determina la ventana de tiempo para las bifurcaciones de `FORK_IP_MAX`.FORK_IP_WINDOW=1

Limitación de tasa de bifurcación de conversaciones (por Usuario)

KeyTypeDescriptionExample
LIMIT_FORK_USERbooleanSi se debe limitar la cantidad de bifurcaciones de conversación que un usuario puede crear por `FORK_USER_WINDOW`.LIMIT_FORK_USER=false
FORK_USER_MAXintegerLa cantidad máxima de bifurcaciones de conversación que un usuario puede crear por `FORK_USER_WINDOW`.FORK_USER_MAX=7
FORK_USER_WINDOWintegerEn minutos, determina la ventana de tiempo para las bifurcaciones de `FORK_USER_MAX`.FORK_USER_WINDOW=1

Solicitudes de modelos no permitidas

Nota: Las solicitudes de modelos ilegales casi siempre son nefastas, ya que significan que un tercero está intentando acceder al servidor a través de un script automatizado. Para esto, recomiendo una puntuación relativamente alta, no menor a 5.

KeyTypeDescriptionExample
ILLEGAL_MODEL_REQ_SCOREintegerPuntuación para solicitudes de modelos ilegales.ILLEGAL_MODEL_REQ_SCORE=5

Moderación de texto de OpenAI

KeyTypeDescriptionExample
OPENAI_MODERATIONbooleanSi habilitar o no la moderación de OpenAI en los endpoints **OpenAI** y **Plugins**.OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringTu clave de API de OpenAI.OPENAI_MODERATION_API_KEY=

Ten en cuenta que esto podría no funcionar con todos los proxies inversos:

KeyTypeDescriptionExample
OPENAI_MODERATION_REVERSE_PROXYstringNota: Comentado por defecto, esto no funciona con todos los proxies inversos.# OPENAI_MODERATION_REVERSE_PROXY=

¿Qué te parece esta guía?