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

Zautomatyzowana moderacja

Konfiguracja zautomatyzowanego systemu moderacji. Wykorzystuje on mechanizm punktacji do śledzenia naruszeń użytkowników. Gdy użytkownicy wykonują działania takie jak nadmierna liczba logowań, rejestracji lub wysyłania wiadomości, gromadzą punkty naruszeń. Po osiągnięciu określonego progu użytkownik oraz jego adres IP są tymczasowo blokowani. System ten zapewnia bezpieczeństwo platformy poprzez monitorowanie i karanie gwałtownych lub podejrzanych aktywności.

Zautomatyzowany system moderacji wykorzystuje mechanizm punktacji do śledzenia naruszeń użytkowników. Gdy użytkownicy wykonują działania takie jak nadmierna liczba logowań, rejestracji lub wysyłanie wiadomości, gromadzą punkty naruszeń. Po osiągnięciu określonego progu użytkownik oraz jego adres IP są tymczasowo blokowani. System ten zapewnia bezpieczeństwo platformy poprzez monitorowanie i karanie gwałtownych lub podejrzanych aktywności.

W środowisku produkcyjnym powinieneś korzystać z Cloudflare lub innego zabezpieczenia przed atakami DDoS, aby skutecznie chronić serwer przed nadmierną liczbą zapytań, jednak te zmiany w dużej mierze ochronią Cię przed pojedynczymi lub kilkoma nieuczciwymi użytkownikami, którzy obierają za cel Twoją wdrożoną instancję w celu wykorzystania jej jako proxy.

Aby uzyskać więcej szczegółów, zapoznaj się z przewodnikiem użytkownika dostępnym tutaj: Automated Moderation

Konfiguracja

Poniżej znajdują się wszystkie powiązane zmienne środowiskowe, których można użyć do skonfigurowania systemu modów. Zauważ, że znajdują się one również w pliku /.env.example i należy je ustawić we własnym pliku .env.

Uwaga: obecnie większość tych wartości jest konfigurowana za pomocą pliku .env, ale wkrótce mogą one zostać przeniesione do wyłącznej konfiguracji z poziomu librechat.yaml pliku konfiguracyjnego.

Naruszenie, Interwał, Czas trwania

KeyTypeDescriptionExample
BAN_VIOLATIONSbooleanCzy włączyć możliwość banowania użytkowników za naruszenia (nadal będą oni rejestrowani).BAN_VIOLATIONS=true
BAN_DURATIONintegerCzas trwania blokady użytkownika i powiązanego adresu IP (w milisekundach).BAN_DURATION=1000 * 60 * 60 * 2
BAN_INTERVALintegerUżytkownik będzie blokowany za każdym razem, gdy jego wynik osiągnie/przekroczy próg interwału.BAN_INTERVAL=20

Wynik dla każdego naruszenia

KeyTypeDescriptionExample
LOGIN_VIOLATION_SCOREintegerWynik dla naruszeń logowania.LOGIN_VIOLATION_SCORE=1
REGISTRATION_VIOLATION_SCOREintegerWynik za naruszenia rejestracji.REGISTRATION_VIOLATION_SCORE=1
CONCURRENT_VIOLATION_SCOREintegerWynik dla naruszeń współbieżnych.CONCURRENT_VIOLATION_SCORE=1
MESSAGE_VIOLATION_SCOREintegerWynik dla naruszeń wiadomości.MESSAGE_VIOLATION_SCORE=1
NON_BROWSER_VIOLATION_SCOREintegerWynik dla naruszeń spoza przeglądarki.NON_BROWSER_VIOLATION_SCORE=20
IMPORT_VIOLATION_SCOREintegerWynik dla naruszeń importu konwersacji.IMPORT_VIOLATION_SCORE=1
FORK_VIOLATION_SCOREintegerWynik dla naruszeń rozwidlenia konwersacji.FORK_VIOLATION_SCORE=1
TTS_VIOLATION_SCOREintegerWynik dla naruszeń zamiany tekstu na mowę (text-to-speech).TTS_VIOLATION_SCORE=0
STT_VIOLATION_SCOREintegerWynik dla naruszeń zamiany mowy na tekst.STT_VIOLATION_SCORE=0
FILE_UPLOAD_VIOLATION_SCOREintegerWynik dla naruszeń przesyłania plików.FILE_UPLOAD_VIOLATION_SCORE=0
RESET_PASSWORD_VIOLATION_SCOREintegerWynik dla naruszeń resetowania hasła.RESET_PASSWORD_VIOLATION_SCORE=0
VERIFY_EMAIL_VIOLATION_SCOREintegerWynik dla naruszeń weryfikacji adresu e-mail.VERIFY_EMAIL_VIOLATION_SCORE=0
TOOL_CALL_VIOLATION_SCOREintegerWynik dla naruszeń wywołań narzędzi.TOOL_CALL_VIOLATION_SCORE=0
CONVO_ACCESS_VIOLATION_SCOREintegerWynik dla naruszeń dostępu do konwersacji.CONVO_ACCESS_VIOLATION_SCORE=0

Ograniczanie częstotliwości logowania i rejestracji.

KeyTypeDescriptionExample
LOGIN_MAXnumberMaksymalna liczba logowań dozwolona na adres IP w ramach LOGIN_WINDOW. Domyślnie `7`.
LOGIN_WINDOWnumberW minutach, określa przedział czasowy dla LOGIN_MAX logowań. Domyślnie `5`.
REGISTER_MAXnumberMaksymalna liczba rejestracji dozwolona na adres IP w ramach REGISTER_WINDOW. Domyślnie `5`.
REGISTER_WINDOWnumberW minutach, określa przedział czasowy dla REGISTER_MAX rejestracji. Domyślnie `60`.

Ograniczanie częstotliwości wysyłania wiadomości

KeyTypeDescriptionExample
LIMIT_CONCURRENT_MESSAGESbooleanCzy ograniczyć liczbę wiadomości, które użytkownik może wysłać w ramach jednego żądania.LIMIT_CONCURRENT_MESSAGES=true
CONCURRENT_MESSAGE_MAXintegerMaksymalna liczba wiadomości, które użytkownik może wysłać w ramach jednego żądania.CONCURRENT_MESSAGE_MAX=2

Uwaga: Możesz korzystać z obu ograniczników, ale domyślnie ograniczenie odbywa się tylko według IP.

Ograniczanie częstotliwości wiadomości (na adres IP)

KeyTypeDescriptionExample
LIMIT_MESSAGE_IPbooleanCzy ograniczyć liczbę wiadomości, które dany adres IP może wysłać w ramach `MESSAGE_IP_WINDOW`.LIMIT_MESSAGE_IP=true
MESSAGE_IP_MAXintegerMaksymalna liczba wiadomości, które adres IP może wysłać w ramach `MESSAGE_IP_WINDOW`.MESSAGE_IP_MAX=40
MESSAGE_IP_WINDOWintegerW minutach, określa przedział czasowy dla `MESSAGE_IP_MAX` wiadomości.MESSAGE_IP_WINDOW=1

Ograniczanie częstotliwości wysyłania wiadomości (na użytkownika)

KeyTypeDescriptionExample
LIMIT_MESSAGE_USERbooleanCzy ograniczyć liczbę wiadomości, które użytkownik może wysłać w ramach `MESSAGE_USER_WINDOW`.LIMIT_MESSAGE_USER=false
MESSAGE_USER_MAXintegerMaksymalna liczba wiadomości, które użytkownik może wysłać w ramach `MESSAGE_USER_WINDOW`.MESSAGE_USER_MAX=40
MESSAGE_USER_WINDOWintegerW minutach określa przedział czasowy dla wiadomości `MESSAGE_USER_MAX`.MESSAGE_USER_WINDOW=1

Limitowanie częstotliwości importowania konwersacji

Ogranicza częstotliwość importowania konwersacji przez użytkowników, aby zapobiec nadużyciom.

Uwaga: Możesz korzystać z obu ograniczników, ale domyślnie ograniczenie odbywa się tylko według IP.

Limitowanie szybkości importu konwersacji (na adres IP)

KeyTypeDescriptionExample
LIMIT_IMPORT_IPbooleanCzy ograniczyć liczbę importów konwersacji, które adres IP może wykonać w ramach `IMPORT_IP_WINDOW`.LIMIT_IMPORT_IP=true
IMPORT_IP_MAXintegerMaksymalna liczba importów konwersacji, które adres IP może wykonać w ramach `IMPORT_IP_WINDOW`.IMPORT_IP_MAX=100
IMPORT_IP_WINDOWintegerW minutach określa przedział czasowy dla importów `IMPORT_IP_MAX`.IMPORT_IP_WINDOW=1

Limitowanie szybkości importu konwersacji (na użytkownika)

KeyTypeDescriptionExample
LIMIT_IMPORT_USERbooleanCzy ograniczyć liczbę importów konwersacji, które użytkownik może wykonać w ramach `IMPORT_USER_WINDOW`.LIMIT_IMPORT_USER=false
IMPORT_USER_MAXintegerMaksymalna liczba importów konwersacji, które użytkownik może wykonać w ramach `IMPORT_USER_WINDOW`.IMPORT_USER_MAX=50
IMPORT_USER_WINDOWintegerW minutach określa przedział czasowy dla importów `IMPORT_USER_MAX`.IMPORT_USER_WINDOW=1

Ograniczanie częstotliwości forkowania konwersacji

Ogranicza częstotliwość, z jaką użytkownicy mogą forkować konwersacje, aby zapobiec nadużyciom.

Uwaga: Możesz korzystać z obu ograniczników, ale domyślnie ograniczenie odbywa się tylko według IP.

Limitowanie częstotliwości forkowania konwersacji (na adres IP)

KeyTypeDescriptionExample
LIMIT_FORK_IPbooleanCzy ograniczyć liczbę rozgałęzień konwersacji, które adres IP może utworzyć w ramach `FORK_IP_WINDOW`.LIMIT_FORK_IP=true
FORK_IP_MAXintegerMaksymalna liczba rozgałęzień konwersacji, które adres IP może utworzyć w ramach `FORK_IP_WINDOW`.FORK_IP_MAX=30
FORK_IP_WINDOWintegerW minutach określa przedział czasowy dla `FORK_IP_MAX` forków.FORK_IP_WINDOW=1

Limitowanie częstotliwości forkowania konwersacji (na użytkownika)

KeyTypeDescriptionExample
LIMIT_FORK_USERbooleanCzy ograniczyć liczbę rozgałęzień konwersacji, które użytkownik może utworzyć w ramach `FORK_USER_WINDOW`.LIMIT_FORK_USER=false
FORK_USER_MAXintegerMaksymalna liczba rozgałęzień konwersacji, które użytkownik może utworzyć w ramach `FORK_USER_WINDOW`.FORK_USER_MAX=7
FORK_USER_WINDOWintegerW minutach, określa przedział czasowy dla forków `FORK_USER_MAX`.FORK_USER_WINDOW=1

Niedozwolone żądania modelu

Uwaga: Nielegalne żądania modeli są prawie zawsze szkodliwe, ponieważ oznaczają, że podmiot zewnętrzny próbuje uzyskać dostęp do serwera za pomocą zautomatyzowanego skryptu. W tym przypadku zalecam stosunkowo wysoki wynik, nie mniejszy niż 5.

KeyTypeDescriptionExample
ILLEGAL_MODEL_REQ_SCOREintegerWynik dla niedozwolonych żądań modelu.ILLEGAL_MODEL_REQ_SCORE=5

Moderacja tekstu OpenAI

KeyTypeDescriptionExample
OPENAI_MODERATIONbooleanCzy włączyć moderację OpenAI w endpointach **OpenAI** oraz **Plugins**.OPENAI_MODERATION=false
OPENAI_MODERATION_API_KEYstringTwój klucz API OpenAI.OPENAI_MODERATION_API_KEY=

Pamiętaj, że może to nie działać ze wszystkimi odwrotnymi serwerami proxy (reverse proxies):

KeyTypeDescriptionExample
OPENAI_MODERATION_REVERSE_PROXYstringUwaga: Domyślnie zakomentowane, nie działa ze wszystkimi reverse proxys.# OPENAI_MODERATION_REVERSE_PROXY=

Jaka jest ta instrukcja?