자동화된 조정
자동화된 중재 시스템 설정입니다. 이 시스템은 점수 매기기 메커니즘을 사용하여 사용자 위반 사항을 추적합니다. 사용자가 과도한 로그인, 등록 또는 메시지 전송과 같은 행동을 하면 위반 점수가 누적됩니다. 설정된 임계값에 도달하면 해당 사용자와 IP는 일시적으로 차단됩니다. 이 시스템은 급격하거나 의심스러운 활동을 모니터링하고 제재함으로써 플랫폼 보안을 보장합니다.
자동화된 조정 시스템(Automated Moderation System)은 점수 매기기 메커니즘을 사용하여 사용자 위반 사항을 추적합니다. 사용자가 과도한 로그인, 등록 또는 메시지 전송과 같은 행동을 하면 위반 점수가 누적됩니다. 설정된 임계값에 도달하면 해당 사용자와 IP는 일시적으로 차단됩니다. 이 시스템은 급격하거나 의심스러운 활동을 모니터링하고 제재함으로써 플랫폼 보안을 보장합니다.
프로덕션 환경에서는 서버를 과도한 요청으로부터 확실하게 보호하기 위해 Cloudflare나 기타 DDoS 방어 솔루션을 도입해야 하지만, 이러한 변경 사항들은 배포된 인스턴스를 프록시로 악용하려는 단일 또는 소수의 악의적인 공격자들로부터 귀하를 크게 보호해 줄 것입니다.
자세한 내용은 다음 사용자 가이드를 참조하세요: Automated Moderation
설정
다음은 모드(mod) 시스템을 사용하고 구성하기 위한 모든 관련 env 변수입니다. 이 내용은 /.env.example 파일에서도 확인할 수 있으며, 사용자의 .env 파일에 설정해야 합니다.
참고: 현재 이러한 값 대부분은 .env 파일을 통해 구성되지만, 곧 librechat.yaml 구성 파일에서만 독점적으로 구성되도록 마이그레이션될 수 있습니다.
위반, 간격, 지속 시간
| Key | Type | Description | Example |
|---|---|---|---|
| BAN_VIOLATIONS | boolean | 위반 사항에 대해 사용자 차단을 활성화할지 여부입니다(차단된 사용자도 로그에는 기록됩니다). | BAN_VIOLATIONS=true |
| BAN_DURATION | integer | 사용자 및 관련 IP가 차단되는 기간(밀리초 단위). | BAN_DURATION=1000 * 60 * 60 * 2 |
| BAN_INTERVAL | integer | 사용자의 점수가 간격 임계값에 도달하거나 초과할 때마다 사용자는 차단됩니다. | BAN_INTERVAL=20 |
각 위반 사항에 대한 점수
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_VIOLATION_SCORE | integer | 로그인 위반 점수. | LOGIN_VIOLATION_SCORE=1 |
| REGISTRATION_VIOLATION_SCORE | integer | 등록 위반에 대한 점수. | REGISTRATION_VIOLATION_SCORE=1 |
| CONCURRENT_VIOLATION_SCORE | integer | 동시 위반에 대한 점수. | CONCURRENT_VIOLATION_SCORE=1 |
| MESSAGE_VIOLATION_SCORE | integer | 메시지 위반 점수. | MESSAGE_VIOLATION_SCORE=1 |
| NON_BROWSER_VIOLATION_SCORE | integer | 브라우저 외 위반에 대한 점수. | NON_BROWSER_VIOLATION_SCORE=20 |
| IMPORT_VIOLATION_SCORE | integer | 대화 가져오기 위반에 대한 점수. | IMPORT_VIOLATION_SCORE=1 |
| FORK_VIOLATION_SCORE | integer | 대화 분기 위반에 대한 점수. | FORK_VIOLATION_SCORE=1 |
| TTS_VIOLATION_SCORE | integer | 텍스트 음성 변환 위반 점수. | TTS_VIOLATION_SCORE=0 |
| STT_VIOLATION_SCORE | integer | 음성-텍스트 위반 점수. | STT_VIOLATION_SCORE=0 |
| FILE_UPLOAD_VIOLATION_SCORE | integer | 파일 업로드 위반에 대한 점수. | FILE_UPLOAD_VIOLATION_SCORE=0 |
| RESET_PASSWORD_VIOLATION_SCORE | integer | 비밀번호 재설정 위반 점수. | RESET_PASSWORD_VIOLATION_SCORE=0 |
| VERIFY_EMAIL_VIOLATION_SCORE | integer | 이메일 인증 위반에 대한 점수. | VERIFY_EMAIL_VIOLATION_SCORE=0 |
| TOOL_CALL_VIOLATION_SCORE | integer | 도구 호출 위반에 대한 점수. | TOOL_CALL_VIOLATION_SCORE=0 |
| CONVO_ACCESS_VIOLATION_SCORE | integer | 대화 접근 위반에 대한 점수. | CONVO_ACCESS_VIOLATION_SCORE=0 |
로그인 및 회원가입 속도 제한.
| Key | Type | Description | Example |
|---|---|---|---|
| LOGIN_MAX | number | LOGIN_WINDOW당 IP별로 허용되는 최대 로그인 횟수입니다. 기본값은 `7`입니다. | |
| LOGIN_WINDOW | number | LOGIN_MAX 로그인을 위한 시간 창을 분 단위로 결정합니다. 기본값은 `5`입니다. | |
| REGISTER_MAX | number | REGISTER_WINDOW 당 IP별로 허용되는 최대 등록 횟수입니다. 기본값은 `5`입니다. | |
| REGISTER_WINDOW | number | REGISTER_MAX 등록을 위한 시간 범위를 분 단위로 결정합니다. 기본값은 `60`입니다. |
메시지 속도 제한 (Message rate limiting)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_CONCURRENT_MESSAGES | boolean | 사용자가 요청당 보낼 수 있는 메시지 양을 제한할지 여부입니다. | LIMIT_CONCURRENT_MESSAGES=true |
| CONCURRENT_MESSAGE_MAX | integer | 사용자가 요청당 보낼 수 있는 최대 메시지 수입니다. | CONCURRENT_MESSAGE_MAX=2 |
참고: 두 제한기를 모두 활용할 수 있지만, 기본값은 IP로만 제한하는 것입니다.
메시지 속도 제한 (IP당)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_IP | boolean | `MESSAGE_IP_WINDOW`당 IP가 보낼 수 있는 메시지 양을 제한할지 여부입니다. | LIMIT_MESSAGE_IP=true |
| MESSAGE_IP_MAX | integer | `MESSAGE_IP_WINDOW`당 하나의 IP가 보낼 수 있는 최대 메시지 수입니다. | MESSAGE_IP_MAX=40 |
| MESSAGE_IP_WINDOW | integer | `MESSAGE_IP_MAX` 메시지에 대한 시간 범위를 분 단위로 결정합니다. | MESSAGE_IP_WINDOW=1 |
메시지 속도 제한 (사용자별)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_MESSAGE_USER | boolean | `MESSAGE_USER_WINDOW`당 사용자가 보낼 수 있는 메시지 양을 제한할지 여부입니다. | LIMIT_MESSAGE_USER=false |
| MESSAGE_USER_MAX | integer | `MESSAGE_USER_WINDOW`당 사용자가 보낼 수 있는 최대 메시지 수입니다. | MESSAGE_USER_MAX=40 |
| MESSAGE_USER_WINDOW | integer | `MESSAGE_USER_MAX` 메시지에 대한 시간 범위를 분 단위로 결정합니다. | MESSAGE_USER_WINDOW=1 |
대화 가져오기 속도 제한
사용자가 대화를 가져올 수 있는 빈도를 제한하여 남용을 방지합니다.
참고: 두 제한기를 모두 활용할 수 있지만, 기본값은 IP로만 제한하는 것입니다.
대화 가져오기 속도 제한 (IP당)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_IP | boolean | `IMPORT_IP_WINDOW`당 IP가 수행할 수 있는 대화 가져오기 횟수를 제한할지 여부입니다. | LIMIT_IMPORT_IP=true |
| IMPORT_IP_MAX | integer | `IMPORT_IP_WINDOW`당 하나의 IP가 수행할 수 있는 최대 대화 가져오기 횟수입니다. | IMPORT_IP_MAX=100 |
| IMPORT_IP_WINDOW | integer | `IMPORT_IP_MAX` 가져오기에 대한 시간 범위를 분 단위로 결정합니다. | IMPORT_IP_WINDOW=1 |
대화 가져오기 속도 제한 (사용자당)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_IMPORT_USER | boolean | `IMPORT_USER_WINDOW` 기간 동안 사용자가 수행할 수 있는 대화 가져오기 횟수를 제한할지 여부입니다. | LIMIT_IMPORT_USER=false |
| IMPORT_USER_MAX | integer | 사용자가 `IMPORT_USER_WINDOW` 기간 동안 수행할 수 있는 최대 대화 가져오기 횟수입니다. | IMPORT_USER_MAX=50 |
| IMPORT_USER_WINDOW | integer | `IMPORT_USER_MAX` 가져오기에 대한 시간 범위를 분 단위로 결정합니다. | IMPORT_USER_WINDOW=1 |
대화 포킹(forking) 속도 제한
사용자가 대화를 포크(fork)할 수 있는 빈도를 제한하여 남용을 방지합니다.
참고: 두 제한기를 모두 활용할 수 있지만, 기본값은 IP로만 제한하는 것입니다.
대화 포킹 속도 제한 (IP당)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_IP | boolean | `FORK_IP_WINDOW`당 IP 하나가 생성할 수 있는 대화 포크 수를 제한할지 여부입니다. | LIMIT_FORK_IP=true |
| FORK_IP_MAX | integer | `FORK_IP_WINDOW`당 하나의 IP가 생성할 수 있는 최대 대화 포크 수입니다. | FORK_IP_MAX=30 |
| FORK_IP_WINDOW | integer | `FORK_IP_MAX` 포크에 대한 시간 범위를 분 단위로 결정합니다. | FORK_IP_WINDOW=1 |
대화 포킹 속도 제한 (사용자당)
| Key | Type | Description | Example |
|---|---|---|---|
| LIMIT_FORK_USER | boolean | `FORK_USER_WINDOW`당 사용자가 생성할 수 있는 대화 분기(fork) 수를 제한할지 여부입니다. | LIMIT_FORK_USER=false |
| FORK_USER_MAX | integer | `FORK_USER_WINDOW`당 사용자가 생성할 수 있는 최대 대화 포크 수입니다. | FORK_USER_MAX=7 |
| FORK_USER_WINDOW | integer | `FORK_USER_MAX` 포크에 대한 시간 범위를 분 단위로 결정합니다. | FORK_USER_WINDOW=1 |
허용되지 않는 모델 요청
참고: 잘못된 모델 요청은 거의 항상 악의적인데, 이는 제3자가 자동화된 스크립트를 통해 서버에 접근하려고 시도하고 있음을 의미하기 때문입니다. 이를 위해 5점 이상의 비교적 높은 점수를 권장합니다.
| Key | Type | Description | Example |
|---|---|---|---|
| ILLEGAL_MODEL_REQ_SCORE | integer | 비허용 모델 요청에 대한 점수. | ILLEGAL_MODEL_REQ_SCORE=5 |
OpenAI 텍스트 조정(text moderation)
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION | boolean | **OpenAI** 및 **Plugins** endpoint에서 OpenAI moderation을 활성화할지 여부입니다. | OPENAI_MODERATION=false |
| OPENAI_MODERATION_API_KEY | string | OpenAI API 키. | OPENAI_MODERATION_API_KEY= |
일부 리버스 프록시에서는 작동하지 않을 수 있다는 점에 유의하세요:
| Key | Type | Description | Example |
|---|---|---|---|
| OPENAI_MODERATION_REVERSE_PROXY | string | 참고: 기본적으로 주석 처리되어 있으며, 모든 리버스 프록시에서 작동하지 않을 수 있습니다. | # OPENAI_MODERATION_REVERSE_PROXY= |
이 가이드는 어떤가요?