Moderazione automatizzata
Configurazione del sistema di moderazione automatizzato. Questo utilizza un meccanismo di punteggio per tracciare le violazioni degli utenti. Quando gli utenti compiono azioni come accessi, registrazioni o invio di messaggi eccessivi, accumulano punteggi di violazione. Al raggiungimento di una soglia prestabilita, l'utente e il suo IP vengono temporaneamente bannati. Questo sistema garantisce la sicurezza della piattaforma monitorando e penalizzando le attività rapide o sospette.
Il sistema di moderazione automatizzata utilizza un meccanismo di punteggio per tracciare le violazioni degli utenti. Man mano che gli utenti compiono azioni come accessi, registrazioni o invio di messaggi eccessivi, accumulano punteggi di violazione. Al raggiungimento di una soglia prestabilita, l'utente e il suo IP vengono temporaneamente bannati. Questo sistema garantisce la sicurezza della piattaforma monitorando e penalizzando le attività rapide o sospette.
In produzione, dovresti disporre di Cloudflare o di un'altra protezione DDoS per proteggere realmente il server da richieste eccessive, ma queste modifiche ti proteggeranno in gran parte da uno o più malintenzionati che prendono di mira la tua istanza distribuita per il proxying.
Per ulteriori dettagli, consultare la guida per l'utente fornita qui: Automated Moderation
Setup
Di seguito sono riportate tutte le variabili d'ambiente correlate per utilizzare e configurare il sistema di mod. Nota che queste si trovano anche nel file /.env.example, da impostare nel proprio file .env.
Nota: attualmente, la maggior parte di questi valori viene configurata tramite il file .env, ma presto potrebbero essere migrati per essere configurati esclusivamente dal librechat.yaml file di configurazione.
Violazione, Intervallo, Durata
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Se abilitare o meno il ban degli utenti per violazioni (saranno comunque registrati). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Per quanto tempo l'utente e l'IP associato vengono bannati (in millisecondi). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | L'utente verrà bannato ogni volta che il suo punteggio raggiunge/supera la soglia dell'intervallo. | BAN_INTERVAL=20 |
Il punteggio per ogni violazione
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Punteggio per le violazioni di accesso. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Punteggio per le violazioni di registrazione. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Punte | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Punteggio per le violazioni dei messaggi. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Punteggio per violazioni non relative al browser. | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | Punteggio per le violazioni nell'importazione delle conversazioni. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Punteggio per le violazioni di fork della conversazione. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Punteggio per le violazioni da testo a voce. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Punteggio per le violazioni da sintesi vocale (speech-to-text). | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Punteggio per le violazioni del caricamento file. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Punteggio per le violazioni del ripristino password. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Punteggio per le violazioni della verifica email. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Punteggio per le violazioni delle chiamate a strumenti. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Punteggio per le violazioni di accesso alla conversazione. | CONVO_ACCESS_VIOLATION_SCORE=0 |
Limitazione della frequenza di accesso e registrazione.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | Il numero massimo di accessi consentiti per IP per LOGIN_WINDOW. Il valore predefinito è `7`. | |
| LOGIN_WINDOW | number | In minuti, determina la finestra temporale per LOGIN_MAX accessi. Il valore predefinito è `5`. | |
| REGISTER_MAX | number | Il numero massimo di registrazioni consentite per IP per REGISTER_WINDOW. Il valore predefinito è `5`. | |
| REGISTER_WINDOW | number | In minuti, determina la finestra temporale per le registrazioni REGISTER_MAX. Il valore predefinito è `60`. |
Limitazione della frequenza dei messaggi
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Se limitare la quantità di messaggi che un utente può inviare per richiesta. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | Il numero massimo di messaggi che un utente può inviare per richiesta. | CONCURRENT_MESSAGE_MAX=2 |
Nota: È possibile utilizzare entrambi i limitatori, ma l'impostazione predefinita è limitare solo per IP.
Limitazione della frequenza dei messaggi (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Se limitare la quantità di messaggi che un IP può inviare per `MESSAGE_IP_WINDOW`. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | Il numero massimo di messaggi che un IP può inviare per `MESSAGE_IP_WINDOW`. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | In minuti, determina la finestra temporale per `MESSAGE_IP_MAX` messaggi. | MESSAGE_IP_WINDOW=1 |
Limitazione della frequenza dei messaggi (per Utente)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Se limitare il numero di messaggi che un utente può inviare per `MESSAGE_USER_WINDOW`. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | Il numero massimo di messaggi che un utente può inviare per `MESSAGE_USER_WINDOW`. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | In minuti, determina la finestra temporale per `MESSAGE_USER_MAX` messaggi. | MESSAGE_USER_WINDOW=1 |
Limitazione della frequenza di importazione delle conversazioni
Limita la frequenza con cui gli utenti possono importare conversazioni per prevenire abusi.
Nota: È possibile utilizzare entrambi i limitatori, ma l'impostazione predefinita è limitare solo per IP.
Limite di frequenza per l'importazione di conversazioni (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Se limitare il numero di importazioni di conversazioni che un IP può eseguire per `IMPORT_IP_WINDOW`. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | Il numero massimo di importazioni di conversazioni che un IP può eseguire per `IMPORT_IP_WINDOW`. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | In minuti, determina la finestra temporale per le importazioni di `IMPORT_IP_MAX`. | IMPORT_IP_WINDOW=1 |
Limitazione della frequenza di importazione delle conversazioni (per Utente)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Se limitare la quantità di importazioni di conversazioni che un utente può eseguire per `IMPORT_USER_WINDOW`. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | Il numero massimo di importazioni di conversazioni che un utente può eseguire per `IMPORT_USER_WINDOW`. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | In minuti, determina la finestra temporale per le importazioni `IMPORT_USER_MAX`. | IMPORT_USER_WINDOW=1 |
Limitazione della frequenza di forking delle conversazioni
Limita la frequenza con cui gli utenti possono effettuare il fork delle conversazioni per prevenire abusi.
Nota: È possibile utilizzare entrambi i limitatori, ma l'impostazione predefinita è limitare solo per IP.
Limitazione della frequenza di fork delle conversazioni (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Se limitare il numero di fork di conversazione che un IP può creare per `FORK_IP_WINDOW`. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | Il numero massimo di fork di conversazione che un IP può creare per `FORK_IP_WINDOW`. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | In minuti, determina la finestra temporale per i fork di `FORK_IP_MAX`. | FORK_IP_WINDOW=1 |
Limitazione della frequenza di forking delle conversazioni (per Utente)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Indica se limitare il numero di fork di conversazione che un utente può creare per `FORK_USER_WINDOW`. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | Il numero massimo di diramazioni di conversazione che un utente può creare per `FORK_USER_WINDOW`. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | In minuti, determina la finestra temporale per i fork di `FORK_USER_MAX`. | FORK_USER_WINDOW=1 |
Richieste di modelli non consentite
Nota: le richieste di modelli non consentite sono quasi sempre nefaste, poiché significano che una terza parte sta tentando di accedere al server tramite uno script automatizzato. Per questo, consiglio un punteggio relativamente alto, non inferiore a 5.
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | Punteggio per richieste di modelli non consentite. | ILLEGAL_MODEL_REQ_SCORE=5 |
Moderazione del testo OpenAI
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Se abilitare o meno la moderazione di OpenAI sugli endpoint **OpenAI** e **Plugins**. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | La tua chiave API OpenAI. | OPENAI_MODERATION_API_KEY= |
Nota che questo potrebbe non funzionare con tutti i reverse proxy:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | Nota: commentato per impostazione predefinita, non funziona con tutti i reverse proxy. | # OPENAI_MODERATION_REVERSE_PROXY= |
Com’è questa guida?
Override Docker
Utilizza un file docker-compose.override.yml per personalizzare la configurazione Docker di LibreChat senza modificare il file docker-compose.yml principale.
Tracciamento Langfuse
Questo documento spiega come integrare il tracciamento di Langfuse con LibreChat per ottenere una completa osservabilità delle tue conversazioni AI.