Automatisierte Moderation
Konfiguration des automatisierten Moderationssystems. Dieses verwendet einen Bewertungsmechanismus, um Benutzerverstöße zu verfolgen. Wenn Benutzer Aktionen wie übermäßige Anmeldungen, Registrierungen oder Nachrichten ausführen, sammeln sie Verstoßpunkte. Beim Erreichen eines festgelegten Schwellenwerts werden der Benutzer und seine IP-Adresse vorübergehend gesperrt. Dieses System gewährleistet die Plattformsicherheit durch die Überwachung und Bestrafung von schnellen oder verdächtigen Aktivitäten.
Das Automated Moderation System verwendet einen Bewertungsmechanismus, um Benutzerverstöße zu verfolgen. Wenn Benutzer Aktionen wie übermäßige Anmeldungen, Registrierungen oder Nachrichtenversand durchführen, sammeln sie Verstoßpunkte an. Beim Erreichen eines festgelegten Schwellenwerts werden der Benutzer und dessen IP-Adresse vorübergehend gesperrt. Dieses System gewährleistet die Plattformsicherheit, indem es schnelle oder verdächtige Aktivitäten überwacht und sanktioniert.
In der Produktion sollten Sie Cloudflare oder einen anderen DDoS-Schutz implementieren, um den Server wirksam vor übermäßigen Anfragen zu schützen. Diese Änderungen werden Sie jedoch weitgehend vor einzelnen oder mehreren böswilligen Akteuren schützen, die Ihre bereitgestellte Instanz für Proxying-Zwecke missbrauchen wollen.
Weitere Details finden Sie im Benutzerhandbuch hier: Automated Moderation
Einrichtung
Die folgenden Umgebungsvariablen sind alle relevant, um das Mod-System zu nutzen und zu konfigurieren. Beachten Sie, dass diese auch in der Datei /.env.example zu finden sind und in Ihrer eigenen .env Datei festgelegt werden müssen.
Hinweis: Derzeit werden die meisten dieser Werte über die .env Datei konfiguriert, sie könnten jedoch bald ausschließlich über die librechat.yaml Konfigurationsdatei konfiguriert werden.
Verstoß, Intervall, Dauer
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | Ob Benutzer bei Verstößen gesperrt werden sollen oder nicht (sie werden weiterhin protokolliert). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | Wie lange der Benutzer und die zugehörige IP gesperrt bleiben (in Millisekunden). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | Der Benutzer wird jedes Mal gesperrt, wenn sein Punktestand den Intervall-Schwellenwert erreicht oder überschreitet. | BAN_INTERVAL=20 |
Die Punktzahl für jeden Verstoß
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | Punktzahl für Anmeldeverstöße. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | Punktzahl für Registrierungsverstöße. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | Punktzahl für gleichzeitige Verstöße. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | Bewertung für Nachrichtenverstöße. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | Punktzahl für Nicht-Browser-Verstöße. | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | Punktzahl für Verstöße beim Import von Unterhaltungen. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | Bewertung für Verstöße bei der Konversationsverzweigung. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | Bewertung für Text-to-Speech-Verstöße. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | Bewertung für Speech-to-Text-Verstöße. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | Punktzahl für Verstöße beim Hochladen von Dateien. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | Punktzahl für Verstöße beim Zurücksetzen des Passworts. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | Punktzahl für Verstöße bei der E-Mail-Verifizierung. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | Bewertung für Verstöße bei Tool-Aufrufen. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | Punktzahl für Verstöße gegen den Konversationszugriff. | CONVO_ACCESS_VIOLATION_SCORE=0 |
Ratenbegrenzung für Anmeldung und Registrierung.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | Die maximale Anzahl an erlaubten Anmeldungen pro IP pro LOGIN_WINDOW. Standardwert ist `7`. | |
| LOGIN_WINDOW | number | In Minuten, bestimmt das Zeitfenster für LOGIN_MAX Anmeldeversuche. Standardwert ist `5`. | |
| REGISTER_MAX | number | Die maximale Anzahl an Registrierungen pro IP pro REGISTER_WINDOW. Standardwert ist `5`. | |
| REGISTER_WINDOW | number | Bestimmt in Minuten das Zeitfenster für REGISTER_MAX Registrierungen. Standardwert ist `60`. |
Nachrichten-Ratenbegrenzung
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | Ob die Anzahl der Nachrichten, die ein Benutzer pro Anfrage senden kann, begrenzt werden soll. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | Die maximale Anzahl an Nachrichten, die ein Benutzer pro Anfrage senden kann. | CONCURRENT_MESSAGE_MAX=2 |
Hinweis: Sie können beide Begrenzungen verwenden, standardmäßig erfolgt die Begrenzung jedoch nur nach IP.
Nachrichten-Ratenbegrenzung (pro IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | Ob die Anzahl der Nachrichten, die eine IP pro `MESSAGE_IP_WINDOW` senden kann, begrenzt werden soll. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | Die maximale Anzahl an Nachrichten, die eine IP pro `MESSAGE_IP_WINDOW` senden kann. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `MESSAGE_IP_MAX` Nachrichten. | MESSAGE_IP_WINDOW=1 |
Nachrichten-Ratenbegrenzung (pro Benutzer)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | Ob die Anzahl der Nachrichten, die ein Benutzer pro `MESSAGE_USER_WINDOW` senden kann, begrenzt werden soll. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | Die maximale Anzahl an Nachrichten, die ein Benutzer pro `MESSAGE_USER_WINDOW` senden kann. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `MESSAGE_USER_MAX` Nachrichten. | MESSAGE_USER_WINDOW=1 |
Import-Ratenbegrenzung für Konversationen
Begrenzt, wie oft Benutzer Konversationen importieren können, um Missbrauch zu verhindern.
Hinweis: Sie können beide Begrenzungen verwenden, standardmäßig erfolgt die Begrenzung jedoch nur nach IP.
Import-Konversations-Ratenbegrenzung (pro IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | Ob die Anzahl der Konversationsimporte, die eine IP pro `IMPORT_IP_WINDOW` durchführen kann, begrenzt werden soll. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | Die maximale Anzahl an Konversationsimporten, die eine IP pro `IMPORT_IP_WINDOW` durchführen kann. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `IMPORT_IP_MAX`-Importe. | IMPORT_IP_WINDOW=1 |
Ratenbegrenzung für den Import von Unterhaltungen (pro Benutzer)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | Ob die Anzahl der Konversationsimporte, die ein Benutzer pro `IMPORT_USER_WINDOW` durchführen kann, begrenzt werden soll. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | Die maximale Anzahl an Konversationsimporten, die ein Benutzer pro `IMPORT_USER_WINDOW` durchführen kann. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | Bestimmt in Minuten das Zeitfenster für `IMPORT_USER_MAX` Importe. | IMPORT_USER_WINDOW=1 |
Ratenbegrenzung für das Forken von Unterhaltungen
Begrenzt, wie oft Benutzer Konversationen forken können, um Missbrauch zu verhindern.
Hinweis: Sie können beide Begrenzungen verwenden, standardmäßig erfolgt die Begrenzung jedoch nur nach IP.
Ratenbegrenzung für das Forken von Konversationen (pro IP)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | Ob die Anzahl der Konversations-Forks, die eine IP pro `FORK_IP_WINDOW` erstellen kann, begrenzt werden soll. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | Die maximale Anzahl an Konversations-Forks, die eine IP pro `FORK_IP_WINDOW` erstellen kann. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `FORK_IP_MAX` Forks. | FORK_IP_WINDOW=1 |
Ratenbegrenzung für das Forken von Unterhaltungen (pro Benutzer)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | Ob die Anzahl der Konversations-Forks, die ein Benutzer pro `FORK_USER_WINDOW` erstellen kann, begrenzt werden soll. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | Die maximale Anzahl an Konversations-Forks, die ein Benutzer pro `FORK_USER_WINDOW` erstellen kann. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | In Minuten, bestimmt das Zeitfenster für `FORK_USER_MAX` Forks. | FORK_USER_WINDOW=1 |
Unzulässige Modellanfragen
Hinweis: Illegale Modellanfragen sind fast immer bösartig, da dies bedeutet, dass ein Dritter versucht, über ein automatisiertes Skript auf den Server zuzugreifen. Hierfür empfehle ich einen relativ hohen Wert, nicht weniger als 5.
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | Bewertung für unzulässige Modellanfragen. | ILLEGAL_MODEL_REQ_SCORE=5 |
OpenAI Text-Moderation
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | Ob die OpenAI-Moderation für die **OpenAI**- und **Plugins**-endpoint aktiviert werden soll oder nicht. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | Ihr OpenAI API-Schlüssel. | OPENAI_MODERATION_API_KEY= |
Beachte, dass dies möglicherweise nicht mit allen Reverse Proxies funktioniert:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | Hinweis: Standardmäßig auskommentiert, dies funktioniert nicht mit allen Reverse Proxys. | # OPENAI_MODERATION_REVERSE_PROXY= |
Wie finden Sie diese Anleitung?