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 mediante la supervisión y penalización de actividades rápidas o sospechosas.
En producción, debería contar con Cloudflare u otra protección contra DDoS para proteger realmente el servidor de 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 es posible que pronto migren para configurarse exclusivamente desde el archivo de configuración librechat.yaml.
Violación, Intervalo, Duración
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Si se debe habilitar o no la prohibición de usuarios por infracciones (aún así serán registrados). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Cuánto tiempo se bloquea al usuario y a la IP asociada (en milisegundos). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | El 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
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Puntuación para infracciones de inicio de sesión. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Puntuación por infracciones de registro. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Puntuación para infracciones simultáneas. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Puntuación para infracciones de mensajes. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Puntuación para infracciones que no son del navegador. | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | Puntuación para infracciones de importación de conversaciones. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Puntuación para infracciones de bifurcación de conversación. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Puntuación para infracciones de texto a voz. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Puntuación para infracciones de conversión de voz a texto. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Puntuación para violaciones de carga de archivos. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Puntuación para infracciones de restablecimiento de contraseña. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Puntuación para infracciones de verificación de correo electrónico. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Puntuación para infracciones de llamadas a herramientas. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Puntuació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.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | La cantidad máxima de inicios de sesión permitidos por IP por LOGIN_WINDOW. El valor predeterminado es `7`. | |
| LOGIN_WINDOW | number | En minutos, determina la ventana de tiempo para LOGIN_MAX inicios de sesión. El valor predeterminado es `5`. | |
| REGISTER_MAX | number | La cantidad máxima de registros permitidos por IP por REGISTER_WINDOW. El valor predeterminado es `5`. | |
| REGISTER_WINDOW | number | En minutos, determina la ventana de tiempo para los registros de REGISTER_MAX. El valor predeterminado es `60`. |
Limitación de tasa de mensajes
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Si se debe limitar la cantidad de mensajes que un usuario puede enviar por solicitud. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | La 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)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Si se debe limitar la cantidad de mensajes que una IP puede enviar por `MESSAGE_IP_WINDOW`. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | La cantidad máxima de mensajes que una IP puede enviar por `MESSAGE_IP_WINDOW`. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | En minutos, determina la ventana de tiempo para `MESSAGE_IP_MAX` mensajes. | MESSAGE_IP_WINDOW=1 |
Limitación de tasa de mensajes (por Usuario)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Si se debe limitar la cantidad de mensajes que un usuario puede enviar por `MESSAGE_USER_WINDOW`. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | La cantidad máxima de mensajes que un usuario puede enviar por `MESSAGE_USER_WINDOW`. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | En 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)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Si se debe limitar la cantidad de importaciones de conversaciones que una IP puede realizar por `IMPORT_IP_WINDOW`. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | La cantidad máxima de importaciones de conversación que una IP puede realizar por `IMPORT_IP_WINDOW`. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | En 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)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Determina 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_MAX | integer | La cantidad máxima de importaciones de conversaciones que un usuario puede realizar por `IMPORT_USER_WINDOW`. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | En 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)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Si 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_MAX | integer | La cantidad máxima de bifurcaciones de conversación que una IP puede crear por `FORK_IP_WINDOW`. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | En 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)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Si 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_MAX | integer | La cantidad máxima de bifurcaciones de conversación que un usuario puede crear por `FORK_USER_WINDOW`. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | En 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.
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | Puntuación para solicitudes de modelos ilegales. | ILLEGAL_MODEL_REQ_SCORE=5 |
Moderación de texto de OpenAI
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Si habilitar o no la moderación de OpenAI en los endpoints **OpenAI** y **Plugins**. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | Tu clave de API de OpenAI. | OPENAI_MODERATION_API_KEY= |
Ten en cuenta que esto podría no funcionar con todos los proxies inversos:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | Nota: Comentado por defecto, esto no funciona con todos los proxies inversos. | # OPENAI_MODERATION_REVERSE_PROXY= |
¿Qué te parece esta guía?
Seguimiento con Langfuse
Este documento explica cómo integrar el rastreo de Langfuse con LibreChat para obtener una observabilidad completa de sus conversaciones con IA.
Uso de tokens
Esto cubre cómo realizar un seguimiento y controlar el uso de tokens en LibreChat. Aprenderá a ver el contexto y el costo, configurar transacciones, habilitar saldos de usuario y agregar créditos a una cuenta.