Geautomatiseerde moderatie
Configuratie van het geautomatiseerde moderatiesysteem. Dit maakt gebruik van een scoremechanisme om gebruikersovertredingen bij te houden. Wanneer gebruikers acties ondernemen zoals overmatig inloggen, registreren of berichten versturen, verzamelen ze overtredingspunten. Bij het bereiken van een ingestelde drempelwaarde worden de gebruiker en hun IP-adres tijdelijk verbannen. Dit systeem waarborgt de platformbeveiliging door snelle of verdachte activiteiten te monitoren en te bestraffen.
Het Automated Moderation System gebruikt een scoresysteem om gebruikersovertredingen bij te houden. Wanneer gebruikers acties uitvoeren zoals overmatig inloggen, registreren of berichten versturen, verzamelen ze overtredingspunten. Bij het bereiken van een ingestelde drempelwaarde worden de gebruiker en hun IP-adres tijdelijk verbannen. Dit systeem waarborgt de platformbeveiliging door snelle of verdachte activiteiten te monitoren en te bestraffen.
In productieomgevingen is het raadzaam om Cloudflare of een andere vorm van DDoS-beveiliging te implementeren om de server daadwerkelijk te beschermen tegen overmatige verzoeken, maar deze wijzigingen zullen u grotendeels beschermen tegen individuele of meerdere kwaadwillenden die uw geïmplementeerde instantie als proxy proberen te gebruiken.
Voor meer details, raadpleeg de gebruikershandleiding die hier wordt verstrekt: Automated Moderation
Setup
Hieronder staan alle gerelateerde env-variabelen om het mod-systeem te gebruiken en te configureren. Let op: deze zijn ook te vinden in het /.env.example bestand, om in te stellen in je eigen .env bestand.
Let op: momenteel worden de meeste van deze waarden geconfigureerd via het .env bestand, maar ze kunnen binnenkort migreren om uitsluitend te worden geconfigureerd vanuit het librechat.yaml configuratiebestand.
Schending, Interval, Duur
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Of het verbannen van gebruikers voor overtredingen moet worden ingeschakeld (ze worden nog steeds gelogd). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Hoe lang de gebruiker en het bijbehorende IP-adres verbannen zijn (in milliseconden). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | De gebruiker wordt elke keer verbannen wanneer hun score de intervaldrempel bereikt of overschrijdt. | BAN_INTERVAL=20 |
De score voor elke overtreding
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Score voor inlogschendingen. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Score voor registratieovertredingen. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Score voor gelijktijdige overtredingen. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Score voor berichtschendingen. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Score voor niet-browser overtredingen. | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | Score voor schendingen bij het importeren van gesprekken. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Score voor schendingen bij het splitsen van gesprekken. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Score voor text-to-speech-overtredingen. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Score voor speech-to-text-overtredingen. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Score voor overtredingen bij bestandsuploads. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Score voor schendingen bij het opnieuw instellen van wachtwoorden. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Score voor schendingen van e-mailverificatie. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Score voor overtredingen bij tool-aanroepen. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Score voor schendingen van toegang tot gesprekken. | CONVO_ACCESS_VIOLATION_SCORE=0 |
Snelheidsbeperking voor inloggen en registratie.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | Het maximale aantal toegestane aanmeldingen per IP per LOGIN_WINDOW. Standaard ingesteld op `7`. | |
| LOGIN_WINDOW | number | Bepaalt in minuten het tijdsbestek voor LOGIN_MAX aanmeldingen. Standaard is `5`. | |
| REGISTER_MAX | number | Het maximale aantal registraties toegestaan per IP per REGISTER_WINDOW. Standaard ingesteld op `5`. | |
| REGISTER_WINDOW | number | In minuten, bepaalt het tijdsvenster voor REGISTER_MAX registraties. Standaard is `60`. |
Message rate limiting
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Of het aantal berichten dat een gebruiker per verzoek kan verzenden moet worden beperkt. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | Het maximale aantal berichten dat een gebruiker per verzoek kan verzenden. | CONCURRENT_MESSAGE_MAX=2 |
Let op: Je kunt beide limiters gebruiken, maar de standaardinstelling is om alleen op IP te limiteren.
Berichtsnelheidsbeperking (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Of het aantal berichten dat een IP mag verzenden per `MESSAGE_IP_WINDOW` moet worden beperkt. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | Het maximale aantal berichten dat een IP kan verzenden per `MESSAGE_IP_WINDOW`. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | Bepaalt in minuten het tijdsvenster voor `MESSAGE_IP_MAX` berichten. | MESSAGE_IP_WINDOW=1 |
Berichtenlimiet (per gebruiker)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Of het aantal berichten dat een gebruiker per `MESSAGE_USER_WINDOW` kan verzenden moet worden beperkt. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | Het maximale aantal berichten dat een gebruiker kan verzenden per `MESSAGE_USER_WINDOW`. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | Bepaalt in minuten het tijdsvenster voor `MESSAGE_USER_MAX` berichten. | MESSAGE_USER_WINDOW=1 |
Import conversation rate limiting
Beperkt hoe vaak gebruikers gesprekken kunnen importeren om misbruik te voorkomen.
Let op: Je kunt beide limiters gebruiken, maar de standaardinstelling is om alleen op IP te limiteren.
Import conversation rate limiting (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Of het aantal conversatie-imports dat een IP kan uitvoeren per `IMPORT_IP_WINDOW` moet worden beperkt. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | Het maximale aantal gespreksimporten dat een IP-adres kan uitvoeren per `IMPORT_IP_WINDOW`. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | Bepaalt in minuten het tijdsvenster voor `IMPORT_IP_MAX` imports. | IMPORT_IP_WINDOW=1 |
Import conversation rate limiting (per User)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Of het aantal gespreksimportaties dat een gebruiker per `IMPORT_USER_WINDOW` mag uitvoeren, moet worden beperkt. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | Het maximale aantal conversatie-imports dat een gebruiker kan uitvoeren per `IMPORT_USER_WINDOW`. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | Bepaalt in minuten het tijdsbestek voor `IMPORT_USER_MAX` imports. | IMPORT_USER_WINDOW=1 |
Snelheidsbeperking voor het forken van gesprekken
Beperkt hoe vaak gebruikers conversaties kunnen forken om misbruik te voorkomen.
Let op: Je kunt beide limiters gebruiken, maar de standaardinstelling is om alleen op IP te limiteren.
Snelheidsbeperking voor het forken van gesprekken (per IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Of het aantal conversatie-forks dat een IP kan aanmaken per `FORK_IP_WINDOW` moet worden beperkt. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | Het maximale aantal gespreks-forks dat een IP kan aanmaken per `FORK_IP_WINDOW`. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | Bepaalt in minuten het tijdsbestek voor `FORK_IP_MAX` forks. | FORK_IP_WINDOW=1 |
Snelheidsbeperking voor het forken van gesprekken (per gebruiker)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Of het aantal gespreks-forks dat een gebruiker per `FORK_USER_WINDOW` kan aanmaken, moet worden beperkt. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | Het maximale aantal gespreksvertakkingen dat een gebruiker per `FORK_USER_WINDOW` kan aanmaken. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | Bepaalt in minuten het tijdsvenster voor `FORK_USER_MAX` forks. | FORK_USER_WINDOW=1 |
Illegale modelverzoeken
Let op: Illegale modelverzoeken zijn bijna altijd kwaadaardig, omdat dit betekent dat een externe partij probeert toegang te krijgen tot de server via een geautomatiseerd script. Hiervoor adviseer ik een relatief hoge score, niet lager dan 5.
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | Score voor illegale modelverzoeken. | ILLEGAL_MODEL_REQ_SCORE=5 |
OpenAI tekstmoderatie
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Of OpenAI-moderatie moet worden ingeschakeld voor de **OpenAI**- en **Plugins**-endpoints. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | Je OpenAI API-sleutel. | OPENAI_MODERATION_API_KEY= |
Let op: dit werkt mogelijk niet met alle reverse proxies:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | Let op: Standaard uitgeschakeld, dit werkt niet met alle reverse proxy's. | # OPENAI_MODERATION_REVERSE_PROXY= |
Hoe is deze gids?
Docker Override
Gebruik een docker-compose.override.yml bestand om de Docker-configuratie van LibreChat aan te passen zonder het hoofd-bestand docker-compose.yml te bewerken.
Langfuse Tracing
Dit document legt uit hoe je Langfuse-tracing integreert met LibreChat om volledige observeerbaarheid te krijgen in je AI-gesprekken.